mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 1 | .. This work is licensed under a |
| 2 | Creative Commons Attribution 4.0 International License. |
| 3 | .. integration-CICD: |
| 4 | |
| 5 | .. integration_main-doc: |
| 6 | |
| 7 | CI/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 | |
| 16 | Continuous Integration |
| 17 | ---------------------- |
| 18 | |
| 19 | The CI part provides the following features: |
| 20 | |
| 21 | - Repository Verification (format of the INFO.yaml) |
Lasse Kaihlavirta | 2d2888a | 2020-11-18 16:54:36 +0200 | [diff] [blame] | 22 | - Patchset verification thank to json/yaml/python/go/rst/md linters. These Jenkins |
mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 23 | 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 | |
| 30 | The 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 | |
| 38 | The jenkins jobs (jjb) are hosted in https://git.onap.org/ci-management/. |
| 39 | |
| 40 | Continuous Deployment |
| 41 | --------------------- |
| 42 | |
| 43 | There are 2 Continuous Deployment architectures. |
| 44 | |
| 45 | Jenkins CD on Windriver/Intel lab |
| 46 | .................................. |
| 47 | |
Lasse Kaihlavirta | 2d2888a | 2020-11-18 16:54:36 +0200 | [diff] [blame] | 48 | The CD part on Windriver/Intel is based on Jenkins. |
mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 49 | |
Lasse Kaihlavirta | 2d2888a | 2020-11-18 16:54:36 +0200 | [diff] [blame] | 50 | It is based on a standalone VM hosting a Jenkins server. |
| 51 | The credentials of this VM as well as the Jenkins server have been provided to |
mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 52 | integration committers. |
| 53 | |
Lasse Kaihlavirta | 2d2888a | 2020-11-18 16:54:36 +0200 | [diff] [blame] | 54 | Several jobs can be triggered from this Jenkins interface. |
mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 55 | Historically several chains were run daily (staging/release) but due to |
| 56 | performance issues, they have all been stopped. |
| 57 | Only SB-00 has been kept for use case support. |
Lasse Kaihlavirta | 2d2888a | 2020-11-18 16:54:36 +0200 | [diff] [blame] | 58 | The Jenkins interface was however used to launch the installation of SB-00. |
mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 59 | |
Lasse Kaihlavirta | 2d2888a | 2020-11-18 16:54:36 +0200 | [diff] [blame] | 60 | This Jenkins script is leveraging resources available in OOM and integration |
mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 61 | repositories. |
| 62 | |
Lasse Kaihlavirta | 2d2888a | 2020-11-18 16:54:36 +0200 | [diff] [blame] | 63 | The replacement of this CD by a gitlab runner based CD to unify the CD |
| 64 | management was planned, but finalizing the operation in Guilin was not possible |
| 65 | due to performance issues. |
mrichomme | 9643b0c | 2020-11-14 22:36:57 +0100 | [diff] [blame] | 66 | |
| 67 | Gitlab CD |
| 68 | ......... |
| 69 | |
| 70 | This CD is leveraging public gitlab-ci mechanism and used to deploy several ONAP |
| 71 | labs: |
| 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 | |
| 81 | See :ref:`Integration CI guideline <integration-ci>` for details. |