3 The purpose of this repository is store generically define reusable JJB
4 templates that can be deployed across LF projects.
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
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
20 ## Jenkins Plugin Requirements
24 - Config File Provider
38 ## Installing global-jjb
40 global-jjb should be deployed in the ci-management repository's jjb directory as
41 a submodule. global-jjb is versioned and tagged in Gerrit so installing,
42 upgrading, and rolling back changes should be simple via the Gerrit tag system.
45 # Choose a global-jjb version to install
46 GLOBAL_JJB_VERSION=v0.1.0
48 # Add the new submodule to ci-management's jjb directory.
49 # Note: Only needs to be performed once per ci-management repo.
51 git submodule add https://gerrit.linuxfoundation.org/infra/releng/global-jjb
53 # Checkout the version of global-jjb you wish to deploy.
55 git checkout $GLOBAL_JJB_VERSION
57 # Commit global-jjb version to the ci-management repo.
59 git add jjb/global-jjb
60 git commit -sm "Install global-jjb $GLOBAL_JJB_VERSION"
62 # Push the patch to ci-management for review
66 ## Parameters stored in defaults.yaml
68 There are a few project specific parameters that should be stored in the
69 ci-management repo's defaults.yaml file.
71 **gerrit-server-name**: The name of the Gerrit Server as defined in Gerrit
72 Trigger global configuration.
74 **jenkins-ssh-credential**: The name of the Jenkins Credential to use for ssh
84 jenkins-ssh-credential: opendaylight-jenkins-ssh
85 gerrit-server-name: OpenDaylight
88 ## Config File Management
92 The logs account requires a Maven Settings file created called
93 **jenkins-log-archives-settings** with a server ID of **logs** containing the
94 credentials for the logs user in Nexus.
98 The CI job group contains multiple jobs that should be deployed in all LF
99 Jenkins infra. The minimal configuration needed to deploy the ci-management
100 jobs is as follows which deploys the **{project-name}-ci-jobs** job group as
101 defined in **lf-ci-jobs.yaml**.
110 - '{project-name}-ci-jobs'
112 project: ci-management
113 project-name: ci-management
114 build-node: centos7-basebuild-2c-1g
119 **project**: is the project repo as defined in Gerrit.
120 **project-name**: is a custom name to call the job in Jenkins.
121 **build-node**: is the name of the builder to use when building (Jenkins label).
125 **branch**: is the git branch to build from.
126 **jjb-version**: is the version of JJB to install in the build minion.