X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fjenkins.rst;h=ac10adcf2323386c52acc19a8b114be257fdb177;hb=18cbfd14f4bda85b84c059373a9bd24e56954395;hp=8e89d67ab33477196aee806f046ae79c6ac82cf3;hpb=72bc108a3235fe8d496ff3bfbc97d2579c0179ea;p=releng%2Fbuilder.git diff --git a/docs/jenkins.rst b/docs/jenkins.rst index 8e89d67ab..ef5e1462c 100644 --- a/docs/jenkins.rst +++ b/docs/jenkins.rst @@ -1,3 +1,5 @@ +.. _odl-jenkins: + Jenkins ======= @@ -27,24 +29,31 @@ in the jenkins-master_ silo and this can be achieved by simply creating a .. code-block:: bash - git clone https://git.opendaylight.org/gerrit/releng/builder + git clone --recursive https://git.opendaylight.org/gerrit/releng/builder cd builder mkdir jjb/ +.. note: + + releng/global-jjb is a submodule of releng/builder repository which + requires a git submodule update --init or using --recursive with git clone. + `releng-global-jjb`_ + Where should be the same name as your project's git repo in -Gerrit. So if your project is called "aaa" then create a new jjb/aaa directory. +Gerrit. If your project is called "aaa" then create a new jjb/aaa directory. Next we will create .yaml as follows: .. code-block:: yaml + --- - project: name: -carbon jobs: - - '{project-name}-clm-{stream}' - - '{project-name}-integration-{stream}' - - '{project-name}-merge-{stream}' - - '{project-name}-verify-{stream}-{maven}-{jdks}' + - '{project-name}-clm-{stream}' + - '{project-name}-integration-{stream}' + - '{project-name}-merge-{stream}' + - '{project-name}-verify-{stream}-{maven}-{jdks}' project: '' project-name: '' @@ -52,10 +61,10 @@ Next we will create .yaml as follows: branch: 'master' jdk: openjdk8 jdks: - - openjdk8 + - openjdk8 maven: - - mvn33: - mvn-version: 'mvn33' + - mvn33: + mvn-version: 'mvn33' mvn-settings: '-settings' mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' @@ -66,7 +75,7 @@ Next we will create .yaml as follows: - project: name: -sonar jobs: - - '{project-name}-sonar' + - '{project-name}-sonar' project: '' project-name: '' @@ -162,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 @@ -181,31 +190,85 @@ time for every job which runs on the image. After all of these scripts have executed Jenkins will finally attach the minion as an actual minion and start handling jobs on it. -Pool: ODLRPC +Flavors +^^^^^^^ + +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 + + * - Instance Type + - CPUs + - Memory + + * - odl-standard-1 + - 1 + - 4 + + * - odl-standard-2 + - 2 + - 8 + + * - odl-standard-4 + - 4 + - 16 + + * - odl-standard-8 + - 8 + - 32 + + * - odl-standard-16 + - 16 + - 64 + + * - odl-highcpu-2 + - 2 + - 2 + + * - odl-highcpu-4 + - 4 + - 4 + + * - odl-highcpu-8 + - 8 + - 8 + +Pool: ODLVEX ^^^^^^^^^^^^ .. raw:: html - - + + - + releng/builder/packer/templates/builder.json + @@ -215,11 +278,11 @@ Pool: ODLRPC - + - - - - + + + + - - - - + + + + - - - - + + + + @@ -271,11 +331,11 @@ Pool: ODLRPC - + - + - - + + - + +
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
Playbook
+ releng/builder/packer/common-packer/provision/baseline.yaml
- A CentOS 7 build minion. This system has OpenJDK 1.7 (Java7) and OpenJDK - 1.8 (Java8) installed on it along with all the other components and - libraries needed for building any current OpenDaylight project. This is - the label that is used for all basic verify, merge and daily builds for + CentOS 7 build minion configured with OpenJDK 1.7 (Java7) and OpenJDK + 1.8 (Java8) along with all the other components and libraries needed + for building any current OpenDaylight project. This is the label that + is used for all basic verify, merge and daily builds for projects.
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
- A CentOS 7 minion that is configured with OpenJDK 1.7 (Java7), OpenJDK + CentOS 7 minion configured with OpenJDK 1.7 (Java7), OpenJDK 1.8 (Java8) and all the current packages used by the integration project for doing robot driven jobs. If you are executing robot framework jobs then your job should be using this as the minion that @@ -229,41 +292,38 @@ Pool: ODLRPC
Jenkins Labels
ubuntu_mininet, ubuntu-trusty-mininet-2c-2g
Minion Template names
ubuntu-trusty-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 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
ubuntu_mininet_ovs_23, - ubuntu-trusty-mininet-ovs-23-2c-2g
Minion Template names
ubuntu-trusty-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
- Basic Ubuntu system with ovs 2.3 and mininet 2.2.1 + Ubuntu 16.04 (Xenial) system with ovs 2.6 and mininet 2.2.1
Jenkins Labels
ubuntu_mininet_ovs_25, - ubuntu-trusty-mininet-ovs-25-2c-2g
Minion Template names
ubuntu-trusty-mininet-ovs-25-2c-2g
Packer Template
releng/builder/packer/templates/mininet-ovs-2.5.json
Spinup Script
releng/builder/jenkins-scripts/mininet-ubuntu.sh
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
- Basic Ubuntu system with ovs 2.5 and mininet 2.2.2 + Ubuntu 16.04 (Xenial) system with ovs 2.8 and mininet 2.2.1
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
- A CentOS 7 system purpose built for doing OpenStack testing using + CentOS 7 system purpose built for doing OpenStack testing using DevStack. This minion is primarily targeted at the needs of the OVSDB project. It has OpenJDK 1.7 (aka Java7) and OpenJDK 1.8 (Java8) and other basic DevStack related bits installed. @@ -286,11 +346,11 @@ Pool: ODLRPC 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
- A CentOS 7 system that is configured with OpenJDK 1.7 (aka Java7), + CentOS 7 system configured with OpenJDK 1.7 (aka Java7), OpenJDK 1.8 (Java8) and Docker. This system was originally custom built for the test needs of the OVSDB project but other projects have expressed interest in using it. @@ -298,19 +358,20 @@ Pool: ODLRPC
Jenkins Labels
gbp_trusty, ubuntu-trusty-gbp-2c-2g
Minion Template names
ubuntu-trusty-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
Spinup Script
releng/builder/jenkins-scripts/gpb.sh
- A basic Ubuntu node with latest OVS and docker installed. Used by Group Based Policy. + Ubuntu 16.04 (Xenial) node with latest OVS and docker installed. Used by Group Based Policy.
-Pool: ODLPUB - HOT (Heat Orchestration Templates) +Pool: ODLVEX - HOT (Heat Orchestration Templates) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ HOT integration enables to spin up integration labs servers for CSIT jobs @@ -319,10 +380,6 @@ on the project specific job templates using the variable `{odl,docker,openstack,tools}_system_image` followed by image name in the format ` -