X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fjenkins.rst;h=ef5e1462cdfc26b99a738708eb934b5658d8784b;hb=18cbfd14f4bda85b84c059373a9bd24e56954395;hp=25e5370f922310a886152e8906f3009194590286;hpb=c4f5571795775e56ec9bef76c40247c4c34cd755;p=releng%2Fbuilder.git diff --git a/docs/jenkins.rst b/docs/jenkins.rst index 25e5370f9..ef5e1462c 100644 --- a/docs/jenkins.rst +++ b/docs/jenkins.rst @@ -260,8 +260,8 @@ Pool: ODLVEX prd-centos7-autorelease-4c-16g Packer Template
releng/builder/packer/templates/builder.json - Spinup Script
- releng/builder/jenkins-scripts/builder.sh + Playbook
+ releng/builder/packer/common-packer/provision/baseline.yaml @@ -278,7 +278,7 @@ Pool: ODLVEX Minion Template names
centos7-robot-2c-2g Packer Template
releng/builder/packer/templates/robot.json - Spinup Script
releng/builder/jenkins-scripts/robot.sh + Playbook
releng/builder/packer/provision/robot.yaml @@ -292,27 +292,38 @@ Pool: ODLVEX - Jenkins Labels
ubuntu1404-mininet-2c-2g - Minion Template names
ubuntu1404-mininet-2c-2g - Packer Template
- releng/builder/packer/teamplates/mininet.json - Spinup Script
releng/builder/jenkins-scripts/mininet-ubuntu.sh + Jenkins Labels
ubuntu1604-mininet-ovs-25-2c-2g + Minion Template names
ubuntu1604-mininet-ovs-25-2c-2g + Packer Template
releng/builder/packer/templates/mininet-ovs-2.5.json + Playbook
releng/builder/packer/provision//mininet-ovs-2.5.yaml - Basic Ubuntu 14.04 (Trusty) system with ovs 2.0.2 and mininet 2.1.0 + Basic Ubuntu 16.04 (Xenial) system with ovs 2.5 and mininet 2.2.1 - Jenkins Labels
ubuntu1404-mininet-ovs-23-2c-2g - Minion Template names
ubuntu1404-mininet-ovs-23-2c-2g - Packer Template
releng/builder/packer/templates/mininet-ovs-2.3.json - Spinup Script
releng/builder/jenkins-scripts/mininet-ubuntu.sh + Jenkins Labels
ubuntu1604-mininet-ovs-26-2c-2g + Minion Template names
ubuntu1604-mininet-ovs-26-2c-2g + Packer Template
releng/builder/packer/templates/mininet-ovs-2.6.json + Playbook
releng/builder/packer/provision//mininet-ovs-2.6.yaml - Ubuntu 16.04 (Xenial) system with ovs 2.5 and mininet 2.2.1 + Ubuntu 16.04 (Xenial) system with ovs 2.6 and mininet 2.2.1 + + + + + Jenkins Labels
ubuntu1604-mininet-ovs-28-2c-2g + Minion Template names
ubuntu1604-mininet-ovs-28-2c-2g + Packer Template
releng/builder/packer/templates/mininet-ovs-2.8.json + Playbook
releng/builder/packer/provision//mininet-ovs-2.8.yaml + + + + Ubuntu 16.04 (Xenial) system with ovs 2.8 and mininet 2.2.1 @@ -320,7 +331,7 @@ Pool: ODLVEX Jenkins Labels
centos7-devstack-2c-4g Minion Template names
centos7-devstack-2c-4g Packer Template
releng/builder/packer/templates/devstack.json - Spinup Script
releng/builder/jenkins-scripts/devstack.sh + Playbook
releng/builder/packer/provision/devstack.yaml @@ -335,7 +346,7 @@ Pool: ODLVEX Jenkins Labels
centos7-docker-2c-4g Minion Template names
centos7-docker-2c-4g Packer Template
releng/builder/packer/templates/docker.json - Spinup Script
releng/builder/jenkins-scripts/docker.sh + Playbook
releng/builder/packer/common-packer/provision/docker.yaml @@ -347,22 +358,10 @@ Pool: ODLVEX - Jenkins Labels
ubuntu1404-gbp-2c-2g - Minion Template names
ubuntu1404-gbp-2c-2g + Jenkins Labels
ubuntu1604-gbp-2c-2g + Minion Template names
ubuntu1604-gbp-2c-2g Packer Template
releng/builder/packer/templates/gbp.json - Spinup Script
releng/builder/jenkins-scripts/ubuntu-docker-ovs.sh - - - - Ubuntu 14.04 (Trusty) node with latest OVS and docker installed. Used by Group Based Policy. - - - - - Jenkins Labels
ubuntu1604-gbp-2c-4g - Minion Template names
ubuntu1604-gbp-2c-4g - Packer Template
releng/builder/packer/templates/gbp.json - Spinup Script
releng/builder/jenkins-scripts/ubuntu-docker-ovs.sh + Spinup Script
releng/builder/jenkins-scripts/gpb.sh @@ -822,179 +821,31 @@ Maven Properties ---------------- We provide a properties which your job can take advantage of if you want to do -something different depending on the job type that is run. If you create a -profile that activates on a property listed blow. The JJB templated jobs will -be able to activate the profile during the build to run any custom code you -wish to run in your project. +trigger a different configuration depending on job type. You can create a +profile that activates on a property listed below. The JJB templated jobs will +activate the profile during the build to run any custom code configuration you +wish to run for this job type. .. code-block:: bash - -Dmerge : This flag is passed in our Merge job and is equivalent to the - Maven property - true. - -Dsonar : This flag is passed in our Sonar job and is equivalent to the - Maven property - true. + -Dmerge : The Merge job sets this flag and is the same as setting the + Maven property true. + -Dsonar : The Sonar job sets this flag and is the same as setting the + Maven property true. .. _odl-jenkins-sandbox: Jenkins Sandbox --------------- -The `jenkins-sandbox`_ instance's purpose is to allow projects to test their JJB -setups before merging their code over to the RelEng master silo. It is -configured similarly to the master instance, although it cannot publish -artifacts or vote in Gerrit. - -If your project requires access to the sandbox please open an OpenDaylight -Helpdesk ticket () and provide your ODL ID. - -Notes Regarding the Sandbox -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Jobs are automatically deleted every Saturday at 08:00 UTC -* Committers can login and configure Jenkins jobs in the sandbox directly - (unlike with the master silo) -* Sandbox configuration mirrors the master silo when possible -* Sandbox jobs can NOT upload artifacts to Nexus -* Sandbox jobs can NOT vote on Gerrit - -Configuration -^^^^^^^^^^^^^ - -Make sure you have Jenkins Job Builder [properly installed](#jjb_install). - -If you do not already have access, open an OpenDaylight Helpdesk ticket -() to request access to ODL's sandbox instance. -Integration/Test (`integration-test-wiki`_) committers have access by default. - -JJB reads user-specific configuration from a `jenkins.ini`_. An -example is provided by releng/builder at `example-jenkins.ini`_. - -.. code-block:: bash - - # If you don't have RelEng/Builder's repo, clone it - $ git clone --recursive https://git.opendaylight.org/gerrit/p/releng/builder.git - # Make a copy of the example JJB config file (in the builder/ directory) - $ cp jenkins.ini.example jenkins.ini - # Edit jenkins.ini with your username, API token and ODL's sandbox URL - $ cat jenkins.ini - - [jenkins] - user= - password= - url=https://jenkins.opendaylight.org/sandbox - - -To get your API token, `login to the Jenkins **sandbox** instance -`_ (*not -the main master Jenkins instance, different tokens*), go to your user page (by -clicking on your username, for example), click "Configure" and then "Show API -Token". - -Manual Method -^^^^^^^^^^^^^ - -If you `installed JJB locally into a virtual environment -`_, -you should now activate that virtual environment to access the `jenkins-jobs` -executable. - -.. code-block:: bash - - $ workon jjb - (jjb)$ - -You'll want to work from the root of the RelEng/Builder repo, and you should -have your `jenkins.ini` file [properly configured](#sandbox_config). - -Testing Jobs -^^^^^^^^^^^^ - -It's good practice to use the `test` command to validate your JJB files before -pushing them. - -.. code-block:: bash - - jenkins-jobs --conf jenkins.ini test jjb/ - -If the job you'd like to test is a template with variables in its name, it -must be manually expanded before use. For example, the commonly used template -`{project}-csit-verify-1node-{functionality}` might expand to -`ovsdb-csit-verify-1node-netvirt`. - -.. code-block:: bash - - jenkins-jobs --conf jenkins.ini test jjb/ ovsdb-csit-verify-1node-netvirt - -Successful tests output the XML description of the Jenkins job described by -the specified JJB job name. - -Pushing Jobs -^^^^^^^^^^^^ - -Once you've `configured your \`jenkins.ini\` `_ and `verified your -JJB jobs `_ produce valid XML descriptions of Jenkins jobs you -can push them to the Jenkins sandbox. - -.. important:: - - When pushing with `jenkins-jobs`, a log message with the number - of jobs you're pushing will be issued, typically to stdout. - **If the number is greater than 1** (or the number of jobs you - passed to the command to push) then you are pushing too many - jobs and should **`ctrl+c` to cancel the upload**. Else you will - flood the system with jobs. - - .. code-block:: bash - - INFO:jenkins_jobs.builder:Number of jobs generated: 1 - - **Failing to provide the final `` param will push all - jobs!** - - .. code-block:: bash - - # Don't push all jobs by omitting the final param! (ctrl+c to abort) - jenkins-jobs --conf jenkins.ini update 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 -based upon. Meaning, if your patch is changing something related to the job you are -pushing, those changes will exist in the sandbox job. The format of the comment is:: - - jjb-deploy - -.. note:: - - Also note that wildcards can be used in which - will expand all jobs that exist for the pattern. - -Running Jobs -^^^^^^^^^^^^ - -Once you have your Jenkins job configuration `pushed to the -Sandbox `_ you can trigger it to run. - -Find your newly-pushed job on the `Sandbox's web UI `_. Click -on its name to see the job's details. - -Make sure you're `logged in `_ to the Sandbox. - -Click "Build with Parameters" and then "Build". - -Wait for your job to be scheduled and run. Click on the job number to see -details, including console output. - -Make changes to your JJB configuration, re-test, re-push and re-run until -your job is ready. +URL: https://jenkins.opendaylight.org/sandbox +Jenkins Sandbox documentation is available in the +:doc:`LF Jenkins Sandbox Guide `. .. _example-jenkins.ini: https://git.opendaylight.org/gerrit/gitweb?p=releng/builder.git;a=blob;f=jenkins.ini.example .. _integration-test-wiki: https://wiki.opendaylight.org/view/Integration/Test .. _jenkins-master: https://jenkins.opendaylight.org/releng -.. _jenkins-sandbox: https://jenkins.opendaylight.org/sandbox -.. _jenkins-sandbox-login: https://jenkins.opendaylight.org/sandbox/login .. _jenkins.ini: http://docs.openstack.org/infra/jenkins-job-builder/execution.html#configuration-file .. _jjb-autoupdate-project.py: https://git.opendaylight.org/gerrit/gitweb?p=releng/builder.git;a=blob;f=scripts/jjb-autoupdate-project.py .. _jjb-docs: http://ci.openstack.org/jenkins-job-builder/