CI: Deprecate Jenkins Sonar jobs
[ci-management.git] / README.md
index 9e3ef6c..2f70774 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,4 +1,97 @@
-# ci-management
+# Continuous Integration for O-RAN SC at LF
 
-This repo contains configuration files for Jenkins jobs for the O-RAN SC
-project.
+This repo contains configuration files for Jenkins jobs for the
+O-RAN SC project.
+
+## Defaults.yaml
+
+To avoid repetition, many required configuration parameter values
+are defined in the defaults.yaml file.
+
+## Custom JJB templates for Docker CI PackageCloud projects
+
+Custom JJB templates are defined for projects that use Docker to
+compile code and build DEB/RPM packages, then push the packages to
+PackageCloud.io. These projects should use the following jobs in
+their respective project.yaml file::
+
+    jobs:
+      - gerrit-docker-verify
+      - oran-gerrit-docker-ci-pc-merge
+
+## Testing the templates
+
+These instructions explain how to test the templates using the Jenkins
+sandbox. This catches errors before submitting the changes as Gerrit
+reviews.
+
+### Prerequisites
+
+Install the Jenkins job builder:
+
+    pip install jenkins-job-builder
+
+Check out the global JJB templates submodule within this repo:
+
+    git submodule update --init
+
+### Test Locally
+
+Check sanity by running the Jenkins job-builder script in this directory:
+
+    jenkins-jobs test -r jjb
+
+### Deploy the templates to the Jenkins sandbox
+
+Login (after requesting membership in group
+oran-jenkins-sandbox-access) at the Jenkins sandbox:
+
+    https://jenkins.o-ran-sc.org/sandbox
+
+Get the authentication token from the sandbox:
+a) click on your user name (top right)
+b) click Configure (left menu)
+c) under API Token, click Add new Token (button)
+d) copy the token string
+
+Create a config file jenkins.ini using the following template and your
+credentials (user name and API token from above)::
+
+    [job_builder]
+    ignore_cache=True
+    keep_descriptions=False
+    recursive=True
+
+    [jenkins]
+    query_plugins_info=False
+    url=https://jenkins.o-ran-sc.org/sandbox
+    user=YOUR-USER-NAME
+    password=YOUR-API-TOKEN
+
+Build and deploy a specific job using the EXACT job name.
+
+    jenkins-jobs --conf jenkins.ini update jjb your-job-name-here
+
+Examples:
+
+    jenkins-jobs --conf jenkins.ini update jjb project-maven-docker-verify-master-mvn33-openjdk8
+
+In the sandbox visit the job page, then click the button "Build with
+parameters" in left menu.
+
+### How to build from a Gerrit review branch
+
+This explains how to launch a "verify" job in the Sandbox on an open
+review. Most "verify" jobs accept parameters to build code in a
+review submitted to Gerrit. You must specify the change ref spec,
+which is a Git branch name. Get this by inspecting Gerrit's
+"download" links at the top right. The branch name will be something
+like this:
+
+    refs/changes/78/578/2
+
+The first number is a mystery to me; the second number is the Gerrit
+change number; the third number is the patch set within the change.
+
+Enter this name for both the GERRIT_BRANCH and the GERRIT_REFSPEC
+parameters, then click Build.