Conversation
Rename scheduled-liveness.yml to nightly.yml so one cron surface owns every scheduled slot, and add the full-matrix flake surveillance slot beside the long-horizon liveness one. Surveillance calls ci-e2e.yml through a new workflow_call trigger rather than restating its suites, so the nightly run reports the same job names the main gate does. A force-all input stands in for the push change filter, which has no base commit on a night with no push. A report job opens, or comments on, a single comp:ci tracking issue when any slot fails, so a scheduled red is never a square nobody reads.
The Lint gate pins docker/Caddyfile to the committed range snapshot, so it catches an edit to the trusted set but not Cloudflare changing that set upstream. A range Cloudflare adds collapses every member behind the new POP into one rate-limit bucket, and nothing reported it. Move CLOUDFLARE_RANGES into its own module, because importing the accelerator front check runs Docker, and diff it against Cloudflare's published list in a nightly job. An unreachable or malformed source fails the job, so silence is never read as a pass.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
One
nightly.ymlnow owns every scheduled slot.scheduled-liveness.ymlis renamed into it, so the repository keeps one cron surface instead of three.ci-e2e.ymlthrough a newworkflow_calltrigger instead of restating its suites, so the nightly run reports the same job names the main gate does. Aforce-allinput stands in for the push change filter, which has no base commit on a night with no push.retries: 0needs no new setting:tests/web-e2e/playwright.config.tsalready sets it as policy in both slices.https://api.cloudflare.com/client/v4/ipsand fails on any difference.CLOUDFLARE_RANGESmoves intoscripts/cloudflare-ranges.mjs, because importing the accelerator front check would run Docker; the Lint gate still pinsdocker/Caddyfileto the same set and the Caddy runtime is unchanged.issues: writeruns when any slot fails and opens, or comments on, a singlecomp:citracking issue. One issue is reused, so a week of red nights does not file seven issues.blueprint/deploy.mdandblueprint/testing.mdrecord the tier, and the range list moves from a residual assumption to a watched one.Closes #1385.
Closes #652.
Closes #1508.
Verification
zizmor 1.25.2 --no-online-audits .github/workflows/ .github/actions/— no findings.actionlinton both edited workflows — clean.pnpm lint,pnpm lint:md,pnpm lint:tracker-refs— clean.pnpm lint:accelerator-frontagainst the real adapted Caddy config — obligations hold, so the extracted constant feeds the same gate.node scripts/check-cloudflare-ranges.mjs— the committed 22 ranges match Cloudflare's live list today. The unreachable-source path was exercised against an unresolvable host and exits 1 with a readable message.pnpm --filter @cipherbox/api typecheck— clean.GitHub reads
scheduleandworkflow_dispatchfrom the default branch alone, so the new file is inert on this branch and becomes dispatchable only after the merge. The first real exercise of the nightly tier is therefore the night after this lands.Body checks and follow-ups filed
workflow_callplusforce-alldecision, theretries: 0finding, the notification shape, and the default-branch limit.scheduled-liveness.yml, so the residual scope is the rename plus ci: add the nightly full-matrix flake surveillance run #1385 and deploy: notice when Cloudflare changes its published IP ranges #1508. The parent closes with them.