change the docs format to satisfy sphinx
[octopus.git] / docs / octopus_docs / opnfv-ci-pipelines.rst
1 =================
2 OPNFV CI PIPELINE
3 =================
4
5 OPNFV CI
6 ========
7
8 OPNFV Continuous Integration (CI) project provides the starting point for all OPNFV development activities.
9 It creates a full development environment for OPNFV including automatic build, deployment, and testing.
10
11 In order to provide fast and continuous feedback to OPNFV community, CI pipeline utilizes different tools,
12 runs different type of verification activities in different phases
13 depending on the needs of different OPNFV projects and the needs of the OPNFV community.
14
15 This document aims to provide information regarding OPNFV CI Pipeline
16 which is currently being enabled for the projects.
17
18 CI Pipeline Overview
19 ====================
20
21 OPNFV CI Pipeline starts with a change (commit)  and stages in the pipeline
22 are triggered based on events that happen while the change travels through the pipeline,
23 producing feedback based on different verification activities.
24
25 Below diagram shows overview of the OPNFV CI pipeline.
26
27 .. image:: images/pipeline_overview.png
28    :scale: 50%
29    :alt: OPNFV CI Pipeline Overview
30
31 Please note that the daily job is neglected on above diagram as the daily job
32 is currently triggered once during night time based on timer, not based on Gerrit events.
33
34
35 Jenkins Jobs in CI Pipeline
36 ===========================
37
38 Verify Jenkins Job
39 ------------------
40
41 OPNFV CI Pipeline has **verify** jobs for all OPNFV Projects in order to
42 run quick verification activities for each and every patchset sent to Gerrit for review.
43
44 The main purpose of this job is to keep the quality of codebase on certain level
45 so whoever clones the repo at any given time can get *stable* version of the software.
46 It also provides feedback regarding the quality of the patchset to developer who submitted the patchset for review,
47 reviewer(s) who are requested to do review(s) and the rest of the OPNFV community, as early as possible.
48
49 This job is triggered automatically when developers issue **git review** command to publish their changes to Gerrit.
50 Gerrit then publishes **patchset created** event under normal circumstances, triggering the job.
51 If the job fails to trigger or fails during execution for some reason that is not related to patchset itself,
52 developers can retrigger it by adding a new comment to change on Gerrit
53 and include either one of the keywords **recheck** or **reverify**.
54
55 The result of this job will be verified/failed vote (+1 or -1) on Gerrit.
56 Depending on reviews, the commit can later be submitted to master and merged.
57
58 This job does not produce any artifact (document, ISO, etc.).
59
60 Please check the diagram below to see how the flow looks.
61
62 .. image:: images/verify_job.png
63    :scale: 50%
64    :alt: Verify Jenkins Job
65
66 Merge Jenkins Job
67 -----------------
68
69 OPNFV CI Pipeline has **merge** jobs for all OPNFV Projects in order to
70 run verification activities for each and every change that gets merged to master.
71
72 The main purpose of this job is to give feedback regarding the quality of the master branch
73 once a certain change gets merged to master and the current scope of the job is same as verify job.
74
75 This job is triggered automatically by Gerrit **change merged** event under normal circumstances.
76 If the job fails to trigger or fails during execution for some reason that is not related to patchset itself,
77 developers can retrigger it by adding a new comment to change on Gerrit and include the keyword **remerge**.
78
79 This job currently produces documents and publishes them on `OPNFV Artifact Repository <http://artifacts.opnfv.org/>`_.
80
81 Please check the diagram below to see how the flow looks.
82
83
84 .. image:: images/merge_job.png
85    :scale: 50%
86    :alt: Merge Jenkins Job
87
88 Daily Jenkins Job
89 -----------------
90
91 OPNFV CI Pipeline has **daily** jobs for all OPNFV Projects in order to
92 run more extensive verification activities that can take long time to finish.
93
94 The main purpose of this job is to run full build, produce artifacts (installer ISOs, etc.),
95 store artifacts in OPNFV Artifact Repository so they can be downloaded to target environment,
96 do the deployment using build artifacts, run tests (Tempest, Robot, etc.)
97 and give feedback regarding the quality of the master branch.
98
99 This job is triggered automatically every night 00:00UTC based on **timer** under normal circumstances.
100 If the job fails to trigger or fails during execution for some reason that is not related to software itself,
101 it can only be retriggered by LF aor Octopus team members.
102
103 This job produces build artifacts and documents and publishes them on `OPNFV Artifact Repository <http://artifacts.opnfv.org/>`_.
104
105 Please check the diagram below to see how the flow looks.
106
107 .. image:: images/daily_job.png
108    :scale: 50%
109    :alt: Daily Jenkins Job