Skip to content

Tidy Up CI Workflows #37

@AuraMindNest

Description

@AuraMindNest

Problem

The cppa-weblate-plugin CI accumulated several workflow files during Week 20 (build-and-check, lint-and-format, dep-audit), and Week 21 adds coverage reporting. These workflows may have redundant triggers, conflicting job names, or missing required-check configurations. The CI needs a holistic pass to ensure: each PR gets the right checks, required checks are enforced in branch protection, jobs don't duplicate work (e.g., installing dependencies twice), and the workflow matrix is clean and maintainable.

Acceptance Criteria

  • All CI workflow files are audited: list current workflows, their triggers (on: push, on: pull_request, on: workflow_dispatch), and their jobs
  • Redundant triggers are removed (e.g., if a workflow runs on both push and pull_request to main, decide which is needed)
  • Job names are consistent and descriptive (e.g., lint, test, build, audit) for clear GitHub status checks
  • A single "required checks" set is defined and documented (recommended: lint, test, build)
  • Dependency installation is not duplicated across jobs that could share a cached environment
  • actions/setup-python and pip install / uv sync versions are consistent across all workflows
  • The dep-audit workflow runs on a schedule (weekly) rather than blocking every PR, unless the team explicitly wants it on PRs
  • Each workflow file has a top-level name: that matches its purpose
  • Branch protection rules for main are documented in the README (even if not configured via API)
  • No workflow uses continue-on-error: true without justification

Implementation Notes

Start by listing all .github/workflows/*.yml files and creating a matrix of triggers vs. jobs. Merge workflows where possible (e.g., lint and test can be jobs in a single workflow). Use actions/cache or setup-python with caching to speed up installs. For required checks, document the exact job names that should be added to branch protection. Consider a ci.yml monorepo-style workflow with a job matrix instead of separate files per concern.

References

  • Related files: .github/workflows/*.yml, pyproject.toml (dependency groups), README.md (branch protection docs)
  • Depends on: Coverage reporting item (adds a new CI step to integrate)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions