Skip to content →
Sign upOpen app

Releases: Beta

Connect your CI/CD tool to Linear to know which issues ship in each release and to each environment. This feature is in beta for Business and Enterprise plans.

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. Once you’ve done so, your issues are automatically grouped into releases—whether your team deploys continuously, on a scheduled release cycle, or a mixture of both.

Release pipelines

Different teams in your workspace may use different build processes. An iOS team might 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.

When creating a new pipeline, choose between continuous or scheduled cadences. In continuously deployed environments, pipelines use a specialized interface to better show the constant flow of changes as changes land.

Releases in scheduled pipelines have properties like stage and release date, and also allow adding links and documents to support planning needs. You can elect to Freeze one or more stages in a scheduled release. When a release is in a frozen stage, syncs no longer auto-add issues to that release, and manually adding an issue to a release in a frozen stage shows a warning.

Path filters

When defining a release pipeline, you can add repository path filters like mobile-ios/** to only include commits affecting the provided folders. This is helpful to ensure unintended issues don’t make it into your pipeline if you use a monorepo.

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:

NameType
Android (production)Scheduled
Android InternalContinuous
iOS (production)Scheduled
iOS NightlyContinuous
iOS InternalContinuous
Linear AppContinuous

Releases

A release is a single unit within a pipeline. Each release is named, contains a reference to the commit SHA, and has a list of associated issues.

If we detect that semantic versioning is being used, we will automatically increment subsequent release names. We recommend explicitly providing both a release name and version from your CI when possible, since automatic naming is best-effort.

Viewing an issue’s releases

You can filter issues by their release, release stage type, or release pipeline. In display options in issue views, choose to display an issue’s release to see that information at the top level. Each issue in a release indicates the release’s name in its properties sidebar.

Configure

  1. This feature is currently in beta. If you do not have see releases in Settings, or require further support in setup, please contact your account manager.
  2. Open Settings > Releases and create the pipelines you need for each product/environment combination you support. Each pipeline has a unique access key — you’ll need to copy these values for each pipeline in order to authenticate in the next step.
  3. Configure the integration with your CI system. Reference the README for our open-source tool for a link to the pre-built binary for your platform. We also include a sample GitHub Action for ease, though you can integrate with any CI/CD system that can execute command line tools.