Nightly Upload to Test PyPI #282
This file contains 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
# This workflow will upload a Python Package using Twine when a release is created | |
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries | |
name: Nightly Upload to Test PyPI | |
on: | |
schedule: | |
- cron: "0 0 * * *" | |
jobs: | |
build: | |
name: Build Mitiq | |
if: github.repository_owner == 'unitaryfund' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out mitiq | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install build | |
- name: Build mitiq | |
run: python -m build | |
- name: Store build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build | |
path: dist/* | |
test-publish: | |
name: Upload release to test PyPi | |
runs-on: ubuntu-latest | |
needs: build | |
environment: | |
name: testpypi | |
url: https://test.pypi.org/p/mitiq/ | |
permissions: | |
id-token: write | |
steps: | |
- name: Fetch build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: dist/ | |
- name: Publish package distributions to TestPyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
repository-url: https://test.pypi.org/legacy/ | |
verify-version: | |
needs: test-publish | |
runs-on: ubuntu-latest | |
environment: testpypi | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Install package from TestPyPI | |
run: pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.python.org/simple/ mitiq | |
- name: Set version variable | |
run: | | |
VER=$(cat VERSION.txt) | |
echo "VERSION=$VER" >> $GITHUB_ENV | |
- name: Verify the published version | |
run: | | |
TEST_IMPORT_VERSION=$(python -c "import mitiq; print(mitiq.__version__)") | |
if [ "$TEST_IMPORT_VERSION" != "$VERSION" ]; then | |
echo "Imported version $TEST_IMPORT_VERSION does not match tag $VERSION" | |
exit 1 | |
fi |