name: publish pypi on: push: tags: - 'v*' workflow_dispatch: jobs: setup_release: name: Create Release runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v4 - name: Create release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: gh release create "$GITHUB_REF_NAME" --generate-notes pypi-publish: name: Upload release to PyPI runs-on: ubuntu-latest needs: [setup_release] environment: name: pypi url: https://pypi.org/p/axolotl permissions: id-token: write # IMPORTANT: this permission is mandatory for trusted publishing steps: - name: Check out repository code uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install dependencies run: | pip3 install wheel packaging==23.2 pip3 install --no-build-isolation -e . pip3 install -r requirements-dev.txt -r requirements-tests.txt - name: Extract tag name id: tag run: echo ::set-output name=TAG_NAME::$(echo $GITHUB_REF | cut -d / -f 3) - name: Update version in setup.py run: | sed -i -E 's/version="([0-9.]+)",/version="${{ steps.tag.outputs.TAG_NAME }}",/g' setup.py - name: Build a source dist run: | python setup.py sdist - name: Publish package distributions to PyPI uses: pypa/gh-action-pypi-publish@release/v1