Merge "Generally refactor JJB docs"
authorThanh Ha <thanh.ha@linuxfoundation.org>
Tue, 15 Dec 2015 02:31:58 +0000 (02:31 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 15 Dec 2015 02:31:58 +0000 (02:31 +0000)
1  2 
src/site/markdown/jenkins.markdown

index 68f2152c49b0d1b19cba801cf77c4b8566ccf197,ec92674557fa7db0e1ac8d151c9e5c383436d4d5..4bfdb1c8423a0ceed3abe262ad14d0eb6092bd5b
@@@ -413,106 -505,78 +505,90 @@@ the correct vote
  
  Some considerations when using this job:
  
- * The patch test verification takes some time (~ 2 hours) + consumes a lot of
-   resources so it is not meant to be used for every patch
- * The system test for master patches will fail most of the times because both
+ * The patch test verification takes some time (~2 hours) + consumes a lot of
+   resources so it is not meant to be used for every patch.
+ * The system tests for master patches will fail most of the times because both
    code and test are unstable during the release cycle (should be good by the
-   end of the cycle)
- * Because of the above, patch test results has to be interpreted most of the
-   times by a system test knowable person, the integration group can help with
-   that
+   end of the cycle).
+ * Because of the above, patch test results typically have to be interpreted by
+   system test experts. The [Integration/Test][1] project can help with that.
  
 +### Autorelease Validate Job
 +
 +Trigger: **revalidate**
 +
 +This job runs the PROJECT-validate-autorelease-BRANCH job which is used as a
 +quick sanity test to ensure that a patch does not depend on features that do
 +not exist in the current release.
 +
 +The **revalidate** trigger is useful in cases where a project's verify job
 +passed however validate failed due to infra problems or intermittent issues.
 +It will retrigger just the validate-autorelease job.
 +
  ## <a name="jjb_basic_configuration">Basic Job Configuration</a>
  
- To create jobs based on the above templates you can use the example
- template which will create 6 jobs (verify, merge, and daily jobs for both
- master and stable/helium branch).
- Run the following steps from the repo (i.e. releng/builder) root to create
- initial job config. This script will produce a file in
- jjb/\<project\>/\<project\>.yaml containing your project's base template.
-     python scripts/jjb-init-project.py <project-name>
-     # Example
-     python scripts/jjb-init-project.py aaa
-     # Note: The optional options below require you to remove the 1st line
-     #       comment in the produced template file otherwise the auto
-     #       update script will overwrite the customization next time it
-     #       is run. See Auto Update Job Templates section below for more
-     #       details.
-     #
-     # Optionally pass the following options:
-     #
-     # -s / --streams        : List of release streams you want to create jobs for. The
-     #                         first in the list will be used for the Sonar job.
-     #                         (defaults to "beryllium")
-     # -p / --pom            : Path to pom.xml to use in Maven build (defaults to pom.xml)
-     # -g / --mvn-goals      : With your job's Maven Goals necessary to build
-     #                         (defaults to "clean install")
-     #          Example      : -g "clean install"
-     #
-     # -o / --mvn-opts       : With your job's Maven Options necessary to build
-     #                         (defaults to empty)
-     #          Example      : -o "-Xmx1024m"
-     #
-     # -d / --dependencies   : A comma-seperated (no spaces) list of projects
-     #                         your project depends on.
-     #                         This is used to create an integration job that
-     #                         will trigger when a dependent project-merge job
-     #                         is built successfully.
-     #          Example      : aaa,controller,yangtools
-     #
-     # -t / --templates      : Job templates to use
-     #                         (defaults: verify,merge,daily,integration,sonar)
-     #
-     #          Example      : verify,merge,daily,integration
-     #
-     # -a / --archive-artifacts  : Comma-seperated list of patterns of artifacts
-     #                             to archive on build completion.
-     #                             See: http://ant.apache.org/manual/Types/fileset.html
-     #
-     #          Example      : *.log,*.patches
- If all your project requires is the basic verify, merge, and
- daily jobs then using the job template should be all you need to
- configure for your jobs.
- ### Auto Update Job Templates
- The first line of the job YAML file produced by the script will contain
- the words # REMOVE THIS LINE IF... leaving this line will allow the
- releng/builder autoupdate script to maintain this file for your project
- should the base template ever change. It is a good idea to leave this
- line if you do not plan to create any complex jobs outside of the
- provided template.
- However if your project needs more control over your jobs or if you have
- any additional configuration outside of the standard configuration
- provided by the template then this line should be removed.
- #### Tuning templates
- Additionally the auto-updater does allow some small tweaks to the template
- so that you can take advantage of the template while at the same time
- tuning small aspects of your jobs. To take advantage of this simply create
- a file in your project's jjb directory called **project.cfg** with the
- following contents and tune as necessary. If there is a parameter you do
- NOT want to tune simply remove the parameter or comment out the line with a
- "#"" sign.
+ To create jobs based on existing [templates](#jjb_templates), use the
+ [`jjb-init-project.py`][24] helper script. When run from the root of
+ [RelEng/Builder's repo][13], it will produce a file in
+ `jjb/<project>/<project>.yaml` containing your project's base template.
+     $ python scripts/jjb-init-project.py --help
+     usage: jjb-init-project.py [-h] [-c CONF] [-d DEPENDENCIES] [-t TEMPLATES]
+                                [-s STREAMS] [-p POM] [-g MVN_GOALS] [-o MVN_OPTS]
+                                [-a ARCHIVE_ARTIFACTS]
+                                project
+     positional arguments:
+       project               project
+     optional arguments:
+       -h, --help            show this help message and exit
+       -c CONF, --conf CONF  Config file
+       -d DEPENDENCIES, --dependencies DEPENDENCIES
+                             Project dependencies A comma-seperated (no spaces)
+                             list of projects your project depends on. This is used
+                             to create an integration job that will trigger when a
+                             dependent project-merge job is built successfully.
+                             Example: aaa,controller,yangtools
+       -t TEMPLATES, --templates TEMPLATES
+                             Job templates to use
+       -s STREAMS, --streams STREAMS
+                             Release streams to fill with default options
+       -p POM, --pom POM     Path to pom.xml to use in Maven build (Default:
+                             pom.xml
+       -g MVN_GOALS, --mvn-goals MVN_GOALS
+                             Maven Goals
+       -o MVN_OPTS, --mvn-opts MVN_OPTS
+                             Maven Options
+       -a ARCHIVE_ARTIFACTS, --archive-artifacts ARCHIVE_ARTIFACTS
+                             Comma-seperated list of patterns of artifacts to
+                             archive on build completion. See:
+                             http://ant.apache.org/manual/Types/fileset.html
+ If all your project requires is the basic verify, merge, and daily jobs then
+ using the job template should be all you need to configure for your jobs.
+ ### Auto-Update Job Templates
+ The first line of the job YAML file produced by the [init script][24] will
+ contain the words `# REMOVE THIS LINE IF...`. Leaving this line will allow the
+ RelEng/Builder [auto-update script][25] to maintain this file for your project,
+ should the base templates ever change. It is a good idea to leave this line if
+ you do not plan to create any complex jobs outside of the provided template.
+ However, if your project needs more control over your jobs or if you have any
+ additional configuration outside of the standard configuration provided by the
+ template, then this line should be removed.
+ #### Tuning Templates
+ Allowing the auto-updated to manage your templates doesn't prevent you from
+ doing some configuration changes. Parameters can be passed to templates via
+ a `<project>.cfg` in your `builder/jjb/<project>` directory. An example is
+ provided below, others can be found in the repos of other projects. Tune as
+ necessary. Unnecessary paramaters can be removed or commented out with a "#"
+ sign.
  
      JOB_TEMPLATES: verify,merge,sonar
      STREAMS: