v1.1.1 release (bug fix) #6
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: Build and Deploy Package | |
| on: | |
| push: | |
| tags: | |
| - "*" | |
| release: | |
| types: | |
| - published | |
| jobs: | |
| build: | |
| name: Build package | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Install build dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install build twine | |
| - name: Build package (binary wheel and source distribution package) | |
| run: | | |
| python -m build | |
| - name: Check package | |
| run: | | |
| twine check dist/* | |
| - name: Upload dist files | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist-files | |
| path: dist/ | |
| retention-days: 1 | |
| test-install: | |
| name: Test package installation | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Download dist files | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist-files | |
| path: dist/ | |
| - name: Install package | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install dist/*.whl | |
| - name: Test import | |
| run: | | |
| python -c "import basicrta; print('Package imported successfully')" | |
| test-pytest: | |
| name: Run tests | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Download dist files | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist-files | |
| path: dist/ | |
| - name: Install package with test dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| WHEEL_FILE=$(ls dist/*.whl) | |
| pip install "$WHEEL_FILE"[test] | |
| - name: Run tests | |
| run: | | |
| pytest -n auto --verbose --pyargs basicrta | |
| deploy-testpypi: | |
| name: Deploy to TestPyPI | |
| runs-on: ubuntu-latest | |
| needs: [build, test-install, test-pytest] | |
| if: | | |
| github.repository == 'Becksteinlab/basicrta' && | |
| (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) | |
| environment: | |
| name: testpypi | |
| url: https://test.pypi.org/p/basicrta | |
| permissions: | |
| id-token: write # IMPORTANT: mandatory for trusted publishing | |
| steps: | |
| - name: Download dist files | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist-files | |
| path: dist/ | |
| - name: Publish to TestPyPI | |
| uses: pypa/[email protected] | |
| with: | |
| repository-url: https://test.pypi.org/legacy/ | |
| deploy-pypi: | |
| name: Deploy to PyPI | |
| runs-on: ubuntu-latest | |
| needs: [build, test-install, test-pytest] | |
| if: | | |
| github.repository == 'Becksteinlab/basicrta' && | |
| (github.event_name == 'release' && github.event.action == 'published') | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/basicrta | |
| permissions: | |
| id-token: write # IMPORTANT: mandatory for trusted publishing | |
| steps: | |
| - name: Download dist files | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist-files | |
| path: dist/ | |
| - name: Publish to PyPI | |
| uses: pypa/[email protected] | |
| test-deployed-testpypi: | |
| name: Test deployed package (TestPyPI) | |
| runs-on: ubuntu-latest | |
| needs: deploy-testpypi | |
| if: | | |
| github.repository == 'Becksteinlab/basicrta' && | |
| (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) | |
| steps: | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Wait for package to be available from testpypi | |
| run: sleep 10 | |
| - name: Install from TestPyPI | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ basicrta[test] | |
| - name: Test import | |
| run: | | |
| python -c "import basicrta; print('Package imported successfully from TestPyPI')" | |
| - name: Run basic tests | |
| run: | | |
| python -c "import basicrta; print('Package version:', basicrta.__version__)" | |
| test-deployed-pypi: | |
| name: Test deployed package (PyPI) | |
| runs-on: ubuntu-latest | |
| needs: deploy-pypi | |
| if: | | |
| github.repository == 'Becksteinlab/basicrta' && | |
| (github.event_name == 'release' && github.event.action == 'published') | |
| steps: | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Wait for package to be available from pypi | |
| run: sleep 10 | |
| - name: Install from PyPI | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install basicrta[test] | |
| - name: Test import | |
| run: | | |
| python -c "import basicrta; print('Package imported successfully from PyPI')" | |
| - name: Run basic tests | |
| run: | | |
| python -c "import basicrta; print('Package version:', basicrta.__version__)" |