Validation: Activate Woodpecker CI for ISS repo
Verdict: PASS
Ticket
ldraney/intelligentstaffingsystems#47 — Activate Woodpecker CI for the ISS repo. CI activation was done via Woodpecker UI (no code PR). The
.woodpecker.yaml pipeline config was added as part of the initial bootstrap PR #31.Environment
Woodpecker CI at Forgejo instance
forgejo.tail5b443a.ts.net. Production cluster namespace intelligentstaffingsystems. Harbor registry at harbor.tail5b443a.ts.net. ArgoCD managed deployment.Checks
| # | Criterion | How Verified | Result | Evidence |
|---|---|---|---|---|
| 1 | Repo is activated in Woodpecker | <code>mcp__woodpecker__list_repos</code> + <code>get_repo</code> | PASS | Repo id 48, <code>ldraney/intelligentstaffingsystems</code>, <code>active: true</code>, default_branch: main, allow_pull_requests: true |
| 2 | Pipeline config exists in repo | Read <code>.woodpecker.yaml</code> | PASS | Config present with 5 steps: bundle-install, lint (rubocop), security (brakeman), test (rails test), build-and-push (kaniko to Harbor). Events: push, pull_request, manual. Build-and-push gated to push on main only. |
| 3 | Push events on main trigger pipelines | <code>mcp__woodpecker__list_pipelines</code> + <code>get_pipeline_status</code> | PASS | Pipeline #19 (push, main): success — all 7 steps green (clone, database, bundle-install, lint, security, test, build-and-push). Pipeline #18 (push, main): success — all 7 steps green. |
| 4 | Pull request events trigger pipelines | <code>get_pipeline_status</code> for PR pipelines | PASS | Pipeline #16 (pull_request): success — 6 steps green (clone, database, bundle-install, lint, security, test). Build-and-push correctly skipped (PR, not main push). Pipeline #10 (pull_request): success. |
| 5 | Build-and-push produces deployable image | <code>kubectl get pods -o jsonpath image</code> | PASS | Pod running image <code>harbor.tail5b443a.ts.net/intelligentstaffingsystems/app:93b9a79b8a88cbb07a7f8fda1b6d85803580cbbb</code>. Tag matches latest commit <code>93b9a79</code>. |
| 6 | Full CI/CD loop completes (CI → Harbor → ArgoCD → pod) | <code>kubectl get application</code> + <code>kubectl get pods</code> | PASS | ArgoCD sync: Synced. ArgoCD health: Healthy. Pod: 1/1 Running, 0 restarts. |
Regression Check
ArgoCD reports Synced + Healthy for the ISS application. Pod running with 0 restarts. 19 pipelines have executed across push, pull_request, and feature branch events — demonstrating sustained CI health, not just initial activation. Most recent two main-branch pipelines (#18, #19) both fully green.
Discovered Issues
None. Pipeline image repo mismatch (pushed to
intelligentstaffingsystems/intelligentstaffingsystems instead of intelligentstaffingsystems/app) was already fixed in commit 93b9a79 (pipeline #19). No new issues found during validation.