ci: scheduled canary platform build for upstream drift#110
Merged
Conversation
PR-triggered CI never sees a regression introduced by a new edx-platform commit: master (and open-release branches) move independently of this repo, so a bump that breaks MIT OL's pinned plugin set or aqueduct settings only surfaces when ol-infrastructure's Concourse pipeline builds a release-day image. This adds the top of the verification pyramid — a scheduled (Mon/Wed/Fri) full `dagger call platform build-platform` for master × mitxonline that publishes nothing and exists only to prove the cell still builds. A scheduled failure opens (or comments on) a de-duplicated `canary-failure` issue so drift is caught before a release scramble; manual dispatch can target any single cell and skips the issue. Cheap PR tiers stay in ci.yml and plugin-compat.yml; this is the only tier that runs a real asset build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
There was a problem hiding this comment.
Pull request overview
Adds scheduled full-platform canary builds to detect upstream edx-platform drift before release builds.
Changes:
- Runs the mitxonline master cell three times weekly or manually.
- Uses optional Dagger Cloud caching.
- Reports scheduled failures through deduplicated GitHub issues.
… repro cmd Copilot review on #110: - Concurrency key now includes the event and dispatched cell, so a manual dispatch of one cell can't cancel the scheduled sweep (cancellation isn't a failure, so it would bypass the notify job) and the schedule can't cancel an operator's manual run — only like supersedes like. - Scope DAGGER_CLOUD_TOKEN to the build-platform step instead of the job, so neither `checkout` nor the curl|sudo -E Dagger installer can read it. - Add the required --custom-settings dir to the reproduction command in the failure issue body (build_platform declares it required; without it a responder hits CLI validation instead of reproducing the build). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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 & why
New edx-platform commits on
master(and open-release branches) can break MITOL's pinned plugin set or aqueduct settings with no change in this repo. PR
CI (
ci.yml,plugin-compat.yml) never sees it, so the breakage first appearswhen ol-infrastructure's Concourse pipeline builds a release-day image.
This adds the top of the verification pyramid: a scheduled canary that runs
the full
dagger call platform build-platformformaster × mitxonline,publishing nothing — it exists only to prove the cell still builds.
Closes the "Scheduled canary build" task (project: lehrer CI verification
pipeline). Its blocker — the
node_versionbare-major bug that brokebuild_platform— was fixed in #109.Behavior
to catch drift early without rebuilding the world).
mit-ol/master/mitxonline; extenddefault_cellsto add anopen-release cell.
workflow_dispatchcan target any single<group>/<release>/<deployment>via thecellinput.canary-failureissue (label auto-created). Manual runs skip the issue — thedispatcher already sees the result.
DAGGER_CLOUD_TOKENif the secret is set; runs locallyotherwise.
contents: readglobally;issues: writeonly on thenotifyjob.Verification
yamllint+actionlint(the repo's own pre-commit hooks) pass.yamlfmtclean.lehrer build platform/plugin-compat.yml(
--build-manifest deployments/<group>/build_manifest.yaml --release-name --deployment-name --custom-settings deployments/<group>/settings).Not exercised here: an actual scheduled build run (needs the workflow on the
default branch + a runner; ~an hour of build). Recommend a one-off
workflow_dispatchafter merge to confirm end-to-end.🤖 Generated with Claude Code