* Drop 3.7 from ci Currently, CI is broken for 3.7 as github runs its macos images on arm and doesn't provide arm images for 3.7. As 3.7 is deprecated the best (at least interim) solution would be to drop 3.7 checks entirely.
66 lines
1.7 KiB
YAML
66 lines
1.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- '**'
|
|
|
|
jobs:
|
|
tests:
|
|
name: ${{ matrix.os }} / ${{ matrix.python-version }}
|
|
runs-on: ${{ matrix.os }}-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [Ubuntu, MacOS, Windows]
|
|
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Get full Python version
|
|
id: full-python-version
|
|
shell: bash
|
|
run: echo "version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Install poetry
|
|
shell: bash
|
|
run: |
|
|
python -m pip install poetry
|
|
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
|
|
|
|
- name: Configure poetry
|
|
shell: bash
|
|
run: poetry config virtualenvs.in-project true
|
|
|
|
- name: Set up cache
|
|
uses: actions/cache@v3
|
|
id: cache
|
|
with:
|
|
path: .venv
|
|
key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
|
|
|
|
- name: Ensure cache is healthy
|
|
if: steps.cache.outputs.cache-hit == 'true'
|
|
shell: bash
|
|
run: poetry run pip --version >/dev/null 2>&1 || rm -rf .venv
|
|
|
|
- name: Install dependencies
|
|
shell: bash
|
|
run: poetry install -E compiler
|
|
|
|
- name: Generate code from proto files
|
|
shell: bash
|
|
run: poetry run python -m tests.generate -v
|
|
|
|
- name: Execute test suite
|
|
shell: bash
|
|
run: poetry run python -m pytest tests/
|