Skip to content

facts: add FactProcessError to log, not explode, issues processing … #2144

facts: add FactProcessError to log, not explode, issues processing …

facts: add FactProcessError to log, not explode, issues processing … #2144

Workflow file for this run

name: Lint & Test
on:
push:
branches:
- 3.x
- 2.x
- 1.x
- 0.x
pull_request:
jobs:
# Linting
#
lint:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v6
- uses: astral-sh/ruff-action@v3
- uses: astral-sh/ruff-action@v3
with:
args: "format --check"
type-check:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v6
- run: uv sync --group test --no-default-groups
- run: uv run mypy
spell-check:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- name: Check spelling
uses: crate-ci/[email protected]
unit-test:
needs:
- lint
- type-check
- spell-check
strategy:
matrix:
os: [macos-26, macos-15, macos-14, windows-2025, windows-2022, ubuntu-24.04, ubuntu-22.04]
# Test every OS vs. Python 3.13, and only one for 3.1[012]
python-version: ["3.13"]
include:
- os: ubuntu-24.04
python-version: "3.12"
- os: ubuntu-24.04
python-version: "3.11"
- os: ubuntu-24.04
python-version: "3.10"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v6
- run: uv sync --group test --no-default-groups --python=${{ matrix.python-version }}
- run: uv run pytest --cov --disable-warnings
- name: Upload coverage report to codecov
if: ${{ matrix.os == 'ubuntu-24.04' && matrix.python-version == '3.13' }}
uses: codecov/codecov-action@v5
# End-to-end tests
#
end-to-end-test:
needs:
- lint
- type-check
- spell-check
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
test-name: [local, ssh, docker, podman]
include:
- os: macos-14
test-name: local
- os: macos-15
test-name: local
- os: macos-26
test-name: local
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v6
- run: uv sync --group test --no-default-groups --python=${{ matrix.python-version }}
- run: uv run pytest -m end_to_end_${{ matrix.test-name }}
# Finally, single jon to check if all completed, for use in protected branch
tests-done:
if: ${{ always() }}
needs:
- lint
- type-check
- spell-check
- unit-test
- end-to-end-test
runs-on: ubuntu-latest
steps:
- uses: matrix-org/done-action@v3
with:
needs: ${{ toJSON(needs) }}