Skip to content

CHO: Add version compatibility data #2514

CHO: Add version compatibility data

CHO: Add version compatibility data #2514

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a variety of Python versions.
#
# On successful test, the package will be published. For candidate releases, the package will be
# published to test.pypi.org server (to ensure the process works). For merges to master, the
# package will be published live.
name: python-ci
on:
push:
branches-ignore:
- main
jobs:
check-semantic-version:
if: "!contains(github.event.head_commit.message, 'skipci')"
uses: octue/workflows/.github/workflows/check-semantic-version.yml@main
with:
path: pyproject.toml
breaking_change_indicated_by: minor
run-tests:
if: "!contains(github.event.head_commit.message, 'skipci')"
runs-on: ${{ matrix.os }}
env:
USING_COVERAGE: "3.10"
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
permissions:
id-token: write
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Poetry
uses: snok/install-poetry@v1.3.2
- name: Check pyproject.toml file
run: poetry check
- name: Install tox
run: pip install tox
- name: Authenticate with Google Cloud
id: auth
uses: google-github-actions/auth@v0.6.0
with:
# NOTE: If setting create_credentials_file=true, .dockerignore file must include `gha-creds-*.json` to avoid baking these credentials into build
create_credentials_file: true
workload_identity_provider: "projects/437801218871/locations/global/workloadIdentityPools/github-actions-pool/providers/github-actions-provider"
service_account: "github-actions@octue-sdk-python.iam.gserviceaccount.com"
- name: Run tests
env:
TEST_PROJECT_NAME: ${{ secrets.TEST_PROJECT_NAME }}
GOOGLE_CLOUD_PROJECT: ${{ secrets.TEST_PROJECT_NAME }}
run: tox -vv -e py
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: coverage.xml
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
test-publish:
if: "!contains(github.event.head_commit.message, 'skipci')"
runs-on: ubuntu-latest
needs: [check-semantic-version, run-tests]
permissions:
id-token: write
contents: read
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Install Poetry
uses: snok/install-poetry@v1.3.4
- name: Build a binary wheel and a source tarball
run: poetry build
- name: Test package is publishable with PyPI test server
uses: pypa/gh-action-pypi-publish@v1.8.10
with:
repository-url: https://test.pypi.org/legacy/
skip-existing: true
verbose: true