Files
LLMScaffolding/instructions/bootstrap-cicd.md
Charles N Wyble 408db0d0cc
Some checks failed
CI / checks (push) Has been cancelled
CI / checks (pull_request) Has been cancelled
chore(ci): bootstrap CI + hooks
Squash-merge bootstrap-cicd into integration
2025-09-10 21:48:32 +00:00

1.6 KiB
Raw Permalink Blame History

Bootstrap CI/CD Finalized Instructions (Phase 1)

Goal

  • Provide Dockeronly local checks and Git hooks with parity to future CI. CI workflows are prepared but may remain disabled until runners are ready.

Requirements

  • Docker + Docker Compose v2 on the development machine. No host packages beyond Docker are required.

Local Checks

  • Entry point: scripts/ci <phase> where phase ∈ {format, lint, build, test, security, all}.
  • Always runs inside the ci container using docker/ci.compose.yml.
  • Tools pinned in ci.Dockerfile: shfmt, shellcheck, hadolint, yamllint, actionlint, prettier, markdownlint, commitlint.

Hooks

  • Install hooks: make hooks-setup (copies .githooks/* into .git/hooks).
  • pre-commit: runs format + lint.
  • commit-msg: runs commitlint (Conventional Commits).
  • pre-push: runs build; test and security are present but currently noops.

Convenience Targets

  • make quick → format + lint.
  • make check → all phases.
  • make build → compose validation.

CI (Prepared, optional enablement later)

  • .gitea/workflows/ci.yml: builds ci image; runs lint + build.
  • .gitea/workflows/release.yml: on pushes to main, creates annotated tag vYYYY.MM.DD-HHMM (UTC).
  • .gitea/workflows/nightly.yml: nightly lint run.
  • All jobs run inside the ci image; no runner host package installs.

Protected Checks (when CI is enabled)

  • Protect: ci / lint, ci / build, ci / commitlint. Add ci / test and ci / security when they exist.

Future Extensions

  • Add tests/security phases per repo stack; enable CI branch protections once runners are ready; optionally add pre-commit framework as an alternative to native hooks.