Skip to content

CI

CI #104

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: "0 3 * * *"
jobs:
lint:
name: Lint & Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Set up Python 3.12
run: uv python install 3.12
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Lint with Ruff
run: uv run ruff check .
- name: Type check with Mypy
run: uv run mypy justpipe
test:
name: Test (Python ${{ matrix.python-version }})
needs: lint
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13"]
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Run tests with Coverage
run: |
uv run pytest --cov=justpipe --cov-report=term-missing > coverage.txt
cat coverage.txt
- name: Generate Badge
if: github.ref == 'refs/heads/main' && matrix.python-version == '3.12'
run: |
uv run coverage-badge -o coverage.svg -f
- name: Deploy Badge
if: github.ref == 'refs/heads/main' && matrix.python-version == '3.12'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: .
publish_branch: badges
keep_files: true
destination_dir: .
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
docs-link-check:
name: Docs Link Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Link Checker
uses: lycheeverse/lychee-action@v2
with:
args: --verbose --no-progress "docs/**/*.md" "README.md" "AGENTS.md"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}