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.
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
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.
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
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.
Next steps
Configure a release flow
Learn how to use the visual editor or code to configure a release flow.
Run a release flow
Run a release flow and manage releases for your different environments.
Roll back a release
Roll back a release to a previous version.
Run migrations
Run database migrations and update your deployments simultaneously when you update your schema.
GitOps on Northflank
Use templates and release flows in a Git repository to trigger changes to your config and resources.