```
GIT_URL=ssh://jenkins-$SILO@git.opendaylight.org:29418
+GIT_CLONE_URL=git@github.com:
JENKINS_HOSTNAME=jenkins092
LOGS_SERVER=https://logs.opendaylight.org
NEXUS_URL=https://nexus.opendaylight.org
SILO=releng
```
+Note: **GIT_CLONE_URL** is only used by Github projects as this
+will be different from the URL used the poperties
+configuration.
## Jenkins Plugin Requirements
- OpenStack Cloud
- Timestamps
+## Installing global-jjb
+
+global-jjb should be deployed in the ci-management repository's jjb directory as
+a submodule. global-jjb is versioned and tagged in Gerrit so installing,
+upgrading, and rolling back changes should be simple via the Gerrit tag system.
+
+```
+ # Choose a global-jjb version to install
+ GLOBAL_JJB_VERSION=v0.1.0
+
+ # Add the new submodule to ci-management's jjb directory.
+ # Note: Only needs to be performed once per ci-management repo.
+ cd jjb/
+ git submodule add https://gerrit.linuxfoundation.org/infra/releng/global-jjb
+
+ # Checkout the version of global-jjb you wish to deploy.
+ cd global-jjb
+ git checkout $GLOBAL_JJB_VERSION
+
+ # Commit global-jjb version to the ci-management repo.
+ cd ../..
+ git add jjb/global-jjb
+ git commit -sm "Install global-jjb $GLOBAL_JJB_VERSION"
+
+ # Push the patch to ci-management for review
+ git review
+```
+
+## Parameters stored in defaults.yaml
+
+There are a few project specific parameters that should be stored in the
+ci-management repo's defaults.yaml file.
+
+**gerrit-server-name**: The name of the Gerrit Server as defined in Gerrit
+Trigger global configuration.
+
+**jenkins-ssh-credential**: The name of the Jenkins Credential to use for ssh
+connections.
+
+If you are using GitHub then there is one more parameter which
+will need to be placed in the defaults.yaml
+
+**github-org**: The name of the GitHub organization.
+
+defaults.yaml:
+
+```
+- defaults:
+ name: global
+
+ # lf-infra defaults
+ jenkins-ssh-credential: opendaylight-jenkins-ssh
+ gerrit-server-name: OpenDaylight
+ github-org: lfit
+```
+
+## Config File Management
+
+### Logs
+
+The logs account requires a Maven Settings file created called
+**jenkins-log-archives-settings** with a server ID of **logs** containing the
+credentials for the logs user in Nexus.
+
## Deploying ci-jobs
The CI job group contains multiple jobs that should be deployed in all LF
jobs is as follows which deploys the **{project-name}-ci-jobs** job group as
defined in **lf-ci-jobs.yaml**.
+ci-management.yaml:
+
```
- project:
name: ci-jobs
Required parameters:
-**project**: is the project repo as defined in Gerrit.
+**project**: is the project repo as defined in source control.
+**project-name**: is a custom name to call the job in Jenkins.
+**build-node**: is the name of the builder to use when building (Jenkins label).
+
+Optional parameters:
+
+**branch**: is the git branch to build from.
+**jjb-version**: is the version of JJB to install in the build minion.
+
+## Deploying Python jobs
+
+We provide the following Python jobs templates:
+
+### {project-name}-tox-verify-{stream}
+
+This job can be used to call python-tox to run builds and tests. The most common
+usage of this job is to run the Coala linter against projects.
+
+```
+- project:
+ name: builder
+ jobs:
+ - '{project-name}-tox-verify-{stream}'
+
+ project-name: builder
+ project: releng/builder
+ build-node: centos7-java-builder-2c-4g
+ stream: master
+```
+
+Required parameters:
+
+**project**: is the project repo as defined in source control.
**project-name**: is a custom name to call the job in Jenkins.
**build-node**: is the name of the builder to use when building (Jenkins label).
+**stream**: typically `master` or matching whatever branch is being built. This
+ is a useful keywords to map a release codename to a branch. For
+ example OpenDaylight uses this to map stream=carbon to
+ branch=stable/carbon.
Optional parameters:
**branch**: is the git branch to build from.
**jjb-version**: is the version of JJB to install in the build minion.
+**tox-dir**: directory containing tox.ini file (default: '')
+**tox-envs**: tox environments to run (default: '')
+
+## Archiving logs in Jobs
+
+There are 2 ways supported for archiving log information:
+
+1) Job creates $WORKSPACE/archives directory and places logs there
+
+In this method the entire archives directory will be pushed to the log server
+in the same structure as configured in the archives directory.
+
+2) Via job variable ARCHIVE_ARTIFACTS using globstar patterns.
+
+In this method a job can define a globstar for example ``**/*.log`` which then
+causes the archive script to do a globstar search for that pattern and archives
+any files it finds matching.