Files
conjurer/.github/workflows/ci.yml
T
Michal Tuszowski b8093d707d ci: allow manual runs via workflow_dispatch
Lets CI be triggered on demand from the Actions tab or `gh workflow run`,
instead of pushing a commit just to exercise the pipeline.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 13:51:26 +02:00

58 lines
1.6 KiB
YAML

name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
# Manual trigger: run CI on demand from the Actions tab (or `gh workflow run
# ci.yml --ref <branch>`) without pushing a commit just to see it go green.
workflow_dispatch:
permissions:
contents: read
jobs:
compile:
# Byte-compile every first-party .py to catch syntax errors. No deps.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: py_compile first-party sources
run: |
git ls-files '*.py' | grep -vE '^(yt_dlp|spotify_dl)/' | xargs python -m py_compile
echo "All first-party sources compile."
unit:
# Pure-logic tests; tested modules guard heavy deps, so only pytest needed.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install test deps
run: |
python -m pip install --upgrade pip
pip install pytest
- name: Run unit tests
run: pytest tests/unit -v
integration:
# Boot the Flask services and assert the X-Conjurer-Api-Key auth contract.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install service deps
run: |
python -m pip install --upgrade pip
pip install pytest flask waitress requests
- name: Run integration tests
run: pytest tests/integration -v