11 Recommended jobs that should be deployed for CI using Gerrit.
15 - gerrit-jenkins-cfg-merge
16 - gerrit-jjb-deploy-job
20 {project-name}-github-ci-jobs
21 -----------------------------
23 Recommended jobs that should be deployed CI using GitHub.
27 - github-jenkins-cfg-merge
28 - github-jjb-deploy-job
32 {project-name}-packer-jobs
33 --------------------------
35 Jobs related to Packer builds for CI using Gerrit.
40 - gerrit-packer-verify
42 {project-name}-github-packer-jobs
43 ---------------------------------
45 Jobs related to Packer builds for CI using GitHub.
50 - github-packer-verify
55 lf-jenkins-cfg-global-vars
56 --------------------------
58 Manages the Global Jenkins variables. This macro will clear all exist macros
59 in Jenkins and replaces them with the ones defined by the
60 ci-management/jenkins-config/global-vars-SILO.sh script.
64 Requires the jjbini file in Jenkins CFP to contain JJB 2.0 style
65 config definitions for "production" and "sandbox" systems.
69 :jenkins-silos: Space separated list of Jenkins silos to update
70 configuration for as defined in ~/.config/jenkins_jobs/jenkins_jobs.ini
75 Provides jenkins_jobs.ini configuration for Jenkins.
77 lf-infra-jjbini-sandbox
78 -----------------------
80 Provides jenkins_jobs.ini configuration for Jenkins sandbox.
82 .. todo:: This needs to be consolidated into lf-infra-jjbini when JJB 2.0 is available
84 lf-packer-verify-file-paths
85 ---------------------------
87 Gerrit file-paths for packer verify jobs.
92 Gerrit file-paths for packer jobs.
97 Common packer configuration.
105 Job submits a patch to lock or unlock a project's branch.
108 - {project-name}-gerrit-branch-lock-{stream}
112 Jenkins Configuration Merge
113 ---------------------------
115 Jenkins job to manage Global Jenkins configuration.
117 Global Environment Variables are managed via the
118 ``jenkins-config/global-vars-SILO.sh`` file in ci-management. Replace SILO with
119 the name of the Jenkins silo the variable configuration is for.
121 The format for this file is ``KEY=value`` for example::
123 GERRIT_URL=https://git.opendaylight.org/gerrit
124 GIT_BASE=git://devvexx.opendaylight.org/mirror/$PROJECT
125 GIT_URL=git://devvexx.opendaylight.org/mirror
126 JENKINS_HOSTNAME=vex-yul-odl-jenkins-2
127 LOGS_SERVER=https://logs.opendaylight.org
128 NEXUS_URL=https://nexus.opendaylight.org
129 ODLNEXUSPROXY=https://nexus.opendaylight.org
131 SONAR_URL=https://sonar.opendaylight.org
135 Requires the jjbini file in Jenkins CFP to contain JJB 2.0 style
136 config definitions for "production" and "sandbox" systems.
140 - {project-name}-jenkins-cfg-merge
141 - gerrit-jenkins-cfg-merge
142 - github-jenkins-cfg-merge
144 :Optional parameters:
146 :branch: Git branch to build against. (default: master)
147 :cron: How often to run the job on a cron schedule. (default: @daily)
148 :git-url: URL to clone project from. (default: $GIT_URL/$GERRIT_PROJECT)
149 :jenkins-silos: Space separated list of Jenkins silos to update
150 configuration for as defined in ~/.config/jenkins_jobs/jenkins_jobs.ini
151 (default: production sandbox)
153 Typically this template is automatically pulled in by the
154 "{project-name}-ci-jobs" job-group and does not need to be explicitly called if
155 the job group is being used.
159 .. literalinclude:: ../../.jjb-test/lf-ci-jobs/jenkins-cfg-merge-minimal.yaml
164 .. literalinclude:: ../../.jjb-test/lf-ci-jobs/jenkins-cfg-merge-full.yaml
171 Deploy jobs to jenkins-sandbox system via code review comment
173 This job checks out the current code review patch and then runs a
174 `jenkins-jobs update` to push a patch defined by the comment.
178 - {project-name}-jjb-deploy-job
179 - gerrit-jjb-deploy-job
180 - github-jjb-deploy-job
182 :Comment Trigger: jjb-deploy JOB_NAME
186 JOB_NAME can include the * wildcard character to push multiple jobs
187 matching the pattern. For example `jjb-deploy builder-jjb-*`` will push
188 all builder-jjb-* jobs to the sandbox system.
190 :Required parameters:
192 :build-node: The node to run build on.
193 :jenkins-ssh-credential: Credential to use for SSH. (Generally
194 should be configured in defaults.yaml)
196 :Optional parameters:
198 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
199 :gerrit_jjb_deploy_job_triggers: Override Gerrit Triggers.
205 Runs `jenkins-jobs update` to update production job configuration
208 - {project-name}-jjb-merge
212 :Required parameters:
214 :build-node: The node to run build on.
215 :jenkins-ssh-credential: Credential to use for SSH. (Generally should
216 be configured in defaults.yaml)
217 :mvn-settings: The name of settings file containing credentials for
220 :Optional parameters:
222 :branch: Git branch to fetch for the build. (default: master)
223 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
224 :build-timeout: Timeout in seconds before aborting build. (default: 10)
225 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
226 :stream: Keyword that can be used to represent a release code-name.
227 Often the same as the branch. (default: master)
228 :submodule-recursive: Whether to checkout submodules recursively.
231 :gerrit_merge_triggers: Override Gerrit Triggers.
232 :gerrit_trigger_file_paths: Override file paths which can be used to
233 filter which file modifications will trigger a build.
234 (default defined by lf_jjb_common)
240 Runs `jenkins-jobs test` to validate JJB syntax
243 - {project-name}-jjb-verify
247 :Required parameters:
249 :build-node: The node to run build on.
250 :jenkins-ssh-credential: Credential to use for SSH. (Generally should
251 be configured in defaults.yaml)
252 :mvn-settings: The name of settings file containing credentials for
255 :Optional parameters:
257 :branch: Git branch to fetch for the build. (default: master)
258 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
259 :build-timeout: Timeout in seconds before aborting build. (default: 10)
260 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
261 :stream: Keyword that can be used to represent a release code-name.
262 Often the same as the branch. (default: master)
263 :submodule-recursive: Whether to checkout submodules recursively.
266 :gerrit_verify_triggers: Override Gerrit Triggers.
267 :gerrit_trigger_file_paths: Override file paths which can be used to
268 filter which file modifications will trigger a build.
269 (default defined by lf_jjb_common)
275 Packer Merge job runs `packer build` to build system images in the cloud.
278 - {project-name}-packer-merge-{platforms}-{templates}
279 - gerrit-packer-merge
280 - github-packer-merge
282 :Required parameters:
284 :build-node: The node to run build on.
285 :jenkins-ssh-credential: Credential to use for SSH. (Generally should
286 be configured in defaults.yaml)
287 :mvn-settings: The name of settings file containing credentials for
289 :platforms: Platform or distribution to build. Typically json file
290 found in the packer/vars directory. (Example: centos)
291 :template: System template to build. Typically shell script found in
292 the packer/provision directory. (Example: java-builder)
294 :Optional parameters:
296 :branch: Git branch to fetch for the build. (default: master)
297 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
298 :build-timeout: Timeout in seconds before aborting build. (default: 10)
299 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
300 :packer-cloud-settings: Name of settings file containing credentials
301 for the cloud that packer will build on. (default: packer-cloud-env)
302 :packer-version: Version of packer to install / use in build. (default: 1.0.2)
303 :stream: Keyword that can be used to represent a release code-name.
304 Often the same as the branch. (default: master)
305 :submodule-recursive: Whether to checkout submodules recursively.
308 :gerrit_verify_triggers: Override Gerrit Triggers.
314 Packer Verify job runs `packer validate` to verify packer configuration.
317 - {project-name}-packer-verify
318 - gerrit-packer-verify
319 - github-packer-verify
321 :Required parameters:
323 :build-node: The node to run build on.
324 :jenkins-ssh-credential: Credential to use for SSH. (Generally should
325 be configured in defaults.yaml)
326 :mvn-settings: The name of settings file containing credentials for
329 :Optional parameters:
331 :branch: Git branch to fetch for the build. (default: master)
332 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
333 :build-timeout: Timeout in seconds before aborting build. (default: 10)
334 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
335 :packer-cloud-settings: Name of settings file containing credentials
336 for the cloud that packer will build on. (default: packer-cloud-env)
337 :packer-version: Version of packer to install / use in build. (default: 1.0.2)
338 :stream: Keyword that can be used to represent a release code-name.
339 Often the same as the branch. (default: master)
340 :submodule-recursive: Whether to checkout submodules recursively.
343 :gerrit_verify_triggers: Override Gerrit Triggers.
344 :gerrit_trigger_file_paths: Override file paths which can be used to
345 filter which file modifications will trigger a build.