:Includes:
- gerrit-jenkins-cfg-merge
+ - gerrit-jenkins-sandbox-cleanup
- gerrit-jjb-deploy-job
- gerrit-jjb-merge
- gerrit-jjb-verify
:Includes:
- github-jenkins-cfg-merge
+ - github-jenkins-sandbox-cleanup
- github-jjb-deploy-job
- github-jjb-merge
- github-jjb-verify
+{project-name}-info-yaml-jobs
+-----------------------------
+
+Jobs to verify INFO.yaml file changes.
+
+:Includes:
+
+ - gerrit-info-yaml-verify
+
+{project-name}-github-info-yaml-jobs
+------------------------------------
+
+Jobs to verify INFO.yaml file changes using Github.
+
+:Includes:
+
+ - github-info-yaml-verify
+
{project-name}-packer-jobs
--------------------------
Macros
======
+lf-infra-jjb-parameters
+-----------------------
+
+:Required Parameters:
+
+ :jjb-version: Version of Jenkins Job Builder (JJB) to install and use in
+ the jjb jobs.
+
+lf-jenkins-cfg-clouds
+---------------------
+
+Deploys Jenkins Cloud configuration read from the ``jenkins-clouds`` directory
+in ci-management repositories.
+
+.. note::
+
+ Requires the jjbini file in Jenkins CFP to contain JJB 2.0 style
+ config definitions for "production" and "sandbox" systems.
+
+:Required Parameters:
+
+ :jenkins-silos: Space-separated list of Jenkins silos to update
+ configuration for as defined in ~/.config/jenkins_jobs/jenkins_jobs.ini
+
lf-jenkins-cfg-global-vars
--------------------------
:Required parameters:
- :jenkins-silos: Space separated list of Jenkins silos to update
+ :jenkins-silos: Space-separated list of Jenkins silos to update
configuration for as defined in ~/.config/jenkins_jobs/jenkins_jobs.ini
lf-infra-jjbini
.. todo:: This needs to be consolidated into lf-infra-jjbini when JJB 2.0 is available
-lf-packer-verify-file-paths
----------------------------
+lf-packer-common
+----------------
-Gerrit file-paths for packer verify jobs.
+Common packer configuration.
lf-packer-file-paths
--------------------
Gerrit file-paths for packer jobs.
-lf-packer-common
-----------------
-
-Common packer configuration.
-
lf-packer-parameters
--------------------
:packer-version: Version of packer to install / use.
(shell: PACKER_VERSION)
+lf-packer-verify-file-paths
+---------------------------
+
+Gerrit file-paths for packer verify jobs.
+
Job Templates
=============
.. literalinclude:: ../../.jjb-test/lf-ci-jobs/jenkins-cfg-merge-full.yaml
:language: yaml
+.. _jenkins-cfg-envvar:
+
Global Environment Variables
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OpenStack Cloud plugin version supported:
-* 2.30
-* 2.31
-* 2.32
+* 2.30 - 2.34
+* 2.35 - 2.37
Cloud configuration are managed via a directory structure in ci-management as
follows:
:RETENTION_TIME: Number of minutes to wait for an idle slave to be used
again before it's removed. If set to -1, the slave will be kept
forever. (default: 0)
+ :CONNECTION_TYPE: The connection type for Jenkins to connect to the build
+ minion. Valid options: JNLP, SSH. (default: "SSH")
For a live example see the OpenDaylight project jenkins-config directory.
https://github.com/opendaylight/releng-builder/tree/master/jenkins-config
inspected.
+Jenkins Sandbox Cleanup
+-----------------------
+
+Cleanup Jenkins Sandbox of jobs and views periodically.
+
+:Template names:
+
+ - {project-name}-jenkins-sandbox-cleanup
+ - gerrit-jenkins-sandbox-cleanup
+ - github-jenkins-sandbox-cleanup
+
+:Comment Trigger: NONE
+
+:Required parameters:
+
+ :build-node: The node to run build on.
+ :jenkins-ssh-credential: Credential to use for SSH. (Generally
+ should be configured in defaults.yaml)
+
+:Optional parameters:
+
+ :cron: Schedule to run job. (default: '0 8 * * 6')
+
+
JJB Deploy Job
--------------
- gerrit-jjb-merge
- github-jjb-merge
+:Comment Trigger: remerge
+
:Required parameters:
:build-node: The node to run build on.
:branch: Git branch to fetch for the build. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
- :build-timeout: Timeout in seconds before aborting build. (default: 10)
+ :build-timeout: Timeout in minutes before aborting build. (default: 10)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:stream: Keyword that can be used to represent a release code-name.
Often the same as the branch. (default: master)
- gerrit-jjb-verify
- github-jjb-verify
+:Comment Trigger: recheck|reverify
+
:Required parameters:
:build-node: The node to run build on.
:branch: Git branch to fetch for the build. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
- :build-timeout: Timeout in seconds before aborting build. (default: 10)
+ :build-timeout: Timeout in minutes before aborting build. (default: 10)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:stream: Keyword that can be used to represent a release code-name.
Often the same as the branch. (default: master)
filter which file modifications will trigger a build.
(default defined by lf_jjb_common)
+.. _info-yaml-verify:
+
+Info YAML Verify
+----------------
+
+Info YAML Verify job validates that INFO.yaml file changes are kept isolated from
+other file changes. Verifies INFO.yaml files follow the schema defined in
+`global-jjb/info-schema`.
+
+:Template Names:
+ - {project-name}-info-yaml-verify
+ - gerrit-info-yaml-verify
+ - github-info-yaml-verify
+
+:Required parameters:
+
+ :build-node: The node to run build on.
+ :jenkins-ssh-credential: Credential to use for SSH. (Generally should
+ be configured in defaults.yaml)
+
+:Optional parameters:
+
+ :branch: Git branch to fetch for the build. (default: master)
+ :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
+ :build-timeout: Timeout in minutes before aborting build. (default: 10)
+ :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+ :stream: Keyword that can be used to represent a release code-name.
+ Often the same as the branch. (default: master)
+ :submodule-recursive: Whether to checkout submodules recursively.
+ (default: true)
+ :gerrit_verify_triggers: Override Gerrit Triggers.
+
+.. _license-checker:
+
+License Checker
+---------------
+
+Job to scan projects for files missing license headers.
+
+:Template Names:
+ - {project-name}-license-check
+ - gerrit-license-check
+ - github-license-check
+
+:Optional parameters:
+
+ :build-timeout: Timeout in minutes before aborting build. (default: 15)
+ :file-patterns: Space-separated list of file patterns to scan.
+ (default: \*.go \*.groovy \*.java \*.py \*.sh)
+ :spdx-disable: Disable the SPDX-Identifier checker. (default: false)
+ :lhc-version: Version of LHC to use. (default: 0.2.0)
+ :license-exclude-paths: Comma-separated list of paths to exclude from the
+ license checker. The paths used here will be matched using a contains
+ rule so it is best to be as precise with the path as possible.
+ For example a path of '/src/generated/' will be searched as
+ '**/src/generated/**'.
+ Example: org/opendaylight/yang/gen,protobuff/messages
+ (default: '')
+ :licenses-allowed: Comma-separated list of allowed licenses.
+ (default: Apache-2.0,EPL-1.0,MIT)
+ :project-pattern: The ANT based pattern for Gerrit Trigger to choose which
+ projects to trigger job against. (default: '**')
+
+.. _gjjb-openstack-cron:
+
+OpenStack Cron
+--------------
+
+Cron job that runs regularly to perform periodic tasks against OpenStack.
+
+This job requires a Config File Provider file named ``clouds-yaml`` available
+containing the credentials for the cloud.
+
+:Template Names:
+ - {project-name}-openstack-cron
+ - gerrit-openstack-cron
+ - github-openstack-cron
+
+:Required parameters:
+
+ :build-node: The node to run build on.
+ :jenkins-ssh-credential: Credential to use for SSH. (Generally should
+ be configured in defaults.yaml)
+
+:Optional parameters:
+
+ :branch: Git branch to fetch for the build. (default: master)
+ :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
+ :build-timeout: Timeout in minutes before aborting build. (default: 90)
+ :cron: Time when the packer image should be rebuilt (default: @daily)
+ :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+ :openstack-cloud: OS_CLOUD setting to pass to openstack client.
+ (default: vex)
+ :stream: Keyword that can be used to represent a release code-name.
+ Often the same as the branch. (default: master)
+ :submodule-recursive: Whether to checkout submodules recursively.
+ (default: true)
.. _gjjb-packer-merge:
- gerrit-packer-merge
- github-packer-merge
+:Comment Trigger: remerge
+
:Required parameters:
:build-node: The node to run build on.
:Optional parameters:
+ :cron: Time when the packer image should be rebuilt (default: @monthly)
:branch: Git branch to fetch for the build. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
- :build-timeout: Timeout in seconds before aborting build. (default: 10)
+ :build-timeout: Timeout in minutes before aborting build. (default: 90)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:packer-cloud-settings: Name of settings file containing credentials
for the cloud that packer will build on. (default: packer-cloud-env)
- gerrit-packer-verify
- github-packer-verify
+:Comment Trigger: recheck|reverify
+
:Required parameters:
:build-node: The node to run build on.
:branch: Git branch to fetch for the build. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
- :build-timeout: Timeout in seconds before aborting build. (default: 10)
+ :build-timeout: Timeout in minutes before aborting build. (default: 10)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:packer-cloud-settings: Name of settings file containing credentials
for the cloud that packer will build on. (default: packer-cloud-env)