Create a pipeline and release flow | Release | Northflank Application docs
v1

Release /

Create a pipeline and release flow

Pipelines on Northflank allow you to create and manage complex workflows, deploying your code in different stages for development, staging, and production.

Combined with release flows, pipelines offer an incredible amount of flexibility to support your development process and manage releases.

Pipelines are specific to projects, and you can only include resources such as deployment services, jobs, and addons from the project that contains your pipeline. Likewise, you will only be able to deploy builds created in the same project as your pipeline.

Each pipeline consists of three stages, development, staging, and production, and you can use these in any way you require to suit your workflow. You can create a release flow for each pipeline stage to manage your release, including promoting builds, backing up databases, and running migrations.

Click here to create a pipeline.
A pipeline overview in the Northflank application

Create a pipeline

To create a new pipeline either select create new from the pipelines page, or pipeline from the create new menu.

Enter a name to identify the pipeline and click create.

Use a pipeline

You can add services, jobs, and addons to each stage of your pipeline in whatever configuration best represents your workflow. These resources can then be used in the release flows for each stage of your pipeline to automate your release management.

note

You can only add services and jobs that use a Northflank build services or an external image as the deployment source. This means combined services and jobs that build directly from a Git repository cannot be used in pipelines.

Add resources

Click the button at the bottom of a stage to view the resources available to add to your pipeline.

Resources that belong to another pipeline cannot be added, and you can filter resources by name using the search function.

Select all the resources you want to add to the stage of the pipeline, and click add.

To move a resource to another stage, remove it from its current stage and add it to the stage you want it to be in.

Remove resources

You can remove a resource from a pipeline by clicking the remove button on the service, addon, or job you want to remove.

This will also remove any nodes related to this resource in your release flows, please make sure you carefully review the effect this will have on your release flows, if any.

Manage pipelines

You can view and delete pipelines from the pipelines page. If you delete a pipeline, it will remove your configured pipeline overview and any release flows it contains. Deleting a pipeline will not affect any of your services, all the deployments, job, and addons added to the pipeline will continue to run as individually configured.

Create a release flow

You can create a release flow for a stage of your pipeline by clicking add release flow in the release header for the specific stage.

You can create a release flow by using the visual editor to drag and drop nodes, clicking into a node to edit its configuration. You can also create a release flow as code, if you are familiar with templates and the Northflank API.

See configure a release flow to learn more about configuring release flows and release flow nodes.

Release flow settings

You can configure settings for a release flow by opening the settings view in the editor.

Settings for a release flow in the Northflank application

GitOps

You can enable GitOps to sync the release flow with a Git repository. You can make changes to your release flow by committing changes to it in the repository or by editing it in Northflank, and it will be updated on the other platform.

This allows you to maintain your release flows alongside your codebase, or in a separate infrastructure repository. Combined with Git triggers you can push changes to your code or release flow and automatically run a release.

Concurrency

You can select a concurrency setting to manage how your release flow handles more than one request to run a release.

  • Queue (default): each time a release flow run is triggered it will be added to a queue, and runs will be executed sequentially in order of creation
  • Allow: multiple release flow runs can be executed in parallel, with no restrictions
  • Forbid: if a run is currently pending or running any run requests will be ignored

Webhook trigger

You can enable webhook trigger to generate a URL that will run your release flow when it receives a GET or POST request. This can be used to quickly integrate with third-party services such as GitHub Actions.

Arguments can be provided to the release flow run by adding URL query parameters. name and description modify the run's name or description, and all other query parameters are passed on to the release flow as arguments.

Git triggers

You can add Git triggers to run a release flow whenever a change to the specified repository is committed.

You can include:

  • branch and pull request rules to only trigger on commits to specific branches or pull requests
  • path rules to only trigger on changes to specific directories or files in a repository, or to ignore changes to specific directories or files
  • commit message ignore flags to skip runs for commits with messages that contain certain strings
For more information on accessing and using triggers in your release flow see configure a release flow.

Manage release flows

You can manage a release flow by clicking the options button for the relevant release flow.

From here you can view release flow runs to see when the release flow was last run, any rollbacks, and the status of the release. You can click into individual releases or rollbacks to view the result of each node, and to roll back to the selected release.

You can edit release flow to add, remove, or reconfigure existing nodes using either the visual or code editor.

You can pause triggers for a release flow in the header of the release flow settings. While paused, Git triggers will be inactive and requests to the webhook will return the HTTP status 202, with a message explaining the trigger is paused. Release flows can still be run manually using the UI or the Northflank API while triggers are paused.

© 2024 Northflank Ltd. All rights reserved.