Upload Python Package #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Upload Python Package | |
| on: | |
| release: | |
| types: [published] | |
| permissions: | |
| contents: read | |
| jobs: | |
| release-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Build release distributions | |
| run: | | |
| python -m pip install build | |
| python -m build | |
| - name: Upload distributions | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: release-dists | |
| path: dist/ | |
| pypi-publish: | |
| runs-on: ubuntu-latest | |
| needs: release-build | |
| permissions: | |
| id-token: write # Required for trusted publishing | |
| steps: | |
| - name: Retrieve release distributions | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: release-dists | |
| path: dist/ | |
| - name: Publish release distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| packages-dir: dist/ | |
| conda-publish: | |
| runs-on: ubuntu-latest | |
| needs: release-build | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Set up and activate Miniconda in "base" | |
| - name: Set up Miniconda | |
| uses: conda-incubator/setup-miniconda@v2 | |
| with: | |
| auto-activate-base: true | |
| # If you want a specific Python version in base, you can set it here | |
| # python-version: 3.9 | |
| channel-priority: strict | |
| channels: conda-forge | |
| # Install conda-build and anaconda-client inside the same shell session | |
| - name: Install dependencies | |
| shell: bash -l {0} | |
| run: conda install -y conda-build anaconda-client | |
| # Now conda-build is in PATH | |
| - name: Build Conda package | |
| shell: bash -l {0} | |
| run: conda-build conda-recipe | |
| # Upload the built package | |
| - name: Upload Conda package | |
| shell: bash -l {0} | |
| run: | | |
| anaconda login --token ${{ secrets.ANACONDA_TOKEN }} | |
| anaconda upload --skip-existing $(conda-build --output conda-recipe) |