Skip to content

0.0.14-rc.1

0.0.14-rc.1 #14

Workflow file for this run

name: PyPI Publish
on:
release:
types: [published]
permissions:
contents: read
packages: write
jobs:
run-test:
uses: ./.github/workflows/run_test.yml
pypi-publish:
needs: run-test
runs-on: ubuntu-latest
environment: release
permissions:
id-token: write
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Extract release version
id: release-version
run: echo "::set-output name=version::${{ github.event.release.tag_name }}"
- name: Update version in pyproject.toml
run: sed -i "s/version = \"0.0.0\"/version = \"${{ steps.release-version.outputs.version }}\"/" pyproject.toml
- name: Validate official release version
if: "!contains(steps.release-version.outputs.version, 'rc')"
run: |
if ! echo "${{ steps.release-version.outputs.version }}" | grep -Pq '^\d+(\.\d+){2}$'; then
echo "Invalid official release version format. Should be semantic versioning."
exit 1
fi
- name: Validate pre-release version
if: contains(steps.release-version.outputs.version, 'rc')
run: |
if ! echo "${{ steps.release-version.outputs.version }}" | grep -Pq '^\d+(\.\d+){2}-rc\.\d+$'; then
echo "Invalid pre-release version format. Should be semantic versioning with rc."
exit 1
fi
- name: Install Poetry
uses: snok/install-poetry@v1.2
- name: Build Python package
run: poetry build
- name: Publish to TestPyPI if release candidate
if: contains(steps.release-version.outputs.version, 'rc')
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
- name: Publish to PyPI if not release candidate
if: "!contains(steps.release-version.outputs.version, 'rc')"
uses: pypa/gh-action-pypi-publish@release/v1
- name: Validate package on TestPyPI
if: contains(steps.release-version.outputs.version, 'rc')
run: |
PACKAGE_NAME="gull-api"
PACKAGE_VERSION="${{ steps.release-version.outputs.version }}"
curl --head --fail "https://test.pypi.org/project/${PACKAGE_NAME}/${PACKAGE_VERSION}/"
- name: Validate package on PyPI
if: "!contains(steps.release-version.outputs.version, 'rc')"
run: |
PACKAGE_NAME="gull-api"
PACKAGE_VERSION="${{ steps.release-version.outputs.version }}"
curl --head --fail "https://pypi.org/project/${PACKAGE_NAME}/${PACKAGE_VERSION}/"