aboutsummaryrefslogtreecommitdiffstats
path: root/docs/integration-CICD.rst
blob: f7d9f0790bad837e42813cdb027b48b7bffa60dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
.. This work is licensed under a
   Creative Commons Attribution 4.0 International License.
.. integration-CICD:

.. integration_main-doc:

CI/CD
=====

.. important::
   Integration team deals with 2 different CI/CD systems.

  - jenkins CI/CD, CI managed by LF IT and CD by Integration team
  - gitlab-ci managed by Integration and OOM team

Continuous Integration
----------------------

The CI part provides the following features:

- Repository Verification (format of the INFO.yaml)
- Patchset verification thank to json/yaml/python/go/rst/md linters. These Jenkins
  verification jobs are hosted in the ci-management repository. They can vote
  +1/-1 on patchset submission. Integration team systematically enables linters
  on any new repository
- Docker build: Integration team builds testsuite dockers and xtesting dockers.
  These dockers are built then pushed to Nexus through a jjb also hosted in the
  ci-management repository.

The different verification chains are defined in https://jenkins.onap.org/:

- CSIT: https://jenkins.onap.org/view/CSIT/
- testsuite: https://jenkins.onap.org/view/testsuite/
- integration: https://jenkins.onap.org/view/integration/
- integration-terragrunt: https://jenkins.onap.org/view/integration-terragrunt/
- testsuite-robot-utils: https://jenkins.onap.org/view/testsuite-robot-utils/

The jenkins jobs (jjb) are hosted in https://git.onap.org/ci-management/.

Continuous Deployment
---------------------

There are 2 Continuous Deployment architectures.

Jenkins CD on Windriver/Intel lab
..................................

The CD part on Windriver/Intel is based on Jenkins.

It is based on a standalone VM hosting a Jenkins server.
The credentials of this VM as well as the Jenkins server have been provided to
integration committers.

Several jobs can be triggered from this Jenkins interface.
Historically several chains were run daily (staging/release) but due to
performance issues, they have all been stopped.
Only SB-00 has been kept for use case support.
The Jenkins interface was however used to launch the installation of SB-00.

This Jenkins script is leveraging resources available in OOM and integration
repositories.

The replacement of this CD by a gitlab runner based CD to unify the CD
management was planned, but finalizing the operation in Guilin was not possible
due to performance issues.

Gitlab CD
.........

This CD is leveraging public gitlab-ci mechanism and used to deploy several ONAP
labs:

- Daily Master: daily run using OOM Master
- Daily Frankfurt: daily run using the last stable version during Guilin Release
  processing
- Daily Guilin: daily run setup at RC0 (candidate dockers available for integration)
- Weekly Master: run once a week with longer tests
- Gating: run on OOM, clamp or SO patchset submission. It means a full ONAP
  deployment on demand based on new patchset declared in gerrit.

See :ref:`Integration CI guideline  <integration-ci>` for details.