Validation: Activate Woodpecker CI for ISS repo

validation-47-2026-07-17 Doc

validation pass

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.