-Basic Job Configuration
------------------------
-
-To create jobs based on existing `templates <Jenkins Job Templates_>`_, use the
-`jjb-init-project.py`_ helper script. When run from the root of
-`RelEng/Builder's repo <releng-builder-repo_>`_, it will produce a file in
-`jjb/<project>/<project>.yaml` containing your project's base template.
-
-.. code-block:: bash
-
- $ 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 `jjb-init-project.py`_ script will
-contain the words `# REMOVE THIS LINE IF...`. Leaving this line will allow the
-RelEng/Builder `jjb-autoupdate-project.py`_ script 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.
-
-.. code-block:: yaml
-
- JOB_TEMPLATES: verify,merge,sonar
- STREAMS:
- - beryllium:
- branch: master
- jdks: openjdk7,openjdk8
- autorelease: true
- - stable-lithium:
- branch: stable/lithium
- jdks: openjdk7
- POM: dfapp/pom.xml
- MVN_GOALS: clean install javadoc:aggregate -DrepoBuild -Dmaven.repo.local=$WORKSPACE/.m2repo -Dorg.ops4j.pax.url.mvn.localRepository=$WORKSPACE/.m2repo
- MVN_OPTS: -Xmx1024m -XX:MaxPermSize=256m
- DEPENDENCIES: aaa,controller,yangtools
- ARCHIVE_ARTIFACTS: *.logs, *.patches
-
-.. note:: `STREAMS <streams-design-background_>`_ is a list of branches you want
- JJB to generate jobs for.
- The first branch will be the branch that reports Sonar analysis. Each
- branch must define a "jdks:" section listing the JDKs the verify jobs
- should run tests against for the branch. The first JDK listed will be
- used as the default JDK for non-verify type jobs.
-
-.. note:: Projects that are participating in the simultanious release should set
- "autorelease: true" under the streams they are participating in
- autorelease for. This enables a new job type validate-autorelease
- which is used to help identify if Gerrit patches might break
- autorelease or not.
-
-Advanced
-""""""""
-
-It is also possible to take advantage of both the auto-updater and creating
-your own jobs. To do this, create a YAML file in your project's sub-directory
-with any name other than \<project\>.yaml. The auto-update script will only
-search for files with the name \<project\>.yaml. The normal \<project\>.yaml
-file can then be left in tact with the "# REMOVE THIS LINE IF..." comment so
-it will be automatically updated.
-