Skip to content

ci: lock build-channel workflow installs#829

Merged
JoshuaBatty merged 2 commits into
masterfrom
josh/lock-build-channel-install
Apr 7, 2026
Merged

ci: lock build-channel workflow installs#829
JoshuaBatty merged 2 commits into
masterfrom
josh/lock-build-channel-install

Conversation

@JoshuaBatty
Copy link
Copy Markdown
Member

Summary

Lock the build-channel workflow installs to the repository lockfile in the two workflows that install the helper binary:

  • Publish Channel (nightly)
  • Update Channel

Why

The manual Publish Channel (nightly) run failed on the Install build-channel script step before it ever reached channel publishing or deployment.

Failing run:

The workflow currently runs:

  • cargo install --debug --path ./ci/build-channel

Because that install is not locked, Cargo re-resolves dependencies on the runner instead of honoring the repo lockfile. In the failing run it pulled newer icu_* 2.2.0 crates, which require Rust 1.86, while the workflow is pinned to Rust 1.85.0.

The repo lockfile already pins the same dependency family to compatible 1.5.x versions, so this is dependency drift during CI install rather than a true project-wide Rust floor bump.

Change

Add --locked to the cargo install --path ./ci/build-channel command in both workflows so CI uses the checked-in lockfile when installing the helper.

Validation

Validated locally in Docker with rust:1.85 against this checkout:

  • cargo install --debug --path ./ci/build-channel failed and re-resolved to icu_* 2.2.0, which requires Rust 1.86
  • cargo install --locked --debug --path ./ci/build-channel succeeded on the same toolchain

That matches the GitHub Actions failure and confirms --locked is the correct fix without widening the workflow toolchain unnecessarily.

@cursor
Copy link
Copy Markdown

cursor Bot commented Apr 7, 2026

PR Summary

Low Risk
Low risk: CI/workflow determinism change plus a test-only update to use a fixed nightly date; no production runtime logic is modified.

Overview
CI installs are now deterministic. Both Publish Channel (nightly) and Update Channel workflows add --locked to cargo install --path ./ci/build-channel, preventing dependency re-resolution drift on GitHub runners.

Tests no longer depend on yesterday’s nightly publish. Override-based test helpers in tests/testcfg/mod.rs switch from nightly-{yesterday()} to a fixed OVERRIDE_DATE archived nightly, and update related examples/usages accordingly.

Reviewed by Cursor Bugbot for commit 90e4bc7. Bugbot is set up for automated code reviews on this repo. Configure here.

@JoshuaBatty JoshuaBatty self-assigned this Apr 7, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

LCOV of commit 90e4bc7 during CI #2320

Summary coverage rate:
  lines......: 86.9% (2515 of 2893 lines)
  functions..: 60.0% (375 of 625 functions)
  branches...: 66.0% (272 of 412 branches)

Files changed coverage rate: n/a

@JoshuaBatty JoshuaBatty marked this pull request as ready for review April 7, 2026 03:55
@JoshuaBatty JoshuaBatty requested a review from zees-dev April 7, 2026 03:55
@JoshuaBatty JoshuaBatty merged commit 8d05e80 into master Apr 7, 2026
24 checks passed
@JoshuaBatty JoshuaBatty deleted the josh/lock-build-channel-install branch April 7, 2026 04:04
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