Add branches parameter to github scm macro
[releng/global-jjb.git] / README.md
index 40289bc..50d9c6e 100644 (file)
--- 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 <https://github.com>. 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 <https://github.com>. 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. <https://www.python.org/dev/peps/pep-0440/>
+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:
+<https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit>
+
 ## Appendix
 
 ### ShellCheck