mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-18 15:52:10 +00:00
b8093d707d
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>
58 lines
1.6 KiB
YAML
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
|