Skip to content

Cicd combined

Cicd combined #4

Workflow file for this run

# SPDX-License-Identifier: Apache-2.0
name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
# ruff isn't a project dependency; fetch the pinned version standalone
# (matches the pre-commit hook). No project sync needed just to lint.
- name: Check formatting
run: uvx ruff@0.9.0 format --check .
- name: Check linting
run: uvx ruff@0.9.0 check .
test-cpu:
name: CPU Tests (Python ${{ matrix.python-version }})
needs: lint
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
python-version: ${{ matrix.python-version }}
- run: uv sync --frozen --group dev --extra hf --extra compose
- name: Run CPU tests
run: |
# Exclude tests that download/compose real models (requires_model),
# need CUDA (gpu), hit the network / take long (slow), or are the
# expensive code-theory suite (deep). Those run on the GPU cluster,
# not on GitHub-hosted runners, which lack the RAM/disk/time.
uv run pytest tests/unit/ tests/composer/ tests/hf/ \
-m "not requires_model and not gpu and not slow and not deep" \
-v -s --tb=short -x \
--cov=granite_switch --cov-report=xml
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.xml
fail_ci_if_error: false