Skip to content

ci: formalize cloud release cycle for public SaaS - #1683

Merged
msukkari merged 3 commits into
mainfrom
cursor/formalize-release-update-cycle-b557
Sep 23, 2026
Merged

msukkari merged 3 commits into
mainfrom
cursor/formalize-release-update-cycle-b557

Conversation

@msukkari

@msukkari msukkari commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-2279

Summary

  • Restrict production cloud image publishing to v*.*.* release tags while retaining manual dispatch.
  • Add a staging cloud image workflow for main pushes using the staging GitHub Environment and staging ECR repository.
  • Update the shared cloud build comment to reflect release behavior.
  • Add the required Unreleased changelog entry.

Validation

  • Parsed all three workflow YAML files.
  • Verified production trigger/tag semantics and staging trigger/environment/tag semantics.
  • Ran git diff --check and confirmed no stale production-on-main comment remains.

Linear issue: SOU-2279

Open in Web Open in Cursor 

Summary by cubic

Formalizes the cloud release cycle so production images publish only on v*.*.* release tags, while main pushes now build the staging image instead of production.

  • Removes the main branch trigger and its image tags from the production cloud workflow; manual dispatch is unchanged.
  • Adds a staging cloud workflow that builds from main pushes into the staging GitHub Environment and staging ECR repository.
  • Updates the shared build comment to reflect that every cloud build, not just prod, gets a distinct Sentry release.

Written for commit 69ec473. Summary will update on new commits.

Review in cubic

Co-authored-by: Michael Sukkarieh <msukkari@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

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

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: e8fa168b-dbb2-4528-9675-39b8615c5472

📥 Commits

Reviewing files that changed from the base of the PR and between 1df8390 and 69ec473.

📒 Files selected for processing (3)
  • .github/workflows/_build-cloud.yml
  • .github/workflows/release-cloud-prod.yml
  • .github/workflows/release-cloud-staging.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

cursoragent and others added 2 commits September 23, 2026 06:11
Co-authored-by: Michael Sukkarieh <msukkari@users.noreply.github.com>
Co-authored-by: Michael Sukkarieh <msukkari@users.noreply.github.com>
@msukkari
msukkari marked this pull request as ready for review September 23, 2026 06:48
@github-actions

Copy link
Copy Markdown
Contributor

@msukkari your pull request is missing a changelog!

@msukkari
msukkari merged commit b493151 into main Sep 23, 2026
12 of 13 checks passed

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 69ec473. Configure here.


on:
push:
branches: ["main"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Release tags skip production publish

High Severity

Official releases commit with [skip ci] before pushing the v*.*.* tag, and GitHub suppresses push workflows for that commit—including tag pushes. After dropping the main trigger, production cloud images no longer publish on the release cycle. The same skip also drops the release commit from the staging main workflow.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 69ec473. Configure here.

environment: prod
git_ref: ${{ github.ref }}
docker_tags: |
type=raw,value=main,enable=${{ github.ref == 'refs/heads/main' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Manual dispatch publishes no image tags

Medium Severity

Both remaining docker_tags rules enable only when github.ref is a version tag. workflow_dispatch defaults to a branch ref, so metadata emits an empty tag list and the reusable build still pushes. docker/build-push-action then fails because a tag is required.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 69ec473. Configure here.

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