Releases: Beta
Connect your CI/CD tool to Linear to know which issues ship in each release and to each environment.

Overview
An issue’s Done status does not always mean delivered. Was the PR on that issue merged to staging or production? Is a Done issue on an Android team available to customers now, or in two weeks? What other issues are included in that release?
Linear can now answer these questions by integrating directly with your CI/CD system. After integrating, your issues are automatically grouped into releases—whether your team deploys continuously or on a scheduled release cycle.
Releases are available on Business and Enterprise plans. Business plans support releases in up to 5 pipelines, and Enterprise plans have no pipeline limit.
Release pipelines
Different teams in your workspace likely use different build processes. An iOS team may have internal, nightly, and bi-weekly scheduled releases, while your webapp may be continuously deployed as changes land. Model these different processes in Linear by creating a release pipeline for each product/environment combination you support.
We support iOS and Android apps with scheduled production releases as well as more frequent internal builds, as well as our main app which is continuously deployed.
We use a monorepo, and make use of path filters in the pipeline settings to define which commits should be included in each pipeline.
Here are the pipelines we’re using today:
| Name | Type |
|---|---|
| Android (production) | Scheduled |
| Android Internal | Continuous |
| iOS (production) | Scheduled |
| iOS Nightly | Continuous |
| iOS Internal | Continuous |
| Linear App | Continuous |
Each pipeline takes basic properties to help organize its releases, and attribute ownership.
Type
Every pipeline has either a continuous or scheduled cadence type. When you choose continuous, the pipeline uses a specialized interface designed for the constant flow of changes in continuously deployed environments.
Scheduled pipelines include additional structure like stages and release dates, and support planning details such as links and documents for release notes. You can also freeze stages to stop new issues from being added automatically.
Teams
Choose the team or teams most closely aligned with the pipeline. This does not prevent adding other issues to releases in the pipeline, but it sets clear ownership and improves default behaviors like suggested releases.
Releases
A release is a single unit within a pipeline. It has a name, a commit SHA, and a set of associated issues.
If Linear detects semantic versioning, it will try to increment release names automatically. This is best-effort, so it’s better to provide the release name and version from your CI when possible.
Viewing an issue’s releases
You can filter issues by release, stage, or pipeline. To see release information in your issue views, enable it in display options. Each issue also shows its release in the properties sidebar.

CI setup
In order to integrate with your CI/CD tool, you’ll first need to create a release pipeline in Settings → Releases. Then, follow the steps below:
Copy your pipeline’s access key
Each pipeline supports an access key. You’ll need this value to integrate with your CI. You cannot use a personal API key in place of a pipeline access key. Generate one from the pipeline in settings.
Set path filters
Path filters use glob patterns (like mobile-ios/** or backend/api/**) to specify which parts of your codebase should be included in a particular release pipeline. When you configure a pipeline with path filters, Linear will only consider commits that modify files matching those patterns.
This is useful in monorepos to make sure only relevant changes are included in the pipeline.
Integrate with your CI/CD tool
Once you have an access key and have set path filters as needed, reference the README for our open-source tool. Links to the pre-built binary for your platform can be found here.
The quickest way to get started is to use our sample GitHub action, though you can integrate with any CI/CD system that can execute command line tools.
Example for continuous deployments
Continuous releases automatically create a completed release in Linear every time code is pushed to your main branch. Each deploy maps to a single release, giving your team a clear record of what shipped and when. When a push lands on your main branch, the release action scans the new commits for Linear issue references (e.g. ENG-123), creates a release in your pipeline, attaches the referenced issues, and marks it as complete — all in one step.
To get started, you’ll need:
- A release pipeline configured in Linear (Settings → Releases) with the pipeline type set to continuous.
- A pipeline access key, generated from the pipeline's settings page in Linear.
Setup with GitHub Actions
Refer to the linear-release-action for detailed documentation.
- Add your pipeline access key as a repository secret named LINEAR_ACCESS_KEY (Repository Settings → Secrets and variables → Actions).
- Create a workflow file (e.g. .github/workflows/linear-release.yml):
name: Linear Release
on:
push:
branches: [main]
jobs:
linear-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # required for commit history
- uses: linear/linear-release-action@v0
with:
access_key: ${{ secrets.LINEAR_ACCESS_KEY }}This setup will create a new release in the continuous pipeline and associate all issues found when scanning commits between now and the latest release. The name and version of the new release will be set to the current commit SHA, but can be specified if wanted.
For more advanced examples, please see the linear-release repo.