blob: f55bb35ef795fa5ad08189afdfa15ca24b5dd9c5 [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
morganrol81dc70f2021-04-06 19:57:44 +020013 - Jenkins CI/CD, CI managed by LF IT and CD by Integration team
14 - GitLab-ci managed by Integration and OOM team
mrichomme9643b0c2020-11-14 22:36:57 +010015
16Continuous Integration
17----------------------
18
19The CI part provides the following features:
20
morganrol81dc70f2021-04-06 19:57:44 +020021- Repository verification (format of the INFO.yaml)
22- Patchset verification thanks 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
morganrol81dc70f2021-04-06 19:57:44 +020038The Jenkins jobs (jjb) are hosted in https://git.onap.org/ci-management/.
mrichomme9643b0c2020-11-14 22:36:57 +010039
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
morganrol81dc70f2021-04-06 19:57:44 +020063The replacement of this CD by a GitLab runner based CD to unify the CD
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020064management was planned, but finalizing the operation in Guilin was not possible
65due to performance issues.
mrichomme9643b0c2020-11-14 22:36:57 +010066
morganrol81dc70f2021-04-06 19:57:44 +020067GitLab CD
mrichomme9643b0c2020-11-14 22:36:57 +010068.........
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
morganrol81dc70f2021-04-06 19:57:44 +020074- Daily Guilin: daily run using the last stable version during Honolulu Release
mrichomme9643b0c2020-11-14 22:36:57 +010075 processing
morganrol81dc70f2021-04-06 19:57:44 +020076- Daily Honolulu: daily run setup at RC0 (candidate dockers available for integration)
mrichomme9643b0c2020-11-14 22:36:57 +010077- Weekly Master: run once a week with longer tests
morganrol81dc70f2021-04-06 19:57:44 +020078- Weekly Honolulu: run once a week with longer tests
mrichomme9643b0c2020-11-14 22:36:57 +010079- Gating: run on OOM, clamp or SO patchset submission. It means a full ONAP
80 deployment on demand based on new patchset declared in gerrit.
81
82See :ref:`Integration CI guideline <integration-ci>` for details.