Skip to content

Merge pull request #1289 from sbrunner/ci-upgrade #4002

Merge pull request #1289 from sbrunner/ci-upgrade

Merge pull request #1289 from sbrunner/ci-upgrade #4002

Workflow file for this run

name: Continuous integration
on:
push:
branches:
- master
- '[0-9]+.[0-9]+'
tags:
- '*'
pull_request:
permissions:
contents: write
id-token: write
env:
HAS_SECRETS: ${{ secrets.HAS_SECRETS }}
PYTHON_KEYRING_BACKEND: keyring.backends.null.Keyring
jobs:
test:
name: Run tests
runs-on: ubuntu-24.04
timeout-minutes: 15
if: "!startsWith(github.event.head_commit.message, '[skip ci] ')"
strategy:
fail-fast: false
matrix:
python-version:
- '3.9'
- '3.10'
- '3.11'
# On 3.12 we get something like https://github.com/pypa/setuptools/issues/4102 on install
# - '3.12'
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/checkout@v4
- run: make pytest
success:
name: Success
runs-on: ubuntu-24.04
timeout-minutes: 5
needs: test
steps:
- run: touch SUCCESS
- uses: actions/upload-artifact@v4
with:
name: Success
path: SUCCESS
retention-days: 1
main:
name: Continuous integration
runs-on: ubuntu-24.04
timeout-minutes: 40
if: always() && !startsWith(github.event.head_commit.message, '[skip ci] ')
needs: success
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: python3 -m pip install --requirement=ci/requirements.txt
- name: Print environment information
run: c2cciutils-env
- run: pip install -e .
- uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: "pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}\npre-commit-"
- run: pre-commit run --all-files --color=always
env:
SKIP: poetry-lock,isort,black
- run: git diff --exit-code --patch > /tmp/pre-commit.patch; git diff --color; git reset --hard || true
if: failure()
- uses: actions/upload-artifact@v4
with:
name: Apply pre-commit fix.patch
path: /tmp/pre-commit.patch
retention-days: 1
if: failure()
- run: make prospector
- run: python3 -m pip install --requirement=ci/requirements.txt
- name: Init pypi
run: |-
echo "[pypi]" > ~/.pypirc
echo "username = ${{ secrets.PYPI_USERNAME }}" >> ~/.pypirc
echo "password = ${{ secrets.PYPI_PASSWORD }}" >> ~/.pypirc
if: env.HAS_SECRETS == 'HAS_SECRETS'
- name: Publish
run: tag-publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
if: env.HAS_SECRETS == 'HAS_SECRETS'
- run: git diff --exit-code --patch > /tmp/dpkg-versions.patch; git diff --color; git reset --hard || true
if: failure()
- uses: actions/upload-artifact@v4
with:
name: Update dpkg versions list.patch
path: /tmp/dpkg-versions.patch
retention-days: 1
if: failure()
- uses: actions/download-artifact@v4
with:
name: Success