...
Drawio | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
- Developer pushes a commit to Gerrit
- Gerrit triggers review verification job in Jenkins
- The templates for review verification job are in ci-management/jjb/integration/integration-templates-csit.yaml, named as "{project-name}-review-verification-<artifact type>-{stream}"
- The only currently supported artifact type in review verification templates is maven
- The trigger is "gerrit-trigger-patch-submitted" and it is activated by any file change in the project
- the job starts with artifact build
- Artifacts should be created from the patch under review
- Currently the first step just compiles the artifacts locally (with unit tests), but additional operations - for example sonar analysis - should be considered here
- The templates for review verification job are in ci-management/jjb/integration/integration-templates-csit.yaml, named as "{project-name}-review-verification-<artifact type>-{stream}"
- Docker build is started
- Docker build step builds docker image(s) to local temporary docker repository
- The docker build scripts and the created artifacts are completely based on the submitted patch in Gerrit
- The actual build script is specific to the project and has to be specified in the specific docker build job definition
- The build should differentiate local image from any that could be found from Nexus3
- Missing repository prefix in the image name is an obvious hint
- CSIT job is started
- this step calls csit/run-project-csit.sh under the project's root directory via integration-run-project-test builder defined in ci-management/integration/integration-macros.yaml
- run-project-csit.sh is project-specific, but can take advantage of common scripts in integration/csit if considered useful
- run-project-csit.sh can and should run all the test plans of the project in one go and provide the results under csit/archives directory
- CSIT job pulls the docker images created in step 4. (by using project-specific setup scripts) and tests them
- The test cases to be executed are also from the patch under review
- the setup script responsible of pulling the required images should ensure that the images are local
- To be considered: should CSIT ever be able to pull the images under test from Nexus?
- Review verification job gives +1 or -1 verify vote to the review based on the overall success of the verification
- Once the commit is approved (+2'd) and submitted, Gerrit triggers merge verification job in Jenkins
- The template for merge verification job is in ci-management/jjb/integration/integration-templates-csit.yaml and currently named as "{project-name}-merge-verification-<artifact type>-{stream}
- The only currently supported artifact type in merge verification templates is maven
- The trigger is "gerrit-trigger-patch-merged" and it is activated by any file change in the project
- the job starts with artifact build
- Artifacts should be created from master
- Sonar analysis and other possible additional artifact-related steps should be considered here
- Docker build is started
- Docker build step builds docker image(s) to local temporary docker repository
- The docker build scripts and the created artifacts are completely based on master
- The actual build script is the same as in review verification and used in the same way
- CSIT is started in exactly the same way as review verification
- CSIT job pulls the docker images created in step 10. (by using project-specific setup scripts) and tests them
- Execution moves to staging steps after successful CSIT
- Artifact staging step pushes the artifacts to Nexus2 staging repository
- ...if there is any actual need for this step? What are the staged artifacts actually used for (and where and how)?
- Docker image staging step tags the docker images(s) with <version>-STAGING-latest
- ...and pushes them to ONAP Nexus3
- should that be staging or snapshot?
...