X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fjenkins.rst;h=a835bd1f124a835665e833b15fc0f7785b2d8b93;hb=6737d651d0b72d9f2a4a127bee152da831d0a917;hp=6cb6585836fda784667c9043e242171356972763;hpb=ebe737ff767751b562b36673d94a568dfc361341;p=releng%2Fbuilder.git diff --git a/docs/jenkins.rst b/docs/jenkins.rst index 6cb658583..a835bd1f1 100644 --- a/docs/jenkins.rst +++ b/docs/jenkins.rst @@ -204,50 +204,34 @@ accounts in the cloud so should ensure consistent performance. - CPUs - Memory - * - v2-standard-1 - - 1 - - 4 - - * - v2-standard-2 + * - v3-standard-2 - 2 - 8 - * - v2-standard-4 + * - v3-standard-4 - 4 - 16 - * - v2-standard-8 + * - v3-standard-8 - 8 - 32 - * - v2-standard-16 + * - v3-standard-16 - 16 - 64 - * - v2-highcpu-1 - - 1 - - 1 - - * - v2-highcpu-2 + * - odl-highcpu-2 - 2 - 2 - * - v2-highcpu-4 + * - odl-highcpu-4 - 4 - 4 - * - v2-highcpu-8 + * - odl-highcpu-8 - 8 - 8 - * - v2-highcpu-16 - - 16 - - 16 - - * - v2-highcpu-32 - - 32 - - 32 - Pool: ODLVEX ^^^^^^^^^^^^ @@ -272,8 +256,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 @@ -290,7 +274,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 @@ -304,27 +288,14 @@ 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
ubuntu1804-mininet-ovs-28-2c-2g + Minion Template names
ubuntu1804-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 - Basic Ubuntu 14.04 (Trusty) system with ovs 2.0.2 and mininet 2.1.0 - - - - - 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 - - - - Ubuntu 16.04 (Xenial) system with ovs 2.5 and mininet 2.2.1 + Ubuntu 18.04 (Bionic Beaver) system with ovs 2.8 @@ -332,7 +303,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 @@ -347,7 +318,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 @@ -358,30 +329,6 @@ Pool: ODLVEX - - Jenkins Labels
ubuntu1404-gbp-2c-2g - Minion Template names
ubuntu1404-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 - - - - Ubuntu 16.04 (Xenial) node with latest OVS and docker installed. Used by Group Based Policy. - - - Pool: ODLVEX - HOT (Heat Orchestration Templates) @@ -817,6 +764,12 @@ TODO: Document test-{project}-{feature} and test-{project}-all. 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. @@ -828,196 +781,48 @@ 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/ .. _jjb-init-project.py: https://git.opendaylight.org/gerrit/gitweb?p=releng/builder.git;a=blob;f=scripts/jjb-init-project.py .. _jjb-repo: https://github.com/openstack-infra/jenkins-job-builder -.. _jjb-requirements.txt: https://github.com/openstack-infra/jenkins-job-builder/blob/master/requirements.txt +.. _jjb-requirements.txt: https://opendev.org/jjb/jenkins-job-builder/raw/branch/master/requirements.txt .. _jjb-templates: https://git.opendaylight.org/gerrit/gitweb?p=releng/builder.git;a=tree;f=jjb -.. _odl-jjb-requirements.txt: https://git.opendaylight.org/gerrit/gitweb?p=releng/builder.git;a=blob;f=jjb/requirements.txt +.. _odl-jjb-requirements.txt: https://gerrit.linuxfoundation.org/infra/gitweb?p=releng/global-jjb.git;a=blob;f=requirements.txt; .. _odl-nexus: https://nexus.opendaylight.org .. _odl-sonar: https://sonar.opendaylight.org .. _python-virtualenv: https://virtualenv.readthedocs.org/en/latest/ .. _python-virtualenvwrapper: https://virtualenvwrapper.readthedocs.org/en/latest/ -.. _releng-wiki: https://wiki.opendaylight.org/view/RelEng:Main -.. _releng-builder-gerrit: https://git.opendaylight.org/gerrit/#/admin/projects/releng/builder +.. _releng-wiki: https://docs.releng.linuxfoundation.org/en/latest/ +.. _releng-builder-gerrit: https://git.opendaylight.org/gerrit/admin/repos/releng%2Fbuilder .. _releng-builder-repo: https://git.opendaylight.org/gerrit/gitweb?p=releng%2Fbuilder.git;a=summary .. _releng-global-jjb: https://gerrit.linuxfoundation.org/infra/#/q/project:releng/global-jjb -.. _releng-builder-wiki: https://wiki.opendaylight.org/view/RelEng/Builder +.. _releng-builder-wiki: https://wiki.opendaylight.org/pages/viewpage.action?pageId=329336 .. _streams-design-background: https://lists.opendaylight.org/pipermail/release/2015-July/003139.html .. _spinup-scripts: https://git.opendaylight.org/gerrit/gitweb?p=releng/builder.git;a=tree;f=jenkins-scripts .. _spinup-scripts-basic_settings.sh: https://git.opendaylight.org/gerrit/gitweb?p=releng/builder.git;a=blob;f=jenkins-scripts/basic_settings.sh