Skip to main content

External CI pipelines

This feature allows you to incorporate Continuous Integration (CI) pipelines from other platforms directly into CodeNOW. This enables you to inspect the status and results of an external CI pipeline directly from CodeNOW.

Prerequisites

  • existing Application Component
  • pipeline in an external CI platform (e.g. Jenkins, GitLab CI, GitHub Actions, etc.)

Steps

Switch to External CI

To be able to use External CI pipelines, you first need to change the configuration of your component:

  1. Navigate to the detail of your component, click on Switch to External CI
  2. Click Confirm in the pop-up window

Now, CodeNOW expects that the component uses external CI pipelines. Release and Preview build options are disabled as well as all CodeNOW CI pipelines.

Generate CI Key

The next step is to generate a CI Key. The CI Key will be used to authenticate events sent to CodeNOW:

  1. Under Continuous Integration, click on Generate CI Key
  2. Choose a name and, optionally, an expiration date for the key, click Confirm
  3. Make sure to save the generated key, as it will not be displayed again, click Close

Now, you are ready to configure your external CI pipeline to send events to CodeNOW.

Events

For CodeNOW to understand, what is going on in the external CI pipeline, you need to send events to CodeNOW's Webhook Receiver for External CI Events. In this section, we will describe the purpose of each event and the expected order of the events. For a specific example of how to send events, see External CI Example. The supported format of the events can be found in the API Documentation.

info

To authenticate events, use the generated CI Key in the X-Codenow-Api-Key header parameter. Note that the key cannot be used for multiple components.

Event flow

The events need to be sent in the following order:

  1. Start event - the start of the pipeline - informs CodeNOW which pipeline was executed on which application component
  2. Result event - results of the steps in the pipeline
  3. End event - end of the pipeline - informs CodeNOW about the result of the whole pipeline

Start event

The start event indicates the execution of the pipeline, it informs CodeNOW which pipeline was executed on which application component.

Result event

The result events are used to inform CodeNOW about the results of the steps in the external pipeline. You can send multiple result events in a single pipeline run.

There are several subtypes of the result event, each with a different payload format:

SubtypeDescription
git-revisioninformation about branch and commit which are being built
code-qualityresults of the static code analysis
containerlink to the container registry where the image of the container is stored
helmlink to helm registry where helm chart used for deployment is stored
git-taggit tag of the released version of the application component (CodeNOW uses it for loading the default configuration for the component)
maven / npm / nugetlink to the Artifact registry where the package of the corresponding tool is stored.
linklink to custom result not covered by the other result event subtypes
warning

Result event subtypes necessary for deployment within CodeNOW are container, helm, and (git-revision or git-tag).

End event

The end event is used to inform CodeNOW about the end of the pipeline and its result. There are three possible results of the pipeline: successful, failed, or canceled. Based on the end event, CodeNOW will set a status in the build history.

info

In case you forgot one of the events necessary for deployment, your build will be marked as Incomplete.

What's next?