feat(ci): CI/CD pipeline definitions #858

Closed
opened 2026-03-13 22:01:37 +00:00 by freemo · 1 comment
Owner

Metadata

  • Commit Message: feat(ci): CI/CD pipeline definitions
  • Branch: feature/m7-ci-cd-pipelines

Background

M7 (v3.6.0) acceptance criterion: CI/CD pipeline definitions must be implemented (not just test scaffolding). This includes actual pipeline configuration for automated testing, linting, coverage reporting, and deployment workflows.

Expected Behavior

  1. CI pipeline runs full test suite on every PR
  2. Coverage reporting integrated into CI
  3. Linting (ruff) runs as part of CI
  4. Deployment pipeline defined for release builds
  5. Pipeline failures block PR merging

Acceptance Criteria

  • CI pipeline configuration files defined and functional
  • Full test suite runs in CI on every PR
  • Coverage reporting integrated
  • Linting integrated into CI
  • Deployment pipeline defined
  • Pipeline failures block merging

Subtasks

  • Define CI pipeline configuration (Forgejo Actions / equivalent)
  • Integrate test suite execution
  • Integrate coverage reporting
  • Integrate ruff linting
  • Define deployment pipeline
  • Test pipeline end-to-end
  • Document pipeline setup in CONTRIBUTING.md

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
## Metadata - **Commit Message**: `feat(ci): CI/CD pipeline definitions` - **Branch**: `feature/m7-ci-cd-pipelines` ## Background M7 (v3.6.0) acceptance criterion: CI/CD pipeline definitions must be implemented (not just test scaffolding). This includes actual pipeline configuration for automated testing, linting, coverage reporting, and deployment workflows. ## Expected Behavior 1. CI pipeline runs full test suite on every PR 2. Coverage reporting integrated into CI 3. Linting (ruff) runs as part of CI 4. Deployment pipeline defined for release builds 5. Pipeline failures block PR merging ## Acceptance Criteria - [ ] CI pipeline configuration files defined and functional - [ ] Full test suite runs in CI on every PR - [ ] Coverage reporting integrated - [ ] Linting integrated into CI - [ ] Deployment pipeline defined - [ ] Pipeline failures block merging ## Subtasks - [ ] Define CI pipeline configuration (Forgejo Actions / equivalent) - [ ] Integrate test suite execution - [ ] Integrate coverage reporting - [ ] Integrate ruff linting - [ ] Define deployment pipeline - [ ] Test pipeline end-to-end - [ ] Document pipeline setup in CONTRIBUTING.md ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done.
freemo added this to the v3.6.0 milestone 2026-03-13 22:02:10 +00:00
Member

Implementation Notes

What Was Implemented

  1. Release pipeline (.forgejo/workflows/release.yml, 141 lines): 3-job workflow triggered on v* tags — builds wheel via nox -s build, builds Docker image, creates Forgejo release via API with wheel artifact. Configurable registry push via REGISTRY_* secrets.

  2. CI caching: Added actions/cache@v3 for ~/.cache/uv on all 8 primary jobs in ci.yml, keyed on pyproject.toml hash with fallback restore keys.

  3. Status-check consolidation: New status-check job in ci.yml with if: always() depending on lint, typecheck, security, quality, unit_tests, coverage, build, docker — single gate for branch protection configuration.

  4. Documentation: New CI/CD section in CONTRIBUTING.md covering pipeline overview, job table, required merge checks, release process, secrets, and caching.

  5. Tests: 13 Behave scenarios + 9 Robot tests validating workflow YAML structure, triggers, jobs, dependencies.

Commit

45475fbe on branch feature/m7-ci-cd-pipelines

PR

PR #983

## Implementation Notes ### What Was Implemented 1. **Release pipeline** (`.forgejo/workflows/release.yml`, 141 lines): 3-job workflow triggered on `v*` tags — builds wheel via `nox -s build`, builds Docker image, creates Forgejo release via API with wheel artifact. Configurable registry push via `REGISTRY_*` secrets. 2. **CI caching**: Added `actions/cache@v3` for `~/.cache/uv` on all 8 primary jobs in `ci.yml`, keyed on `pyproject.toml` hash with fallback restore keys. 3. **Status-check consolidation**: New `status-check` job in `ci.yml` with `if: always()` depending on lint, typecheck, security, quality, unit_tests, coverage, build, docker — single gate for branch protection configuration. 4. **Documentation**: New CI/CD section in CONTRIBUTING.md covering pipeline overview, job table, required merge checks, release process, secrets, and caching. 5. **Tests**: 13 Behave scenarios + 9 Robot tests validating workflow YAML structure, triggers, jobs, dependencies. ### Commit `45475fbe` on branch `feature/m7-ci-cd-pipelines` ### PR [PR #983](https://git.cleverthis.com/cleveragents/cleveragents-core/pulls/983)
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#858
No description provided.