Skip to content

👷 Add workflow to sync Dart SDK pin on PRs - #491

Merged
Friedinger merged 2 commits into
mainfrom
chore/sync-dart-sdk
Sep 27, 2026
Merged

Friedinger merged 2 commits into
mainfrom
chore/sync-dart-sdk

Conversation

@Friedinger

@Friedinger Friedinger commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

Summary

Wires up flutter-workflow's new reusable "Sync Dart SDK" workflow (RubberDuckCrew/flutter-workflow#105, shipped in v1.3.0) for GitDone, mirroring how flutter-workflow's own test_app uses it.

  • New .github/workflows/sync-dart-sdk.yml, triggered on PRs that touch mise.toml, pubspec.yaml or pubspec.lock.
  • Calls RubberDuckCrew/flutter-workflow/.github/workflows/workflow-sync-dart-sdk.yml@e94cc10 (v1.3.0) with working-directory: '.' since GitDone's pubspec.yaml lives at the repo root (unlike test_app's subdirectory).
  • Resolves the Dart SDK version bundled with the Flutter version from pubspec.yaml, and pushes a sync commit updating the sdk: pin (+ pubspec.lock) when it drifts — same GitHub App token pattern (RUBBERDUCKCREW_BOT_APP_ID / RUBBERDUCKCREW_BOT_APP_PRIVATE_KEY) already used in test-build-release.yml, so the push re-triggers CI.
  • Restricted to same-repo PRs (head.repo.full_name == github.repository), since the job needs push access.
  • Bootstrapped the exact-pin convention itself: sdk: ">=3.13.0 <3.14.0" → sdk: 3.13.4 (the Dart SDK bundled with Flutter 3.47.5) in pubspec.yaml/pubspec.lock. The workflow only rewrites this line on a PR that touches those files, so without this the existing range would have stayed untouched until the next such PR (e.g. the next Renovate Flutter bump).

Test plan

  • Open a PR that bumps mise.toml's Flutter version (or touches pubspec.yaml/pubspec.lock) and confirm the "Sync Dart SDK" check runs and pushes a sync commit when the pin drifts

🤖 Generated with Claude Code

https://claude.ai/code/session_01MK7vVSoDu3mGJ9jUokXT58

Wires up flutter-workflow's new reusable workflow
(RubberDuckCrew/flutter-workflow#105, released in v1.3.0) so GitDone's
pubspec.yaml/pubspec.lock Dart SDK pin stays in sync with the Flutter
version whenever mise.toml, pubspec.yaml or pubspec.lock change in a PR.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MK7vVSoDu3mGJ9jUokXT58
@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 8cd89b05-43a1-4ce1-9874-0911c799edb9

📥 Commits

Reviewing files that changed from the base of the PR and between e28f60a and 0c4e7a7.

📒 Files selected for processing (1)
  • .github/workflows/sync-dart-sdk.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

A new GitHub Actions workflow monitors pull requests that change Dart SDK configuration files. For pull requests from the same repository, it invokes a pinned reusable workflow with the PR head SHA, repository root, and bot credentials.

Changes

Dart SDK sync

Layer / File(s) Summary
Workflow trigger and invocation
.github/workflows/sync-dart-sdk.yml
The workflow runs when a pull request is opened, synchronized, or reopened and changes mise.toml, pubspec.yaml, or pubspec.lock. It grants contents write permission, cancels earlier runs on the same PR branch, and conditionally invokes the pinned reusable workflow for same-repository pull requests.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 0c4e7

The SDK sync workflow is ready to merge after normal checks.

Architecture Summary

Architecture risk: 🔵 Low · up to 0c4e7

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/workflows/sync-dart-sdk.yml: Added the Dart SDK sync workflow, including its pull request triggers and path filters, write permission, per-branch concurrency cancellation, and conditional reusable-workflow invocation for same-repository pull requests with bot credentials.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a workflow that syncs the Dart SDK pin on pull requests.
Description check ✅ Passed The description directly explains the new workflow, its triggers, reusable workflow integration, SDK pin updates, permissions, and same-repository restriction.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks the pull request,
Dart files changed? The workflow wakes.
It calls the pinned sync routine,
With SHA and keys tucked safely in.
Then hops away through fields of green.

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the 🛠️ Maintenance General maintenance and updates label Sep 26, 2026
@Friedinger
Friedinger marked this pull request as ready for review September 26, 2026 14:38
Bootstraps the exact-pin convention the new sync-dart-sdk workflow
maintains going forward (it only rewrites this line on PRs that touch
mise.toml/pubspec.yaml/pubspec.lock, so the existing range wouldn't
have been converted automatically until the next such PR). 3.13.4 is
the Dart SDK bundled with Flutter 3.47.5, matching flutter-workflow's
test_app.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MK7vVSoDu3mGJ9jUokXT58
@Friedinger
Friedinger merged commit 450b94a into main Sep 27, 2026
11 checks passed
@Friedinger
Friedinger deleted the chore/sync-dart-sdk branch September 27, 2026 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🛠️ Maintenance General maintenance and updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants