Adding Knock to your CI/CD pipeline
With the Knock CLI, you can add Knock directly into your existing CI/CD pipeline in order to automate the promotion of changes to Workflows, Layouts, and Translations between environments during testing and deployment.
This guide assumes that you have created a “Staging” environment in Knock in addition to the Development and Production environments that are provided by default. It also assumes that you have installed the Knock CLI on your local machine.
Local development
With the Knock CLI, you can pull resources from the Knock dashboard and develop them locally using the knock workflow pull --all
, knock layout pull --all
, and knock translation pull --all
commands. You can also work with specific resources by providing a key
rather than using the --all
flag.
Once you’re ready to send your updates back to Knock’s Development environment, you can push (knock workflow push --all
) and commit (knock commit
) changes directly from the command line in the same way that you would save and commit them in your dashboard. You can also perform both of these actions at once by using the --commit
flag on any push
command.
commit
any changes that you want to persist while working in the Development environment.Pushing to your remote repository and deploying to staging
When you’re ready to commit your locally-developed feature (including any updates to your Knock resources) to a remote git repository and kick off a test build in your staging environment, you can use the Knock CLI to automate the promotion of changes to your Knock resources across Knock environments. An example implementation might be done with a GitHub Action that promotes all of your committed updates from the Knock Development environment to your Staging environment, so that your application’s staging deployment will have access to all of your notifications changes.
knock commit promote
command with the --to
flag, the CLI will automatically locate any promotion-eligible changes that exist in the environment one "level" lower in your list of Knock environments in order to promote them to the designated environment. To view the current order of all your configured environments, navigate to Settings > Environments in your Knock dashboard.This sample GitHub Action .yaml
file shows how you might promote all committed changes from your Development environment to your Staging environment:
Deploying to production
Once a pull request has been approved and is ready to be merged into your main
branch, you can once again include the Knock CLI in your CI/CD pipeline to promote your relevant Knock resources to your Production environment.
This sample GitHub Action .yaml
file shows how you might promote all changes from your Staging environment to your Production environment: