Skip to content

ci: scheduled canary platform build for upstream drift#110

Merged
blarghmatey merged 2 commits into
mainfrom
worktree-canary-build
Jul 17, 2026
Merged

ci: scheduled canary platform build for upstream drift#110
blarghmatey merged 2 commits into
mainfrom
worktree-canary-build

Conversation

@blarghmatey

Copy link
Copy Markdown
Member

What & why

New edx-platform commits on master (and open-release branches) can break MIT
OL'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 appears
when 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-platform for master × 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_version bare-major bug that broke
build_platform — was fixed in #109.

Behavior

  • Schedule: Mon/Wed/Fri 07:00 UTC (a few times a week, not nightly — enough
    to catch drift early without rebuilding the world).
  • Cells: default mit-ol/master/mitxonline; extend default_cells to add an
    open-release cell. workflow_dispatch can target any single
    <group>/<release>/<deployment> via the cell input.
  • Notify: a scheduled failure opens or comments on a de-duplicated
    canary-failure issue (label auto-created). Manual runs skip the issue — the
    dispatcher already sees the result.
  • Cache: uses DAGGER_CLOUD_TOKEN if the secret is set; runs locally
    otherwise.
  • Least privilege: contents: read globally; issues: write only on the
    notify job.

Verification

  • yamllint + actionlint (the repo's own pre-commit hooks) pass.
  • yamlfmt clean.
  • Cell invocation mirrors 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_dispatch after merge to confirm end-to-end.

🤖 Generated with Claude Code

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>
Copilot AI review requested due to automatic review settings July 17, 2026 15:00
@gemini-code-assist

Copy link
Copy Markdown

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread .github/workflows/canary.yml Outdated
Comment thread .github/workflows/canary.yml Outdated
Comment thread .github/workflows/canary.yml Outdated
… 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>
@blarghmatey
blarghmatey merged commit 5a8021c into main Jul 17, 2026
9 checks passed
@blarghmatey
blarghmatey deleted the worktree-canary-build branch July 17, 2026 17:02
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.

2 participants