Add lf ci-management jjb jobs
[releng/global-jjb.git] / README.md
1 # Global JJB
2
3 The purpose of this repository is store generically define reusable JJB
4 templates that can be deployed across LF projects.
5
6 The following variables are necessary to be defined in the Jenkins server as
7 global environment variables as scripts in this repo expect these variables to
8 be available.
9
10 For example:
11
12 ```
13 GIT_URL=ssh://jenkins-$SILO@git.opendaylight.org:29418
14 JENKINS_HOSTNAME=jenkins092
15 LOGS_SERVER=https://logs.opendaylight.org
16 NEXUS_URL=https://nexus.opendaylight.org
17 SILO=releng
18 ```
19
20 ## Jenkins Plugin Requirements
21
22 **Required**
23
24 - Config File Provider
25 - Description Setter
26 - Gerrit Trigger
27 - Post Build Script
28 - SSH Agent
29 - Workspace Cleanup
30
31 **Optional**
32
33 - Mask Passwords
34 - MsgInject
35 - OpenStack Cloud
36 - Timestamps
37
38 ## Deploying ci-jobs
39
40 The CI job group contains multiple jobs that should be deployed in all LF
41 Jenkins infra. The minimal configuration needed to deploy the ci-management
42 jobs is as follows which deploys the **{project-name}-ci-jobs** job group as
43 defined in **lf-ci-jobs.yaml**.
44
45 ```
46 - project:
47     name: ci-jobs
48
49     jobs:
50       - '{project-name}-ci-jobs'
51
52     project: ci-management
53     project-name: ci-management
54     build-node: centos7-basebuild-2c-1g
55 ```
56
57 Required parameters:
58
59 **project**: is the project repo as defined in Gerrit.
60 **project-name**: is a custom name to call the job in Jenkins.
61 **build-node**: is the name of the builder to use when building (Jenkins label).
62
63 Optional parameters:
64
65 **branch**: is the git branch to build from.
66 **jjb-version**: is the version of JJB to install in the build minion.