CI/CD Pipeline

Most FIs have the option to use a CI/CD Pipeline for automatically deploying their extensions to their permanent test/staging environment. Your gitlab repository contains a gitlab-ci.yaml file which manages your CI/CD configurations. You can see the results of current and previous deployments when you navigate to CI/CD on the left-hand nav menu and select Pipelines.

The auto-deployment pipeline starts automatically as soon as a commit is pushed to your master branch.

Note

Pushing a change to branch other than master runs through the first two steps of the pipeline, check and test. It is recommended to develop on other branches to ensure they pass these initial checks, and merge them to master only when you are ready to to deploy.

There are four stages to the pipeline:
  1. q2 check - Runs the q2 check command as a preliminary check. Check Review and Deployment for more information.

  2. q2 test - Runs both q2 test and q2 lint. This ensures that your own tests succeed before we continue. q2 lint is allowed to fail, see Linting

  3. dockerize - Attempts to create a docker container to serve your extensions, readying them for deployment into our datacenter.

  4. deploy - Attempts to deploy the dockerized extension into our datacenter and run them as a service.

Assuming that all stages succeed, you will be able to see your changes in your permanent test environment after a few minutes.

One way to confirm that the deployment has completed in the Q2 datacenter is to view the page source of any custom extension. At the beginning of the form, there will be an HTML comment with the currently deployed container image tag (this will most likely be a date stamp of when the image was built):

<form class="sdk-form form-container pad(3)" role="form" method="post" enctype="multipart/form-data" id="1">
    <input type="hidden" name="q2token" value="Q2_TOKEN_HERE"/>
    <!-- Q2 Image Information: CONTAINER_TAG_HERE -->
There are certain cases that still require a deployment request and the Caliper SDK Team approval:
  1. You will still need to request deployment by us if you are installing a new form, or if you have never installed any form before.

  2. Any deployment to a production environment still requires a manual review and deployment.

  3. Any changes to navigation nodes will still require a request or Q2 Support ticket.

Note

If you are modifying an existing form and want a nav node change, you will still need to create a deployment request. The form will be updated once it passes the CI/CD pipeline, but will still exist under the old nav node. You should see navigation node changes in staging after both a manual change by us and an overnight bounce of the permanent test environment.