Skip to content

[CNSL-2134] Add post-release pending deploy branch management #104

Open
linhcrl wants to merge 1 commit intocockroachdb:mainfrom
linhcrl:post-release-branch-management
Open

[CNSL-2134] Add post-release pending deploy branch management #104
linhcrl wants to merge 1 commit intocockroachdb:mainfrom
linhcrl:post-release-branch-management

Conversation

@linhcrl
Copy link
Copy Markdown
Contributor

@linhcrl linhcrl commented Apr 10, 2026

After a successful release (tag creation), the workflow now automatically manages pending deploy branches:

  • Determines the appropriate new pending deploy branch by comparing timestamps from commit trailers and live remote branches
  • Creates a new pending deploy branch if the previous one is outdated or if none existss
  • Retargets all open PRs from old pending deploy branches to the current one. (As of now, workflow does not resolve conflicts caused by this.)

This ensures that after each release, there's always a fresh pending deploy branch ready, and PRs are automatically pointed to the right target.

@linhcrl linhcrl force-pushed the post-release-branch-management branch from 8bbde80 to eefdec9 Compare April 10, 2026 13:47
@linhcrl linhcrl changed the title [CNSL-2134] Add pending deploy branch management to release workflow [CNSL-2134] Add post-release pending deploy branch management Apr 13, 2026
@linhcrl linhcrl force-pushed the post-release-branch-management branch from eefdec9 to aabd8e8 Compare April 13, 2026 15:20
@linhcrl linhcrl force-pushed the post-release-branch-management branch 3 times, most recently from 6a039e6 to f674bab Compare April 27, 2026 16:32
@linhcrl linhcrl requested a review from fantapop April 27, 2026 16:34
Copy link
Copy Markdown
Contributor

@fantapop fantapop left a comment

Choose a reason for hiding this comment

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

This all seems pretty reasonable to me. I don't have a good feeling on whether it will work. It's a lot of bash inlined in strings to be looking at. I think it would benefit from pulling out into functions and having tests for it but given that our timeline is pretty short, I'm okay pushing that off for later in case we have trouble maintaining it.

I did add one comment about documenting better overall what the workflow does at the top level.

-f event_type=sdk-release \
-f "client_payload[version]=${{ steps.autotag.outputs.tag }}"

manage-pending-deploy:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can you comment a high level overview of how this works here? The Step comments are helpful but they feel piecemeal and it's hard to get an overall understanding of what we're doing here by following them.

@linhcrl linhcrl force-pushed the post-release-branch-management branch 2 times, most recently from b3a53cb to 7d67747 Compare May 1, 2026 23:59
@linhcrl linhcrl force-pushed the post-release-branch-management branch from 7d67747 to f0f96a2 Compare May 7, 2026 01:48
After a successful release (tag creation), the workflow now
automatically manages pending deploy branches:

- Finds the most recent merged PR with a pending-deploy-YYYYMMDD-hhmmss
  head branch to identify what the last pending deploy branch was
- Compares its timestamp with any current live pending deploy branch
- Creates a new pending deploy branch if a newer one was already merged
  to main (indicating the current live branch is stale), or if none
  exists
- Retargets all open PRs from old pending deploy branches to the current
  one. (As of now, workflow does not resolve conflicts caused by this.)

This ensures that after each release, there's always a fresh pending
deploy branch based on the latest main, and PRs are automatically
pointed to the right target.

Co-Authored-By: roachdev-claude <roachdev-claude-bot@cockroachlabs.com>
@linhcrl linhcrl force-pushed the post-release-branch-management branch from f0f96a2 to 8822a06 Compare May 7, 2026 01:55
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