Pipeline CI/CD: .woodpecker.yaml + Dockerfile (Fase 2) #6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "3-pipeline-cicd"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Pipeline CI/CD completo para html-poster-espanol siguiendo el patron exacto de landscaping-assistant. Incluye Woodpecker CI con lint/test/build-and-push, Dockerfile multi-stage con imagenes base del Harbor privado, y docker-entrypoint para migraciones automaticas.
Changes
.woodpecker.yaml-- Pipeline con 4 pasos: bundle-install, lint (rubocop), test (minitest + postgres service), build-and-push (kaniko a Harbor). Solo build-and-push en push a main.Dockerfile-- Multi-stage build usando ruby-rails-build (stage 1) y ruby-rails-runtime (stage 2) del registry Harbor. Incluye bootsnap precompile y asset precompilation.bin/docker-entrypoint-- Entrypoint que ejecuta db:prepare cuando se corre el servidor Rails..current-issue-- Actualizado a issue #3.Test Plan
Review Checklist
Related Notes
PR #6 Review
DOMAIN REVIEW
Tech stack: Woodpecker CI pipeline YAML, Dockerfile (multi-stage), Bash entrypoint. This is infra/CI code -- applying CI/CD, container, and secrets handling checks.
Pipeline (.woodpecker.yaml)
bundle-installstep runs on all events,lintandtestdepend on it -- dependency graph is correct.bundle exec rails test(minitest) -- confirmed repo hastest/directory, nospec/. Correct.DATABASE_URLuseshtml_poster_espanol_testas DB name -- matches project naming convention.databasehostname matches the DATABASE_URL host.build-and-pushgated toevent: push, branch: main-- only builds on merge to main. Correct.from_secret-- no hardcoded secrets.html-poster-espanol/app. All correct.Dockerfile
ruby-rails-buildfor build stage,ruby-rails-runtimefor runtime. Matches landscaping-assistant pattern exactly.rails:railsownership. ENTRYPOINT points to docker-entrypoint.docker-entrypoint (bin/docker-entrypoint)
git ls-files -s.rails serverguard is intentionally a no-op when default CMD is puma. This matches the landscaping-assistant pattern exactly -- it is a convenience hook for dev/override, not a bug.BLOCKERS
None.
NITS
Postgres service password: The service uses
POSTGRES_PASSWORD: postgresand the DATABASE_URL usespostgres:postgrescredentials. This is fine for CI (ephemeral, isolated), but worth noting it matches the landscaping-assistant pattern intentionally..current-issuechange: The diff updates.current-issuefrom2to3. This is a process artifact, not functional code. No concern.SOP COMPLIANCE
from_secretPROCESS OBSERVATIONS
VERDICT: APPROVED
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.