Skip to content

feat(quality-gate): adopt template tier + per-template renovate#44

Merged
NWarila merged 1 commit into
mainfrom
feat/per-template-renovate-and-template-tier
May 9, 2026
Merged

feat(quality-gate): adopt template tier + per-template renovate#44
NWarila merged 1 commit into
mainfrom
feat/per-template-renovate-and-template-tier

Conversation

@NWarila
Copy link
Copy Markdown
Contributor

@NWarila NWarila commented May 9, 2026

Summary

Phase 3 of the per-template-renovate-baselines refactor. This consumer now:

  1. Runs two drift-gate checks per PR — one per tier (org + template).
  2. Mirrors all 11 org-tier files byte-identical from canonical `nwarila-platform/.github@f2ff593`, including the new ADR-0004 mirror.
  3. Mirrors the one template-tier file byte-identical from `NWarila/terraform-runner-template@0f1d828` — the inaugural template-tier ADR (pin Terraform versions exactly).
  4. Drops the 80-line Renovate byte-clone in favor of a thin `extends: ["github>NWarila/terraform-runner-template"]`, per ADR-0004's per-template-baseline model.

Net diff

File Direction Lines
`.github/renovate.json5` refactored from byte-clone to thin extends -83 / +14
`.github/workflows/drift-gate.yaml` added template-tier job; bumped org pin +41
`docs/decision-records/org/0004-...md` added (mirror) +223
`docs/decision-records/template/0001-...md` added (mirror) +179
`.gitignore` allowlist for the two new mirrors +2

Pin map after merge

  • org-baseline: `nwarila-platform/.github@f2ff593`
  • template-baseline: `NWarila/terraform-runner-template@0f1d828`
  • drift-gate engine: `NWarila/drift-gate@d835ae4`

Verified locally

  • org-tier drift-gate against canonical f2ff593: 11/11 MATCH
  • template-tier drift-gate against template 0f1d828: 1/1 MATCH

Test plan

  • `org-baseline / verify` passes 11/11.
  • `template-baseline / verify` passes 1/1.
  • After merge, this consumer's `renovate.json5` evaluates correctly via the `extends` chain (no Renovate behavior regression — Renovate's next run on `main` should produce the same set of update PRs as the previous byte-clone config).

🤖 Generated with Claude Code

Phase 3 of the per-template-renovate-baselines refactor (Model B,
canonicalised in nwarila-platform/.github ADR-0004 at f2ff593 and
adopted by NWarila/terraform-runner-template at 0f1d828).

This consumer now has TWO drift-gate invocations — one per tier —
and a thin Renovate config that inherits the entire stack-wide
baseline from the type-template instead of carrying a byte-clone.

drift-gate: dual-tier
---------------------
.github/workflows/drift-gate.yaml now runs:
  1. org-baseline / verify     pinned to nwarila-platform/.github@f2ff593
                               (manifest: baseline-manifest.json, 11 entries)
  2. template-baseline / verify pinned to NWarila/terraform-runner-template@0f1d828
                               (manifest: baseline-manifest.json, 1 entry)
Both must pass for the merge gate to be green.

ADR mirrors synced
------------------
- org/0004-use-renovate-for-dependency-updates.md NEW: byte-mirror of
  the canonical ADR-0004 (per-template-baselines model). The 4 existing
  org-tier mirrors (0001, 0002, 0003 and now 0004) cover the full
  canonical org tier at f2ff593.
- template/0001-pin-terraform-and-provider-versions-exactly.md NEW:
  byte-mirror of NWarila/terraform-runner-template@0f1d828's master.
  This is the consumer's first template-tier mirror.

renovate.json5 collapse
-----------------------
Was: 80-line byte-clone of NWarila/terraform-runner-template's full
config (universal + Terraform-specific managers, customManagers,
packageRules — all duplicated).

Now: 14 lines, just `extends: ["github>NWarila/terraform-runner-
template"]`. The template's full baseline propagates transparently
via Renovate's extends mechanism. Stack-wide tweaks happen in one
place (the template) rather than every consumer.

This is the user-visible payoff of the Model B amendment in ADR-0004:
DRY within the Terraform stack, no centralised org-level Renovate
config, stack independence preserved.

.gitignore
----------
Allowlist additions for the two new ADR mirror paths
(deny-all .gitignore per ADR-0003).

Verification
------------
Locally:
  - org-tier drift-gate against canonical f2ff593: 11/11 MATCH.
  - template-tier drift-gate against template 0f1d828: 1/1 MATCH.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

Terraform Framework Test Results

Check Status
Format
Init
Validate
Test Suite

Runs: 0 total, 0 passed, 0 failed, 0 skipped

Full test output
No test output captured.

Commit: 2adf48e

@NWarila NWarila merged commit a317f6e into main May 9, 2026
4 of 5 checks passed
@NWarila NWarila deleted the feat/per-template-renovate-and-template-tier branch May 9, 2026 15:49
NWarila added a commit that referenced this pull request May 25, 2026
## Summary

`tools/check_docs_layout.py` was not updated when PR #44 introduced the
template-tier ADR. The framework's own CI workflow only runs terraform
fmt/init/validate/test, so this never failed framework-side, but
consumers (github-terraform-runner) that run `make ci` against this
framework as part of contract validation surface the layout error.

Aligns with the convention in all four template repos which already
include 'template' in ADR_ALLOWED_SUBTREES.

## Test plan

- [ ] CI green

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant