name: Release # Controls when the action will run. on: # Triggers the workflow on push or pull request events but only for the master branch push: tags: - "*" # Allows you to run this workflow manually from the Actions tab workflow_dispatch: inputs: build-items: description: 'Items to be build' required: true default: 'all' type: choice options: - all - windows - linux - all_incl_release jobs: build-ubuntu-latest: runs-on: ubuntu-latest if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all", "linux", "all_incl_release"]'), github.event.inputs.build-items)) }} permissions: id-token: write steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install dependencies run: | python -m pip install --upgrade pip pip install build pip install -r requirements.txt - name: Build PyPI package run: | python3 -m build - name: Archive distribution uses: actions/upload-artifact@v4 with: name: linux-dist path: | dist/*.tar.gz - name: Upload to PyPI #if: github.event_name != 'workflow_dispatch' uses: pypa/gh-action-pypi-publish@release/v1 with: # user: __token__ # password: ${{ secrets.PYPI_TOKEN }} skip-existing: true build-windows: runs-on: windows-latest if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all", "windows", "all_incl_release"]'), github.event.inputs.build-items)) }} steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: 3.12 - name: Install dependencies run: | C:\Miniconda\condabin\conda.bat env update --file conda_windows.yml --name base C:\Miniconda\condabin\conda.bat init powershell - name: Build with pyinstaller run: | pyinstaller windows_build.spec cd dist\eos Compress-Archive -Path .\* -Destination ..\..\eos.zip - name: Archive distribution uses: actions/upload-artifact@v4 with: name: windows-dist path: | eos.zip release: if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all_incl_release"]'), github.event.inputs.build-items)) }} runs-on: ubuntu-latest needs: [build-ubuntu-latest, build-windows] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - uses: actions/download-artifact@v4 with: name: linux-dist - uses: actions/download-artifact@v4 with: name: windows-dist - name: get latest version tag run: echo "RELEASE_TAG=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV - uses: ncipollo/release-action@v1 with: artifacts: "amor*.tar.gz,*.zip" token: ${{ secrets.GITHUB_TOKEN }} allowUpdates: true tag: ${{ env.RELEASE_TAG }}