blob: f7d9f0790bad837e42813cdb027b48b7bffa60dc [file] [log] [blame]
mrichomme9643b0c2020-11-14 22:36:57 +01001.. This work is licensed under a
2 Creative Commons Attribution 4.0 International License.
3.. integration-CICD:
4
5.. integration_main-doc:
6
7CI/CD
8=====
9
10.. important::
11 Integration team deals with 2 different CI/CD systems.
12
13 - jenkins CI/CD, CI managed by LF IT and CD by Integration team
14 - gitlab-ci managed by Integration and OOM team
15
16Continuous Integration
17----------------------
18
19The CI part provides the following features:
20
21- Repository Verification (format of the INFO.yaml)
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020022- Patchset verification thank to json/yaml/python/go/rst/md linters. These Jenkins
mrichomme9643b0c2020-11-14 22:36:57 +010023 verification jobs are hosted in the ci-management repository. They can vote
24 +1/-1 on patchset submission. Integration team systematically enables linters
25 on any new repository
26- Docker build: Integration team builds testsuite dockers and xtesting dockers.
27 These dockers are built then pushed to Nexus through a jjb also hosted in the
28 ci-management repository.
29
30The different verification chains are defined in https://jenkins.onap.org/:
31
32- CSIT: https://jenkins.onap.org/view/CSIT/
33- testsuite: https://jenkins.onap.org/view/testsuite/
34- integration: https://jenkins.onap.org/view/integration/
35- integration-terragrunt: https://jenkins.onap.org/view/integration-terragrunt/
36- testsuite-robot-utils: https://jenkins.onap.org/view/testsuite-robot-utils/
37
38The jenkins jobs (jjb) are hosted in https://git.onap.org/ci-management/.
39
40Continuous Deployment
41---------------------
42
43There are 2 Continuous Deployment architectures.
44
45Jenkins CD on Windriver/Intel lab
46..................................
47
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020048The CD part on Windriver/Intel is based on Jenkins.
mrichomme9643b0c2020-11-14 22:36:57 +010049
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020050It is based on a standalone VM hosting a Jenkins server.
51The credentials of this VM as well as the Jenkins server have been provided to
mrichomme9643b0c2020-11-14 22:36:57 +010052integration committers.
53
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020054Several jobs can be triggered from this Jenkins interface.
mrichomme9643b0c2020-11-14 22:36:57 +010055Historically several chains were run daily (staging/release) but due to
56performance issues, they have all been stopped.
57Only SB-00 has been kept for use case support.
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020058The Jenkins interface was however used to launch the installation of SB-00.
mrichomme9643b0c2020-11-14 22:36:57 +010059
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020060This Jenkins script is leveraging resources available in OOM and integration
mrichomme9643b0c2020-11-14 22:36:57 +010061repositories.
62
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020063The replacement of this CD by a gitlab runner based CD to unify the CD
64management was planned, but finalizing the operation in Guilin was not possible
65due to performance issues.
mrichomme9643b0c2020-11-14 22:36:57 +010066
67Gitlab CD
68.........
69
70This CD is leveraging public gitlab-ci mechanism and used to deploy several ONAP
71labs:
72
73- Daily Master: daily run using OOM Master
74- Daily Frankfurt: daily run using the last stable version during Guilin Release
75 processing
76- Daily Guilin: daily run setup at RC0 (candidate dockers available for integration)
77- Weekly Master: run once a week with longer tests
78- Gating: run on OOM, clamp or SO patchset submission. It means a full ONAP
79 deployment on demand based on new patchset declared in gerrit.
80
81See :ref:`Integration CI guideline <integration-ci>` for details.