Skip to content

Conversation

@mtrezza
Copy link
Member

@mtrezza mtrezza commented Nov 29, 2025

Summary by CodeRabbit

  • Chores
    • Updated release workflow to use tag-based triggers for Dart and Flutter releases.
    • Improved automatic tag detection and resolution so publish and docs jobs run only for matching release tags.
    • Aligned checkout and publish steps to use the resolved release tag values for each platform, streamlining the release pipeline.

✏️ Tip: You can customize this high-level summary in your review settings.

@parse-github-assistant
Copy link

🚀 Thanks for opening this pull request!

@coderabbitai
Copy link

coderabbitai bot commented Nov 29, 2025

📝 Walkthrough

Walkthrough

Replaces manual dispatch trigger with push-on-tag triggers and adds logic to derive package and tag values from github.ref_name while retaining workflow_call inputs. Updates publish/docs job conditionals and checkout refs to use resolved tag values derived from inputs or the pushed tag.

Changes

Cohort / File(s) Change Summary
Release workflow configuration
\.github/workflows/release-publish.yml
Replaces workflow_dispatch trigger with push on tag refs matching dart- and flutter- patterns; adds extraction of ref_name into tag variables and package detection (dart vs flutter); preserves workflow_call inputs (dart_tag, flutter_tag) but resolves dart_tag_resolved / flutter_tag_resolved from inputs or github.ref_name; updates pub-publish-* and docs-publish-* job conditionals to use startsWith(github.ref_name, ...) and uses resolved tag values for checkout refs and publish steps.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Focus review on tag-extraction and resolution logic and the updated job conditionals.
  • Verify checkout refs and that workflow_call inputs remain functional for invoked workflows.
  • Confirm tag pattern matching and package detection cover intended tag formats.

Possibly related PRs

  • ci: Fix auto-release #1069 — Modifies GitHub release workflows to switch publish jobs to tag-based triggers and updates tag-gating logic; closely related to the release-publish workflow changes here.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is missing entirely. The template requires sections for Issue, Approach, and Tasks, none of which are present. Add a description following the repository template: include the issue link under 'Closes:', explain the changes in 'Approach:', and check relevant tasks.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'ci: Fix auto-release' is concise and directly relates to the main change—updating CI/CD workflow logic for automated releases.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

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

@codecov
Copy link

codecov bot commented Nov 29, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.46%. Comparing base (5c26e5b) to head (771a57e).
⚠️ Report is 40 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1071   +/-   ##
=======================================
  Coverage   43.46%   43.46%           
=======================================
  Files          61       61           
  Lines        3587     3587           
=======================================
  Hits         1559     1559           
  Misses       2028     2028           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mtrezza mtrezza merged commit 4139f9e into parse-community:master Nov 29, 2025
12 of 13 checks passed
@mtrezza mtrezza deleted the ci/fix-ar branch November 29, 2025 06:40
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 671d4f5 and 771a57e.

📒 Files selected for processing (1)
  • .github/workflows/release-publish.yml (5 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test Flutter 3.38, macOS
  • GitHub Check: Test Flutter 3.38, Windows
🔇 Additional comments (3)
.github/workflows/release-publish.yml (3)

18-22: Environment variable derivation logic is sound.

The tag extraction and package detection correctly handle both push-triggered and workflow_call-triggered scenarios. The || operator properly prioritizes inputs for manual triggers while falling back to github.ref_name for push events. Since job conditionals guard when jobs run, the resolved tags are guaranteed to be non-empty when jobs execute.


25-25: Job conditionals correctly implement dual-trigger support.

Each conditional (inputs.X != '' || startsWith(github.ref_name, 'X-')) properly allows jobs to run for either manual workflow_call invocations or pushed tags. This maintains backward compatibility while enabling the new push-on-tag automation.

Also applies to: 53-53, 89-89, 112-112


34-34: Checkout refs properly use resolved tag values.

All checkout steps now reference the environment variables dart_tag_resolved and flutter_tag_resolved, ensuring the correct commit/tag is checked out for both trigger paths. Combined with the conditional guards, these refs will never be empty when jobs execute.

Also applies to: 62-62, 97-97, 120-120

Comment on lines +5 to +6
- "dart-[0-9]+.[0-9]+.[0-9]+*"
- "flutter-[0-9]+.[0-9]+.[0-9]+*"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix glob patterns in push trigger—they don't match semantic version tags.

The patterns dart-[0-9]+.[0-9]+.[0-9]+* and flutter-[0-9]+.[0-9]+.[0-9]+* use glob syntax where + and . are literal characters, not quantifiers. These patterns will only match tags like dart-0+.0+.0abc, not semantic versions like dart-1.2.3. This prevents the trigger from firing and breaks auto-release.

In glob patterns, [0-9] matches a single digit, and * matches zero or more of any character. To match semantic versions, use:

  • dart-[0-9].[0-9].[0-9]* (matches one digit per part; loose)
  • Or simply dart-* (permissive, relies on conditional checks elsewhere)

Apply this diff to fix the glob patterns:

  push:
    tags:
-     - "dart-[0-9]+.[0-9]+.[0-9]+*"
-     - "flutter-[0-9]+.[0-9]+.[0-9]+*"
+     - "dart-[0-9]*.[0-9]*.[0-9]*"
+     - "flutter-[0-9]*.[0-9]*.[0-9]*"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- "dart-[0-9]+.[0-9]+.[0-9]+*"
- "flutter-[0-9]+.[0-9]+.[0-9]+*"
- "dart-[0-9]*.[0-9]*.[0-9]*"
- "flutter-[0-9]*.[0-9]*.[0-9]*"
🤖 Prompt for AI Agents
.github/workflows/release-publish.yml lines 5-6: the push trigger glob patterns
use regex-like `+` and literal `.` which don't match semantic version tags;
replace the two entries so they match typical tag names (for example use either
`dart-[0-9].[0-9].[0-9]*` and `flutter-[0-9].[0-9].[0-9]*` to loosely match
semver or simply `dart-*` and `flutter-*` for a permissive match), updating both
lines accordingly.

@coderabbitai coderabbitai bot mentioned this pull request Nov 29, 2025
@parseplatformorg
Copy link

🎉 This change has been released in version 9.3.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants