Skip to content

ci(rust): seed debug caches from dev and stop PR runs saving them - #759

Merged
devin-ai-integration[bot] merged 3 commits into
devfrom
devin/1791460883-rust-ci-cache
Oct 8, 2026
Merged

devin-ai-integration[bot] merged 3 commits into
devfrom
devin/1791460883-rust-ci-cache

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

rust.yml was the only workflow that writes the Swatinem debug-<OS> cache, but it never ran on dev. A PR can only restore caches from its own ref, its base branch, or the default branch, so every new PR built wxWidgets and the whole workspace from scratch on Linux, Windows and macOS. Every PR run also saved its own multi-GB cache that no other PR could use. Those caches count against the repo's 10 GB limit and can push out the release-*/xtask-* caches from rust-build.yml.

push:
  branches: [dev]                                    # new
  paths: ["rust/**", ".github/workflows/rust.yml"]   # new, same filter as pull_request
  tags: ["v*"]
...
- uses: Swatinem/rust-cache@v2
  with:
    save-if: ${{ github.ref == 'refs/heads/dev' }}   # new
  • Pushes to dev that touch rust/** now run the same checks and save the debug-<OS> caches. PRs into dev restore those caches and no longer upload their own. Tag and workflow_dispatch runs on other refs now only restore too.
  • GitHub doesn't apply path filters to tag pushes, so v* tag runs still happen as before. The CHANGELOG step still runs only on pull_request.
  • Checks are unchanged. Validated with actionlint.

Two fixes needed to get this PR green

  • Flaky test. aw-ai transport::tests::keeps_a_model_that_writes_longer_than_the_stall_limit failed on macOS with Deadline("The AI model stopped answering for 0 seconds."). It sleeps 400 ms between chunks against a 0.5 s stall limit, which leaves only 100 ms of slack. The stall limit is now 1.0 s. Each gap is still under the limit, and the full write (about 1.2 s) still runs longer than it, so the test checks the same thing.
  • CHANGELOG gate ignored [skip changelog] in CI. fetch-depth: ${{ matrix.os == 'ubuntu-latest' && 0 || 1 }} always evaluated to 1: the bare 0 is falsy, so the expression falls through to || 1 (the log shows fetch-depth: 1 on Linux). With a depth-1 checkout, the PR merge commit has no parents in the clone. git log --no-merges therefore counts it as a normal commit, and because it has no skip marker the gate fails. Quoting the values as '0' || '1' gives Linux full history, so the marker on each commit is honored. Running cargo xtask changelog check against a fully cloned merge commit passes locally.

Link to Devin session: https://app.devin.ai/sessions/5ecf0b837a944cb8b2db4b96a02cdee3
Open in Devin Desktop: https://app.devin.ai/desktop/session/5ecf0b837a944cb8b2db4b96a02cdee3?variant=devin
Requested by: @Orinks

…ip changelog]

Co-Authored-By: Joshua Tubbs <orin8722@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

devin-ai-integration Bot and others added 2 commits October 8, 2026 12:11
…w runners don't trip it [skip changelog]

Co-Authored-By: Joshua Tubbs <orin8722@gmail.com>
…commit skip markers [skip changelog]

Co-Authored-By: Joshua Tubbs <orin8722@gmail.com>
@devin-ai-integration
devin-ai-integration Bot merged commit e97ad85 into dev Oct 8, 2026
4 checks passed
@devin-ai-integration
devin-ai-integration Bot deleted the devin/1791460883-rust-ci-cache branch October 8, 2026 12:38
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.

1 participant