Skip to content

CI

CI #33

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
branches:
- main
workflow_dispatch:
env:
UV_VERSION: '0.5.26'
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: ${{ env.UV_VERSION }}
enable-cache: true
cache-dependency-glob: 'uv.lock'
- name: Set up Python
run: uv python install
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Run checks
run: uv run invoke check
test:
needs: [check]
name: Test py${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: ${{ env.UV_VERSION }}
python-version: ${{ matrix.python-version }}
enable-cache: true
cache-dependency-glob: 'uv.lock'
- name: Set up Python
run: uv python install
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install qtbase5-dev xvfb
uv sync --all-extras --dev
- name: Run tests
run: xvfb-run uv run invoke test
release:
needs: [test]
name: Release
runs-on: ubuntu-latest
if: contains(github.ref, 'tags')
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: ${{ env.UV_VERSION }}
- name: Set up Python
run: uv python install
- name: Build distribution
run: uv build
- name: Create release
run: |
VERSION="${GITHUB_REF/refs\/tags\/}"
if [[ "$VERSION" != *"rc"* ]]; then
gh release create $VERSION --verify-tag --generate-notes
else
gh release create $VERSION --verify-tag --generate-notes --prerelease
fi
gh release upload $VERSION dist/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}