Skip to content

Commit 70d71b1

Browse files
alicodingclaude
andcommitted
feat: CI target architecture — sharded, budgeted, path-filtered, SHA-pinned (goal 0024)
The do-it-once pipeline from the deep-research pass (ADR-0034's Update section carries the adopted budgets): - changes job (dorny/paths-filter, SHA-pinned, some-with-excludes): docs-only PRs skip the heavy tail via job-level if: — skipped jobs REPORT success, so a required check can never hang at Expected (the exact footgun that deferred path filtering in ADR-0034, un-deferred with the mechanical reason). - e2e: 3-shard matrix, workers:1 per Playwright's own CI guidance — the fix for the 14-failure contention incident. build-go: fail-fast:false (both platform legs always report). - timeout-minutes on every job (~3x measured baselines; the 6-hour platform default was the alternative); ≤7min target / 10min DORA ceiling; 3-consecutive-breach escalation + retry-quarantine policy recorded in the ADR. - ci-gate aggregator (if: always(), needs everything, skipped=pass): the future ruleset's single required check, decoupled from job-name churn. dependency-review job (PR-only). - Every third-party action across ci.yml/release.yml/seed-liveness.yml pinned to a verified full commit SHA (the tj-actions supply-chain incident is the precedent); workflow-level permissions: contents: read; .github/dependabot.yml (weekly, grouped minor+patch, capped — no PR sprawl); .github/CODEOWNERS on .github/; README CI badge. Note: docs/SPEC.md here also carries goal 0025's one-line §3.7 rollback-semantics note (both waves landed together; single file, two same-session hunks). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FYwojT8GdUbYSoggbvEFft
1 parent efafda6 commit 70d71b1

10 files changed

Lines changed: 388 additions & 59 deletions

File tree

.github/CODEOWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# goal 0024 / ADR-0034: not review ceremony (solo repo, one owner) --
2+
# this exists so a workflow-file change coming from an external PR
3+
# (e.g. a Dependabot github-actions bump, or any future outside
4+
# contributor) always requires the owner's explicit sign-off before a
5+
# CI/CD definition itself can change, per GitHub's own CODEOWNERS
6+
# protection for workflow files.
7+
/.github/ @alicoding

.github/dependabot.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
version: 2
2+
3+
# goal 0024 / ADR-0034: keeps the three dependency ecosystems Mill
4+
# actually has (Go module root, the frontend npm workspace, and the
5+
# pinned-by-SHA GitHub Actions this repo now uses throughout) current
6+
# without turning into PR noise for a single-maintainer repo -- weekly,
7+
# grouped minor/patch bumps, a capped open-PR count per ecosystem, and
8+
# majors left as individual PRs since those can be breaking.
9+
#
10+
# Auto-merge is deliberately NOT configured here -- it's a later,
11+
# ruleset-dependent follow-up (goal 0024 item 4): auto-merging a
12+
# Dependabot PR only makes sense once `ci-gate` is a required check a
13+
# green Dependabot PR can actually satisfy on its own.
14+
updates:
15+
- package-ecosystem: gomod
16+
directory: /
17+
schedule:
18+
interval: weekly
19+
day: monday
20+
open-pull-requests-limit: 5
21+
groups:
22+
go-dependencies:
23+
update-types:
24+
- minor
25+
- patch
26+
# Major version bumps stay individual PRs (no group) -- a Go major
27+
# bump can be source-breaking and deserves its own review, not to be
28+
# bundled with unrelated minor/patch noise.
29+
30+
- package-ecosystem: npm
31+
directory: /frontend
32+
schedule:
33+
interval: weekly
34+
day: monday
35+
open-pull-requests-limit: 5
36+
groups:
37+
npm-dependencies:
38+
update-types:
39+
- minor
40+
- patch
41+
# Same reasoning as gomod above: majors stay individual.
42+
43+
- package-ecosystem: github-actions
44+
directory: /
45+
schedule:
46+
interval: weekly
47+
day: monday
48+
open-pull-requests-limit: 5
49+
groups:
50+
github-actions:
51+
# Every action in this repo is now pinned to a full commit SHA
52+
# (goal 0024) with a `# vX.Y.Z` trailing comment -- Dependabot's
53+
# github-actions ecosystem understands that convention natively:
54+
# it bumps the SHA and rewrites the version comment together, so
55+
# the comments stay accurate without manual upkeep. Grouped as
56+
# one bundle (not split minor/patch/major) since action bumps
57+
# carry far lower blast radius than a language dependency major.
58+
patterns:
59+
- '*'

0 commit comments

Comments
 (0)