diff --git a/.github/workflows/publish-to-pypi-test.yml b/.github/workflows/publish-to-pypi-test.yml new file mode 100644 index 000000000..440f9eec3 --- /dev/null +++ b/.github/workflows/publish-to-pypi-test.yml @@ -0,0 +1,43 @@ +name: Release to Test PyPI + +on: + push: + tags: + - '*' +jobs: + release: + environment: TEST_PYPI_API_TOKEN + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + - name: Install Tools + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine build + pip install . + - name: Test version/tag correspondence + id: version-check + run: | + neo_version=$(python -c "import neo; print(neo.__version__)") + if [[ ${{ github.event.release.tag_name }} == $neo_version ]]; then + echo "VERSION_TAG_MATCH=true" >> $GITHUB_OUTPUT + echo "Version matches tag, proceeding with release to Test PyPI" + else + echo "VERSION_TAG_MATCH=false" >> $GITHUB_OUTPUT + echo "Version does not match tag! Fix this before proceeding." + exit 1 + fi + - name: Package and Upload + env: + STACKMANAGER_VERSION: ${{ github.event.release.tag_name }} + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.TEST_PYPI_API_TOKEN }} + if: ${{ steps.version-check.outputs.VERSION_TAG_MATCH == 'true' }} + run: | + python -m build --sdist --wheel + twine upload --repository testpypi dist/* diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml new file mode 100644 index 000000000..73e53e0f8 --- /dev/null +++ b/.github/workflows/publish-to-pypi.yml @@ -0,0 +1,28 @@ +name: Release to PyPI + +on: + workflow_dispatch: + +jobs: + release: + environment: PYPI_API_TOKEN + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + - name: Install Tools + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine build + - name: Package and Upload + env: + STACKMANAGER_VERSION: ${{ github.event.release.tag_name }} + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + run: | + python -m build --sdist --wheel + twine upload --repository testpypi dist/*