diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml index 02822c6..b755975 100644 --- a/.github/workflows/pypi.yml +++ b/.github/workflows/pypi.yml @@ -1,4 +1,4 @@ -name: Publish to PyPI and TestPyPI +name: Build and publish to PyPI and TestPyPI on: push: @@ -10,42 +10,79 @@ on: - prereleased jobs: - build-n-publish: - name: Build and publish to PyPI and TestPyPI + build: + name: Build distribution runs-on: ubuntu-latest + steps: - - uses: actions/checkout@master - - - name: Set up Python - uses: actions/setup-python@v1 - with: - python-version: 3.11 - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install wheel - - - name: Build distributions via setup.py - run: >- - python setup.py - sdist --formats=zip - bdist_wheel - - - name: Publish to TestPyPI - if: ${{ github.event_name == 'release' && github.event.action == 'prereleased' }} - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository_url: https://test.pypi.org/legacy/ - - - name: Publish to PyPI - if: ${{ github.event_name == 'release' && github.event.action == 'released' }} - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{ secrets.PYPI_API_TOKEN }} - - - name: Debug - run: | - echo "event_name ${{ github.event_name }}" - echo "event.action ${{ github.event.action }}" + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.11 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install wheel + + - name: Build distributions via setup.py + run: >- + python setup.py + sdist --formats=zip + bdist_wheel + + - name: Store the distribution packages + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + publish-to-pypi: + name: Publish to PyPI + if: ${{ github.event_name == 'release' && github.event.action == 'released' }} + runs-on: ubuntu-latest + + environment: + name: pypi + url: https://pypi.org/p/Instrumental-lib + + permissions: + id-token: write + + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + + publish-to-testpypi: + name: Publish to TestPyPI + if: ${{ github.event_name == 'release' && github.event.action == 'prereleased' }} + runs-on: ubuntu-latest + + environment: + name: testpypi + url: https://test.pypi.org/p/Instrumental-lib + + permissions: + id-token: write + + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + - name: Publish to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/