Skip to content

ci(connector-rollout): support cancel action in finalize_rollout#82247

Draft
Aaron ("AJ") Steers (aaronsteers) wants to merge 1 commit into
masterfrom
devin/1784240676-finalize-rollout-cancel
Draft

ci(connector-rollout): support cancel action in finalize_rollout#82247
Aaron ("AJ") Steers (aaronsteers) wants to merge 1 commit into
masterfrom
devin/1784240676-finalize-rollout-cancel

Conversation

@aaronsteers

@aaronsteers Aaron ("AJ") Steers (aaronsteers) commented Jul 16, 2026

Copy link
Copy Markdown
Member

What

Adds a cancel action to finalize_rollout.yml so a canceled connector rollout aborts its active progressive-rollout marker in the registry.

Today the workflow only handles promote / rollback. When a rollout is canceled, the platform never dispatches this workflow, so the connector's progressive-rollout.yml marker in GCS stays active and the RC keeps being served as release_candidate. The platform's definitions refresh then re-creates the rollout on every cycle (a CANCELED prior rollout does not block re-creation), producing a cancel → re-create loop.

Paired with airbytehq/airbyte-platform-internal#19189, which dispatches this workflow with action=cancel when a rollout is canceled. This workflow PR should land first so the cancel input is accepted before the worker starts sending it.

How

  • Add cancel to the action choice input and to the resolve-vars action validation.
  • Run the existing "Mark progressive rollout aborted" step (finalize-marker --outcome aborted) for cancel as well as rollback — same registry effect: the marker is retired and the registry recompiled so the RC stops being served.
  • cancel never sets needs_pr, so no version-bump/changelog PR is created (that path is promote-only).
  • Add a distinct Slack notification for a successful cancel (to #connector-publish-updates).
  action:
-   options: ["promote", "rollback"]
+   options: ["promote", "rollback", "cancel"]

- if: action == 'rollback'   # Mark progressive rollout aborted
+ if: action == 'rollback' || action == 'cancel'

Review guide

  1. .github/workflows/finalize_rollout.yml

User Impact

Canceling a connector rollout now cleanly retires the RC from the registry instead of leaving it active and triggering endless rollout re-creation. No impact on promote/rollback behavior.

Can this PR be safely reverted and rolled back?

  • YES 💚

Link to Devin session: https://app.devin.ai/sessions/2554c9bc3d90413293f779047a7d7696
Requested by: Aaron ("AJ") Steers (@aaronsteers)

…llout

Co-Authored-By: AJ Steers <aj@airbyte.io>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@github-actions

Copy link
Copy Markdown
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • 🛠️ Quick Fixes
    • /format-fix - Fixes most formatting issues.
    • /bump-version - Bumps connector versions, scraping changelog description from the PR title.
      • Bump types: patch (default), minor, major, major_rc, rc, promote.
      • The rc type is a smart default: applies minor_rc if stable, or bumps the RC number if already RC.
      • The promote type strips the RC suffix to finalize a release.
      • Example: /bump-version type=rc or /bump-version type=minor
    • /bump-progressive-rollout-version - Alias for /bump-version type=rc. Bumps with an RC suffix and enables progressive rollout.
  • ❇️ AI Testing and Review (internal link: AI-SDLC Docs):
    • /ai-prove-fix - Runs prerelease readiness checks, including testing against customer connections.
    • /ai-canary-prerelease - Rolls out prerelease to 5-10 connections for canary testing.
    • /ai-review - AI-powered PR review for connector safety and quality gates.
  • 📝 AI Documentation:
    • /ai-docs-review - AI-powered documentation review for PRs with connector changes.
    • /ai-create-docs-pr - Creates a documentation PR for connector changes, stacked on the current PR.
  • 🚀 Connector Releases:
    • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
    • /enable-autopilot-rollouts - Enables autopilot progressive rollouts for the modified connector(s) in the PR, remediating "autopilot rollouts not enabled for {connector-name}" auto-merge blockers. Sets defaultRolloutMode: autopilot and enableProgressiveRollout: true, preserving any existing autopilotConfig.
      • Optional args: connector=<CONNECTOR_NAME> (defaults to the modified connectors in the PR), strategy=fast|slow|default (defaults to fast).
      • Example: /enable-autopilot-rollouts or /enable-autopilot-rollouts connector=source-faker strategy=slow
  • ☕️ JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
  • 🐍 Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.
  • ⚙️ Admin commands:
    • /force-merge reason="<REASON>" - Force merges the PR using admin privileges, bypassing CI checks. Requires a reason.
      Example: /force-merge reason="CI is flaky, tests pass locally"
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

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