X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=README.md;h=50d9c6ef57f1e1f98965a9505db5ef6c0a7dd1a6;hb=refs%2Ftags%2Fv0.10.4;hp=40289bcce65462f120ba962d161ddcc7462634c4;hpb=6a177f2aa47a827ac661f3f5d1bb61035bf83588;p=releng%2Fglobal-jjb.git diff --git a/README.md b/README.md index 40289bcc..50d9c6ef 100644 --- a/README.md +++ b/README.md @@ -10,12 +10,14 @@ be available. For example: ``` +GERRIT_URL=https://git.opendaylight.org/gerrit 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 +SONAR_URL=https://sonar.opendaylight.org ``` Note: Use **GIT_CLONE_URL** for GitHub projects as this @@ -28,11 +30,21 @@ configuration. - Config File Provider - Description Setter -- Gerrit Trigger +- Environment Injector Plugin +- Git plugin - Post Build Script - SSH Agent - Workspace Cleanup +**Required for Gerrit connected systems** + +- Gerrit Trigger + +**Required for GitHub connected systems** + +- GitHub plugin +- GitHub Pull Request Builder + **Optional** - Mask Passwords @@ -70,27 +82,50 @@ versioned git tags. ## Parameters stored in defaults.yaml -Configure the following parameters in the ci-management repo's defaults.yaml -file. +Configure the following parameters 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. +**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. +**jenkins-ssh-credential**: The name of the Jenkins Credential to +use for ssh connections. -If you are using GitHub then configure the following parameters in defaults.yaml +If you are using GitHub then configure the following parameters +in defaults.yaml **git-url**: Set this to the base URL of your GitHub repo. In -general this should be . If you are using GitHub -Enterprise, or some other GitHub-style system, then it should be -whatever your installation base URL is. +general this should be . If you are using +GitHub Enterprise, or some other GitHub-style system, then it +should be whatever your installation base URL is. -**git-clone-url**: This is the clone prefix used by GitHub jobs. Set this to -either the same thing as **git-url** or the +**git-clone-url**: This is the clone prefix used by GitHub jobs. +Set this to either the same thing as **git-url** or the 'git@github.com:' including the trailing ':' -**github-org**: The name of the GitHub organization. +**github-org**: The name of the GitHub organization interpolated +into the scm config. + +**github_pr_org**: The name of the GitHub organization. All members +of this organization will be able to trigger any job using the +`lf-infra-github-pr` macro. + +**github_pr_whitelist**: List of GitHub members you wish to be able to +trigger any job that uses the `lf-infra-github-pr-trigger` macro. + +**github_pr_admin_list**: List of GitHub members that will have admin +privileges on any job using the `lf-infra-github-pr-trigger` +macro. + +**lftools-version**: Version of lftools to install. Can be a specific version +like '0.6.1' or a PEP-440 definition. +For example `<1.0.0` or `>=1.0.0,<2.0.0`. + +**mvn-site-id**: Maven Server ID from settings.xml containing the credentials +to push to a Maven site repository. + +**mvn-staging-id**: Maven Server ID from settings.xml containing the credentials +to push to a Maven staging repository. defaults.yaml: @@ -102,6 +137,14 @@ defaults.yaml: jenkins-ssh-credential: opendaylight-jenkins-ssh gerrit-server-name: OpenDaylight github-org: lfit + github_pr_whitelist: + - jpwku + - tykeal + - zxiiro + github_pr_admin_list: + - tykeal + lftools-version: '<1.0.0' + mvn-site-id: opendaylight-site ``` ## Config File Management @@ -144,6 +187,61 @@ Optional parameters: **branch**: is the git branch to build from. **jjb-version**: is the version of JJB to install in the build minion. +## Deploying packer-jobs + +The packer job group contains jobs to build custom minion images. The minimal +configuration needed to deploy the packer jobs is as follows which deploys the +**{project-name}-packer-jobs** job group as defined in **lf-ci-jobs.yaml**. + +ci-management.yaml: + +``` +- project: + name: packer-jobs + + jobs: + - '{project-name}-packer-jobs' + + project: ci-management + project-name: ci-management + branch: master + build-node: centos7-basebuild-2c-1g + + platforms: + - centos + - ubuntu-14.04 + - ubuntu-16.04 + + templates: + - devstack + - docker + - gbp + - java-builder + - mininet + + exclude: + - platforms: centos + templates: gbp + - platforms: centos + templates: mininet +``` + +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). +**platforms**: is a list of supported platforms. +**templates**: is a list of supported templates. + +Optional parameters: + +**branch**: is the git branch to build from. +**packer-version**: is the version of packer to install in the build minion, +when packer is not available. +**exclude**: is a combination of platforms and templates which are not required +to build. + ## Deploying Python jobs We provide the following Python jobs templates: @@ -197,6 +295,17 @@ 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. +## Overriding merge and verify triggers + +The default trigger conditions for Merge and Verify job types are overrideable +in a project configuration by overriding the following variables: + +- gerrit_merge_triggers +- gerrit_verify_triggers + +These variables take a list of trigger-on values as defined in JJB docs here: + + ## Appendix ### ShellCheck