Add CI draft release job for version tags - #304
Conversation
Automate draft GitHub releases on v* tag pushes by staging CI artifacts, running extract.exs, and attaching commit-log release notes. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Code Review
This pull request introduces two new deployment scripts: release_notes.sh for generating release logs and stage_release_artifacts.sh for packaging and staging release artifacts. The review feedback highlights critical improvements for portability and robustness, including handling potential undefined behavior in awk when getline reaches EOF, resolving relative staging paths to absolute paths to prevent subshell failures, and replacing the GNU-specific find -quit flag with a portable alternative to ensure compatibility with macOS.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Guard awk getline at EOF, resolve staging dir to an absolute path before subshell zips, and replace GNU find -quit with head for macOS compatibility. Co-authored-by: Cursor <cursoragent@cursor.com>
Write final release assets directly from CI downloads, drop Elixir setup from the workflow, and use git describe for previous-tag lookup. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
create_draft_releaseCI job that runs after build and smoke tests pass onv*tag pushes.deployment/stage_release_artifacts.shto map CI artifact downloads into the inputs expected bydeployment/extract.exs, producing the same 8 release assets as existing releases.deployment/release_notes.shto generate draft release notes from git commits since the previousv*tag (one line per commit).Test plan
extract.exsproduces all 8 expectedout/assetsrelease_notes.sh v1.18.7prints expected commit logv*tag after merge and confirm a draft release is created with 8 assets and commit-log bodyMade with Cursor