Skip to content

Add GitHub Actions CI workflow#28

Merged
julien731 merged 5 commits intodevelopfrom
feature/24-ci-workflow
Mar 14, 2026
Merged

Add GitHub Actions CI workflow#28
julien731 merged 5 commits intodevelopfrom
feature/24-ci-workflow

Conversation

@julien731
Copy link
Copy Markdown
Member

@julien731 julien731 commented Mar 14, 2026

Closes: #24

Summary

  • Add GitHub Actions CI workflow with lint and test jobs
  • Add Ruff to dev dependencies in requirements.txt
  • CI triggers on PRs and pushes to develop and main branches

Approach

Two parallel jobs for faster feedback:

  • Lint & Format: installs only Ruff, runs ruff check and ruff format --check
  • Test & Coverage: installs backend + test dependencies (excluding ML packages which are mocked), runs pytest with coverage reporting and 80% threshold enforcement

ML dependencies (whisperx, torch) are excluded from CI since all tests mock the transcription pipeline (BR1).

Verification

  • All 49 tests pass locally
  • Coverage at 57% (below 80% threshold) — expected since integration/e2e tests are separate stories; CI will correctly enforce the threshold once coverage catches up
  • Ruff check and format pass on the codebase
  • Architect review passed with all critical/major issues addressed

@julien731
Copy link
Copy Markdown
Member Author

QA Confidence Verdict: Issue #24 - CI Workflow

What Was Verified

# Check Status Method
AC1 Workflow file exists at .github/workflows/ci.yml PASS Code inspection
AC2 Triggers on PRs to develop and main PASS Code inspection (also triggers on push per architect review)
AC3 Steps: checkout, Python 3.12, deps, ruff lint, ruff format, pytest+coverage PASS Code inspection
AC4 Workflow fails if lint/format checks fail PASS ruff check and ruff format --check exit non-zero on failure
AC5 Workflow fails if coverage below 80% PASS --cov-fail-under=80 flag present
AC6 Coverage report printed to stdout PASS --cov-report=term-missing flag present
AC7 Ruff added to dev dependencies PASS ruff>=0.9.0 in requirements.txt
BR4 Ruff is single tool for lint+format PASS Only ruff used, no flake8/black/isort
BR5 CI on PRs only (+ push to develop/main per review) PASS Triggers match

What Needs Human Eyes

Nothing significant. This is infrastructure config with no UI impact.

Risk Areas

Coverage is currently at 56.9%, below the 80% threshold. Running pytest --cov --cov-fail-under=80 locally fails. This means the CI pipeline will correctly fail on the current test suite. This is expected behavior (the workflow correctly enforces the threshold), but the team should be aware that CI will be red until test coverage is improved.

The CI test job hardcodes dependency versions rather than using requirements.txt directly. This creates a maintenance risk where CI deps and local deps could drift apart. However, this is intentional since the full requirements.txt includes ML packages (whisperx, torch) that are impractical in CI.

Suggested QA Focus

  • Quick glance: Confirm the workflow runs successfully on this PR by checking the GitHub Actions tab
  • Follow-up: Plan to increase test coverage to 80%+ so the CI gate passes on future PRs

@julien731 julien731 self-assigned this Mar 14, 2026
@julien731 julien731 added the chore Maintenance or housekeeping task label Mar 14, 2026
@julien731 julien731 force-pushed the feature/24-ci-workflow branch from 7c4ec1d to e720572 Compare March 14, 2026 06:25
Runs lint (ruff check + format) and tests (pytest with coverage)
on pull requests to develop and main branches.
…n deps

- Quote pip install version specifiers to prevent shell glob expansion
- Add push trigger for develop and main branches
- Align dependency versions with requirements.txt
- Add pip cache to lint job
@julien731 julien731 force-pushed the feature/24-ci-workflow branch from e720572 to 3e3a8e2 Compare March 14, 2026 06:46
@julien731 julien731 merged commit 00d73ad into develop Mar 14, 2026
2 checks passed
@julien731 julien731 deleted the feature/24-ci-workflow branch March 14, 2026 06:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance or housekeeping task

Projects

None yet

Development

Successfully merging this pull request may close these issues.

As a developer, I can see CI results on my PR so that quality issues are caught before merge

1 participant