Skip to content

Release: 2.0.0-beta.3 #79

Release: 2.0.0-beta.3

Release: 2.0.0-beta.3 #79

Workflow file for this run

name: tests
on:
push:
branches: [develop, master, main, 'version/**']
pull_request:
branches: [develop, master, main, 'version/**']
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
unit:
name: pytest (py${{ matrix.python-version }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
python-version: "3.11"
- os: ubuntu-latest
python-version: "3.12"
- os: ubuntu-latest
python-version: "3.13"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install package + test extras
run: |
python -m pip install --upgrade pip
python -m pip install -e .[test]
- name: Run unit tests
run: pytest tests/unit -v
validate-example-manifests:
name: validate example manifests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: pip
- name: Install package
run: |
python -m pip install --upgrade pip
python -m pip install -e .[test]
- name: Validate docs examples
run: |
scalable validate docs/examples/scalable.minimal.yaml --target local
scalable validate docs/examples/scalable.gcam_stitches.yaml --target local
- name: Plan docs examples (dry-run)
run: |
scalable plan docs/examples/scalable.minimal.yaml --target local --dry-run --output /tmp/plan-minimal.json
scalable plan docs/examples/scalable.gcam_stitches.yaml --target local --dry-run --output /tmp/plan-gcam-stitches.json
lint:
name: ruff + mypy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: pip
- name: Install dev extras
run: |
python -m pip install --upgrade pip
python -m pip install -e .[dev]
- name: Lint with ruff
run: ruff check scalable tests
- name: Type-check with mypy (lenient)
# Lenient bootstrap; non-blocking until M-tier typing work lands.
continue-on-error: true
run: mypy scalable