Skip to content

Add warning

Add warning #191

Workflow file for this run

# Run static analysis, tests, and sync
name: "ci"
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: True
on:
workflow_dispatch:
pull_request:
push:
branches: ["main"]
defaults:
run:
shell: "pwsh"
env:
UV_CACHE_DIR: ".cache/uv"
UV_SYSTEM_PYTHON: "true"
jobs:
sync:
strategy:
matrix:
runner: ["ubuntu-22.04"]
python: ["3.11"]
runs-on: "${{ matrix.runner }}"
steps:
- uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" # v4.1.7
with:
submodules: True
- uses: "actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f" # v5.1.1
with:
python-version: "${{ matrix.python }}"
- run: "scripts/Sync-Py.ps1"
- uses: "actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b" # v4.3.4
with:
name: "lock"
path: "lock.json"
- uses: "actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9" # v4.0.2
with:
path: "${{ env.UV_CACHE_DIR }}"
key: "uv-${{ matrix.runner }}-${{ matrix.python }}-${{ hashFiles('lock.json') }}"
build-docs:
needs: "sync"
strategy:
matrix:
runner: ["ubuntu-22.04"]
python: ["3.11"]
runs-on: "${{ matrix.runner }}"
steps:
- uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" # v4.1.7
with:
submodules: True
- uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" # v4.1.8
with:
name: "lock"
- uses: "actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9" # v4.0.2
with:
path: "${{ env.UV_CACHE_DIR }}"
key: "uv-${{ matrix.runner }}-${{ matrix.python }}-${{ hashFiles('lock.json') }}"
- uses: "actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f" # v5.1.1
with:
python-version: "${{ matrix.python }}"
- run: "scripts/Sync-Py.ps1"
- run: "sphinx-build -EaT docs _site"
- uses: "actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa" # v3.0.1
deploy-docs:
if: github.event_name != 'pull_request'
needs: "build-docs"
permissions:
pages: "write"
id-token: "write"
strategy:
matrix:
runner: ["ubuntu-22.04"]
python: ["3.11"]
environment:
name: "github-pages"
url: "${{ steps.deployment.outputs.page_url }}"
runs-on: "${{ matrix.runner }}"
steps:
- id: "deployment"
uses: "actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e" # v4.0.5
ruff:
needs: "sync"
strategy:
matrix:
runner: ["ubuntu-22.04"]
python: ["3.11"]
runs-on: "${{ matrix.runner }}"
steps:
- uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" # v4.1.7
with:
submodules: True
- uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" # v4.1.8
with:
name: "lock"
- uses: "actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9" # v4.0.2
with:
path: "${{ env.UV_CACHE_DIR }}"
key: "uv-${{ matrix.runner }}-${{ matrix.python }}-${{ hashFiles('lock.json') }}"
- uses: "actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f" # v5.1.1
with:
python-version: "${{ matrix.python }}"
- run: "scripts/Sync-Py.ps1"
- run: "ruff check --no-fix --output-format github ."
fawltydeps:
needs: "sync"
strategy:
matrix:
runner: ["ubuntu-22.04"]
python: ["3.11"]
runs-on: "${{ matrix.runner }}"
steps:
- uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" # v4.1.7
with:
submodules: True
- uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" # v4.1.8
with:
name: "lock"
- uses: "actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9" # v4.0.2
with:
path: "${{ env.UV_CACHE_DIR }}"
key: "uv-${{ matrix.runner }}-${{ matrix.python }}-${{ hashFiles('lock.json') }}"
- uses: "actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f" # v5.1.1
with:
python-version: "${{ matrix.python }}"
- run: "scripts/Sync-Py.ps1"
- run: |
pre-commit run fawltydeps-src
pre-commit run fawltydeps-docs
pre-commit run fawltydeps-pipeline
pre-commit run fawltydeps-scripts
pre-commit run fawltydeps-tests
pyright:
needs: "sync"
strategy:
matrix:
runner: ["ubuntu-22.04"]
python: ["3.11"]
runs-on: "${{ matrix.runner }}"
steps:
- uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" # v4.1.7
with:
submodules: True
- uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" # v4.1.8
with:
name: "lock"
- uses: "actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9" # v4.0.2
with:
path: "${{ env.UV_CACHE_DIR }}"
key: "uv-${{ matrix.runner }}-${{ matrix.python }}-${{ hashFiles('lock.json') }}"
- uses: "actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f" # v5.1.1
with:
python-version: "${{ matrix.python }}"
- run: "scripts/Sync-Py.ps1"
- uses: "jakebailey/pyright-action@3bdde3b31d26f0f1f5de051b1fbd7a536a9a4e7f" # v2.3.1
with:
pylance-version: "${{ env.PYRIGHT_PYTHON_PYLANCE_VERSION }}"
test:
needs: "sync"
strategy:
matrix:
runner:
- "macos-13"
- "ubuntu-22.04"
- "windows-2022"
python:
- "3.11"
- "3.12"
runs-on: "${{ matrix.runner }}"
steps:
- uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" # v4.1.7
with:
submodules: True
- uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" # v4.1.8
with:
name: "lock"
- uses: "actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9" # v4.0.2
with:
path: "${{ env.UV_CACHE_DIR }}"
key: "uv-${{ matrix.runner }}-${{ matrix.python }}-${{ hashFiles('lock.json') }}"
- uses: "actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f" # v5.1.1
with:
python-version: "${{ matrix.python }}"
- run: "scripts/Sync-Py.ps1 -Version '${{ matrix.python }}'"
- if: (!(startsWith(matrix.runner, 'ubuntu') && (matrix.python == '3.11')))
run: "pytest"
# ! https://github.com/pytest-dev/pytest-cov/issues/479#issuecomment-1247444988
- if: startsWith(matrix.runner, 'ubuntu') && matrix.python == '3.11'
run: "pytest --cov --cov-config=pyproject.toml --cov-report=xml"
- if: startsWith(matrix.runner, 'ubuntu') && matrix.python == '3.11'
run: "Remove-Item -Recurse -Force .cache/uv"
- if: startsWith(matrix.runner, 'ubuntu') && matrix.python == '3.11'
uses: "codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673" # v4.5.0
env:
CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}"
lock:
needs:
- "build-docs"
- "ruff"
- "fawltydeps"
- "pyright"
- "test"
permissions:
contents: "write"
strategy:
matrix:
runner: ["ubuntu-22.04"]
python: ["3.11"]
runs-on: "${{ matrix.runner }}"
steps:
- uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" # v4.1.7
with:
submodules: True
- uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" # v4.1.8
with:
name: "lock"
- uses: "actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9" # v4.0.2
with:
path: "${{ env.UV_CACHE_DIR }}"
key: "uv-${{ matrix.runner }}-${{ matrix.python }}-${{ hashFiles('lock.json') }}"
- uses: "actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f" # v5.1.1
with:
python-version: "${{ matrix.python }}"
- run: "scripts/Sync-Py.ps1"
- uses: "stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842" # v5.0.1
with:
commit_message: "Sync and lock"