X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fjenkins.rst;h=812f29b3412c85a1af62b30881f810b4d072824c;hb=524848efcf8d06ccf19d966e3eb94913cbc78507;hp=12a699fd2778216e52edf707da47bd44dd4bc506;hpb=ce8c93af3b25f5716fe5aaf26a4a87e43bb18fba;p=releng%2Fbuilder.git diff --git a/docs/jenkins.rst b/docs/jenkins.rst index 12a699fd2..812f29b34 100644 --- a/docs/jenkins.rst +++ b/docs/jenkins.rst @@ -1,3 +1,5 @@ +.. _odl-jenkins: + Jenkins ======= @@ -169,9 +171,9 @@ triggered by verify-packer and merge-packer jobs. Please note that the combination of a Packer definitions from `vars`, `templates` and the `provision` scripts is what defines a given minion. For instance, a minion -may be defined as `centos7-java-builder` which is a combination of Packer OS image +may be defined as `centos7-builder` which is a combination of Packer OS image definitions from `vars/centos.json`, Packer template definitions from -`templates/java-buidler.json` and spinup scripts from `provision/java-builder.sh`. +`templates/builder.json` and spinup scripts from `provision/builder.sh`. This combination provides the full definition of the realized minion. Jenkins starts a minion using the latest image which is built and linked into the @@ -195,33 +197,45 @@ Performance flavors come with dedicated CPUs and are not shared with other accounts in the cloud so should ensure consistent performance. .. list-table:: Flavors - :widths: auto" - :header-rows: 1" + :widths: auto + :header-rows: 1 * - Instance Type - CPUs - Memory - * - v1-performance-1 + * - odl-standard-1 - 1 - 4 - * - v1-performance-2 + * - odl-standard-2 - 2 - 8 - * - v1-performance-4 + * - odl-standard-4 - 4 - 16 - * - v1-performance-8 + * - odl-standard-8 - 8 - 32 - * - v1-performance-16 + * - odl-standard-16 - 16 - 64 + * - odl-highcpu-2 + - 2 + - 2 + + * - odl-highcpu-4 + - 4 + - 4 + + * - odl-highcpu-8 + - 8 + - 8 + Pool: ODLVEX ^^^^^^^^^^^^ @@ -229,15 +243,23 @@ Pool: ODLVEX - - + + + releng/builder/packer/templates/builder.json @@ -505,6 +527,29 @@ To install from a tag, like 1.4.0: $ cat jjb/requirements.txt -e git+https://git.openstack.org/openstack-infra/jenkins-job-builder@1.4.0#egg=jenkins-job-builder +Updating releng/builder repo or global-jjb +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Follow these steps to update the releng/builder repo. The repo uses a submodule from +a global-jjb repo so that common source can be shared across different projects. This +requires updating the releng/builder repo periodically to pick up the changes. New +versions of jjb could also require updating the releng/builder repo. Follow the +previous steps earlier for updating jenkins-jobs using the +`builder/jjb/requirements.txt `_ file. Ensure that the +version listed in the file is the currently supported version, otherwise install a +different version or simply upgrade using `pip install --upgrade jenkins-job-builder`. + +The example below assumes the user has cloned releng/builder to `~/git/releng/builder`. +Update the repo, update the submodules and then submit a test to verify it works. + +.. code-block:: bash + + cd ~/git/releng/builder + git checkout master + git pull + git submodule update --init --recursive + jenkins-jobs --conf jenkins.ini test jjb/ netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine + Installing JJB Manually ----------------------- @@ -713,15 +758,6 @@ TODO: Document test-{project}-{feature} and test-{project}-all. - - - - - - - - @@ -753,6 +789,33 @@ TODO: Document test-{project}-{feature} and test-{project}-all. + + + + + + + + +
Jenkins Labels
centos7-java-builder-2c-4g, - centos7-java-builder-2c-8g, centos7-java-builder-4c-8g, - centos7-java-builder-8c-8g, centos7-java-builder-4c-16g
Minion Template names
centos7-java-builder-2c-4g, - centos7-java-builder-2c-4g, centos7-java-builder-2c-8g, - centos7-java-builder-4c-8g, centos7-java-builder-8c-8g, - centos7-java-builder-4c-16g
Jenkins Labels
+ centos7-builder-2c-1g,
+ centos7-builder-2c-2g,
+ centos7-builder-2c-8g,
+ centos7-builder-4c-4g,
+ centos7-builder-8c-8g,
+ centos7-autorelease-4c-16g +
Minion Template names
+ prd-centos7-builder-2c-1g,
+ prd-centos7-builder-2c-2g,
+ prd-centos7-builder-2c-8g,
+ prd-centos7-builder-4c-4g,
+ prd-centos7-builder-8c-8g,
+ prd-centos7-autorelease-4c-16g
Packer Template
- releng/builder/packer/templates/java-builder.json
Spinup Script
releng/builder/jenkins-scripts/builder.sh
Job Template
integration-patch-test-{stream}
Gerrit Trigger
test-integration
-
Job Template
integration-patch-test-{stream}
Gerrit Trigger
test-integration
Job Template
integration-multipatch-test-{stream}
Gerrit Trigger
multipatch-build
+ This job builds a list of patches provided in an specific order, and finally builds + a distribution from either provided patch or latest code in branch. + For example if someone leaves the following comment in a patch: + multipatch-build:controller=61/29761/5:45/29645/6,neutron=51/65551/4,netvirt:59/60259/17 + the job will checkout controller patch 61/29761/5, cherry-pick 45/29645/6 and build controller, + checkout neutron patch 51/65551/4 and build neutron, checkout latest netvirt code, + cherry-pick 59/60259/17 and build netvirt, finally it will checkout latest distribution + code and build a distribution. The resulting distribution is stored in Nexus and the URL + is stored in a variable called BUNDLE_URL visible in the job console. + This job also accepts a gerrit topic, for example: multipatch-build:topic=binding-tlc-rpc, + in this case the job will find all patches in the topic binding-tlc-rpc for the projects + specified in the BUILD_ORDER parameter and will build all projects from the first a patch + has been found, for successive projects the branch HEAD is used if no patch is found. + The job uses patch numbers to sort patches in the same project. + Use multipatch-build-fast (vs multipatch-build) for building projects fast (-Pq). + This job should not alter Gerrit votes for a given patch, nor will do anything with the + given patch unless the patch is added to the build list. +
Maven Properties @@ -773,6 +836,8 @@ wish to run in your project. Maven property true. +.. _odl-jenkins-sandbox: + Jenkins Sandbox --------------- @@ -815,6 +880,9 @@ example is provided by releng/builder at `example-jenkins.ini`_. # Edit jenkins.ini with your username, API token and ODL's sandbox URL $ cat jenkins.ini + [job_builder] + retain_anchors=True + [jenkins] user= password= @@ -872,6 +940,9 @@ Once you've `configured your \`jenkins.ini\` `_ and `verified yo JJB jobs `_ produce valid XML descriptions of Jenkins jobs you can push them to the Jenkins sandbox. +Add the --jobs-only (-j) option to push only jobs to Jenkins sandbox. Pushing +views to Jenkins sandbox requires admin access. + .. important:: When pushing with `jenkins-jobs`, a log message with the number @@ -891,7 +962,7 @@ can push them to the Jenkins sandbox. .. code-block:: bash # Don't push all jobs by omitting the final param! (ctrl+c to abort) - jenkins-jobs --conf jenkins.ini update jjb/ + jenkins-jobs --conf jenkins.ini update -j jjb/ Alternatively, you can push a job to the Jenkins sandbox with a special comment in a releng/builder gerrit patch. The job will be based off of the code your patch is @@ -900,6 +971,11 @@ pushing, those changes will exist in the sandbox job. The format of the comment jjb-deploy +.. note:: + + Also note that wildcards can be used in which + will expand all jobs that exist for the pattern. + Running Jobs ^^^^^^^^^^^^