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:
- Navigate to the detail of your component, click on Switch to External CI
- 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:
- Under Continuous Integration, click on Generate CI Key
- Choose a name and, optionally, an expiration date for the key, click Confirm
- 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.
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:
- Start event - the start of the pipeline - informs CodeNOW which pipeline was executed on which application component
- Result event - results of the steps in the pipeline
- 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:
Subtype | Description |
---|---|
git-revision | information about branch and commit which are being built |
code-quality | results of the static code analysis |
container | link to the container registry where the image of the container is stored |
helm | link to helm registry where helm chart used for deployment is stored |
git-tag | git tag of the released version of the application component (CodeNOW uses it for loading the default configuration for the component) |
maven / npm / nuget | link to the Artifact registry where the package of the corresponding tool is stored. |
link | link to custom result not covered by the other result event subtypes |
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.
In case you forgot one of the events necessary for deployment, your build will be marked as Incomplete
.