CI/CD pipeline: Woodpecker + Harbor + ArgoCD (Phase 2) #3

Open
opened 2026-06-10 11:38:55 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Standalone -- service onboarding. See docs/roadmap/ Phase 2.

Repo

ldraney/html-poster

User Story

As a DevOps practitioner
I want html-poster to build, test, and deploy automatically on push
So that I prove the platform onboards new services repeatably

Context

Follow the landscaping-assistant pipeline pattern exactly. Woodpecker CI does lint + test + kaniko build. Harbor stores the image. ArgoCD syncs from pal-e-deployments kustomize overlays. Tailscale funnel provides the public URL. Also requires adding html-poster to var.services in pal-e-services Terraform.

File Targets

Files the agent should modify or create:

  • .woodpecker.yaml -- CI pipeline (lint, test, build+push)
  • Dockerfile -- multi-stage build (ruby-rails-build + ruby-rails-runtime)

Files in other repos:

  • pal-e-services -- add html-poster to var.services map
  • pal-e-deployments -- kustomize overlay for html-poster

Files the agent should NOT touch:

  • docs/ -- documentation is already written

Feature Flag

none

Acceptance Criteria

  • .woodpecker.yaml with bundle-install, lint, test, build-and-push steps
  • Multi-stage Dockerfile using Harbor base images
  • html-poster entry in pal-e-services var.services
  • Green Woodpecker pipeline on push to main
  • ArgoCD syncs and pod is running
  • Public URL live via Tailscale funnel

Test Expectations

  • CI: rubocop passes
  • CI: rspec passes
  • CI: kaniko builds and pushes to Harbor
  • Run command: docker compose exec web bundle exec rubocop && docker compose exec web bundle exec rspec

Constraints

  • Clone .woodpecker.yaml pattern from landscaping-assistant/.woodpecker.yaml
  • Clone Dockerfile pattern from landscaping-assistant/Dockerfile
  • In-cluster Forgejo clone (not public URL)
  • kaniko for Docker builds (no Docker-in-Docker)

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • html-poster -- project this affects
  • landscaping-assistant -- pipeline reference
  • pal-e-services -- Terraform service registration
  • pal-e-deployments -- kustomize overlays
### Type Feature ### Lineage Standalone -- service onboarding. See `docs/roadmap/` Phase 2. ### Repo `ldraney/html-poster` ### User Story As a DevOps practitioner I want html-poster to build, test, and deploy automatically on push So that I prove the platform onboards new services repeatably ### Context Follow the landscaping-assistant pipeline pattern exactly. Woodpecker CI does lint + test + kaniko build. Harbor stores the image. ArgoCD syncs from pal-e-deployments kustomize overlays. Tailscale funnel provides the public URL. Also requires adding `html-poster` to `var.services` in pal-e-services Terraform. ### File Targets Files the agent should modify or create: - `.woodpecker.yaml` -- CI pipeline (lint, test, build+push) - `Dockerfile` -- multi-stage build (ruby-rails-build + ruby-rails-runtime) Files in other repos: - `pal-e-services` -- add html-poster to `var.services` map - `pal-e-deployments` -- kustomize overlay for html-poster Files the agent should NOT touch: - `docs/` -- documentation is already written ### Feature Flag none ### Acceptance Criteria - [ ] `.woodpecker.yaml` with bundle-install, lint, test, build-and-push steps - [ ] Multi-stage Dockerfile using Harbor base images - [ ] html-poster entry in pal-e-services `var.services` - [ ] Green Woodpecker pipeline on push to main - [ ] ArgoCD syncs and pod is running - [ ] Public URL live via Tailscale funnel ### Test Expectations - [ ] CI: rubocop passes - [ ] CI: rspec passes - [ ] CI: kaniko builds and pushes to Harbor - Run command: `docker compose exec web bundle exec rubocop && docker compose exec web bundle exec rspec` ### Constraints - Clone `.woodpecker.yaml` pattern from `landscaping-assistant/.woodpecker.yaml` - Clone `Dockerfile` pattern from `landscaping-assistant/Dockerfile` - In-cluster Forgejo clone (not public URL) - kaniko for Docker builds (no Docker-in-Docker) ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `html-poster` -- project this affects - `landscaping-assistant` -- pipeline reference - `pal-e-services` -- Terraform service registration - `pal-e-deployments` -- kustomize overlays
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
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
ldraney/html-poster#3
No description provided.