phpboyscout/cicd¶
A monorepo of reusable GitLab CI/CD components for the
phpboyscout toolchain — released together under one tag stream, run
inside the infra-tools image.
Consumers reference each component by URL and pin a tag:
Components¶
Gate components¶
tofu-lint—tofu fmt -check,tflint --recursive,terraform-docs --checkdrift.tofu-security—trivy config,checkov,gitleaks detect.tofu-validate—tofu init -backend=false && tofu validatewalked across consumer-specified paths.zensical-pages— pip-install Zensical fromrequirements-lock.txt, build the site, deploy to GitLab Pages ondeploy_branch.
Plan / apply components¶
tofu-plan— OIDC-authenticatedtofu planagainst AWS; produces a reviewable plan artifact + GitLab MR plan widget.tofu-apply— consumes atofu-planartifact, runstofu apply;plan_sourceselects same-pipeline (job) or cross-pipeline (ref) plan retrieval; manual-gated by default.
Token-requiring inputs (state-backend auth, jobs-artifacts API) default
to $CI_JOB_TOKEN; consumers override with their own credential.
Start here¶
- Component authoring guide — conventions, intent, the token-input requirement, and workflow for anyone adding or changing a component.
- Decision records — dated specs covering every design decision the components implement.
Related projects¶
phpboyscout/images/infra-tools— the container image the components run in.phpboyscout/terraform-aws-bootstrap— the bootstrap module; consumes these components for its own CI.phpboyscout/terraform-aws-security-baseline— the security-baseline module; same.phpboyscout/infra— the first concrete user; OIDC plan-on-MR / apply-on-tag flow.