Skip to content

ci(release): record stable releases in Linear - #49

Open
gorandodig wants to merge 6 commits into
devfrom
ci/record-releases-in-linear
Open

gorandodig wants to merge 6 commits into
devfrom
ci/record-releases-in-linear

Conversation

@gorandodig

Copy link
Copy Markdown
Member

Each stable release is recorded in the team's Linear release pipeline, and the Slack "published" notice links it. Pre-releases are skipped.

  • PRs: GitHub's commit-to-PR lookup for the commits since the previous release, counting PRs merged into dev, so rebase merges count. Linear attaches the issues linked to those PRs.
  • Notes: the GitHub release text. Every #N is written out as a full link to this repo, because Linear matches a bare #N against every repo it knows.
  • Non-fatal: a failure doesn't touch the release, and the Slack notice says recording failed.

The script, .github/scripts/record-linear-release.cjs, is checked with unit tests and with dry runs against this repo's releases.

To switch it on:

  1. Add the LINEAR_ACCESS_KEY secret with the access key of the Linear pipeline.
  2. Set the LINEAR_RELEASE_MODE variable to live. Until then the job only logs what it would send.

Each stable release syncs to Linear with the PRs merged since the previous
one, found through GitHub so rebase merges count, and the GitHub release
text as notes, its #N references linked to this repo. Log-only until
LINEAR_RELEASE_MODE is live.
@coderabbitai

coderabbitai Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b033f897-699c-4daa-a2f4-6d54fe2dbee9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

A hung Linear or GitHub call would otherwise hold the job, and the Slack
notice that waits for it, until the 6-hour job limit. Linear calls also
give up after 30 seconds.
- Leave #N inside fenced code alone.
- A new tag on an already released commit gets no PRs.
- Fail in live mode without an access key, and when Linear reports a
  failed sync.
- Warn in Slack when the job fails before the step runs.
- A code fence closes only on a line of its own, with the same character
  and at least as many; one that never closes runs to the end.
- A re-run of an older version only looks at releases before it.
- JSDoc on the script's functions.
- Fences inside block quotes count, and end with their quote.
- Inline code with longer backtick runs (``like this``) is left alone.
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