New Project Quick Start
-----------------------
-.. note::
-
- We will be revamping releng/builder in the near future to simplify
- the below process.
-
This section attempts to provide details on how to get going as a new project
quickly with minimal steps. The rest of the guide should be read and understood
by those who need to create and contribute new job types that is not already
covered by the existing job templates provided by OpenDaylight's JJB repo.
As a new project you will be mainly interested in getting your jobs to appear
-in the jenkins-master_ silo and this can be achieved by simply creating 2 files
-project.cfg and project.yaml in the releng/builder project's jjb directory.
+in the jenkins-master_ silo and this can be achieved by simply creating a
+<project>.yaml in the releng/builder project's jjb directory.
.. code-block:: bash
Next we will create <new-project>.yaml as follows:
- # REMOVE THIS LINE IF YOU WANT TO CUSTOMIZE ANYTHING BELOW
-
-That's right all you need is the above comment in this file. Jenkins will
-automatically regenerate this file when your patch is merged so we do not need
-to do anything special here.
-
-Next we will create <new-project>.cfg as follows:
-
-.. code-block:: yaml
-
- STREAMS:
- - boron:
- branch: master
- jdks: openjdk8
- DEPENDENCIES: odlparent,controller,yangtools
-
-This is the minimal required CFG file contents and is used to auto-generate the
-YAML file. If you'd like to explore the additional tweaking options available
-please refer to the `Tuning Templates`_ section.
+ - project:
+ name: <NEW_PROJECT>-carbon
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ project: '<NEW_PROJECT>'
+ project-name: '<NEW_PROJECT>'
+ stream: carbon
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: '<NEW_PROJECT>-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[<NEW_PROJECT>] [odlparent] [yangtools] [controller]'
+ archive-artifacts: ''
+
+ - project:
+ name: <NEW_PROJECT>-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: '<NEW_PROJECT>'
+ project-name: '<NEW_PROJECT>'
+ branch: 'master'
+ mvn-settings: '<NEW_PROJECT>-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+
+Replace all instances of <new-project> with the name of your project. This will
+create the jobs with the default job types we recommend for Java projects. If
+your project is participating in the simultanious-release and ultimately will
+be included in the final distribution. We recommend adding the following job
+types into the job list for the release you are participating.
+
+ '{project-name}-distribution-check-{stream}'
+ '{project-name}-validate-autorelease-{stream}'
+
+If you'd like to explore the additional tweaking options available
+please refer to the `Jenkins Job Templates`_ section.
Finally we need to push these files to Gerrit for review by the releng/builder
team to push your jobs to Jenkins.
<td><b>Job Template</b><br/>{project}-verify-{stream}</td>
<td><b>Gerrit Trigger</b><br/>recheck | reverify</td>
</tr>
+ <tr>
+ <td colspan="2">
+ <b>(deprecated)</b>
+ The Verify job template creates a Gerrit Trigger job that will
+ trigger when a new patch is submitted to Gerrit.
+ </td>
+ </tr>
+
+ <tr class="warning">
+ <td><b>Job Template</b><br/>{project}-verify-{stream}-{maven}-{jdks}</td>
+ <td><b>Gerrit Trigger</b><br/>recheck | reverify</td>
+ </tr>
<tr>
<td colspan="2">
The Verify job template creates a Gerrit Trigger job that will
</tr>
</table>
-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.
-
Maven Properties
----------------
# disable the firewall
/bin/bash ./disable_firewall.sh
+# Make sure apt-get database is up-to-date
+apt-get update -y --force-yes -qq
+
# Install vlan for vlan based tests in VTN suites
apt-get install -y --force-yes -qq vlan
+++ /dev/null
-# ODL Releng build templates
-- project:
- name: PROJECT_SHORTNAME
- jobs:
- - '{name}-clm-{stream}'
- - '{name}-distribution-{stream}'
- - '{name}-distribution-check-{stream}'
- - '{name}-integration-{stream}'
- - '{name}-merge-{stream}'
- - '{name}-periodic-{stream}'
- - '{name}-sonar'
- - '{name}-validate-autorelease-{stream}'
- - '{name}-verify-{stream}'
-
- # stream: release stream (eg. stable-lithium or beryllium)
- # branch: git branch (eg. stable/lithium or master)
- STREAMS
- project: 'PROJECT_PATH'
- mvn-settings: 'JENKINS_SETTINGS'
- mvn-goals: 'MAVEN_GOALS'
- mvn-opts: 'MAVEN_OPTS'
- dependencies: 'DEPENDENCIES'
- email-upstream: 'EMAIL_PREFIX'
- archive-artifacts: 'ARCHIVE_ARTIFACTS'
-# ODL Releng build templates
- project:
- name: alto
+ name: alto-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+
+ project: 'alto'
+ project-name: 'alto'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'alto-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'l2switch-merge-{stream}'
+ email-upstream: '[alto] [l2switch]'
+ archive-artifacts: ''
+
+- project:
+ name: alto-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+
+ project: 'alto'
+ project-name: 'alto'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'alto-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'l2switch-merge-{stream}'
+ email-upstream: '[alto] [l2switch]'
+ archive-artifacts: ''
+
+- project:
+ name: alto-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
project: 'alto'
project-name: 'alto'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'alto-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'l2switch-merge-{stream}'
email-upstream: '[alto] [l2switch]'
archive-artifacts: ''
+
+- project:
+ name: alto-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: 'alto'
+ project-name: 'alto'
+ branch: 'master'
+ mvn-settings: 'alto-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
name: 'autorelease-release-{stream}'
project-type: maven
- node: centos7-autorelease-2c-16g
+ node: centos7-autorelease-4c-16g
jdk: '{jdk}'
logrotate:
schedule: 'H H * * *'
# Controller configuration
- controller-image: 'centos7-java-8g'
+ controller-image: 'centos7-java-builder-2c-8g'
- project:
name: bgpcep-csit-bgp-ingest-mixed
schedule: 'H H * * *'
# Controller configuration
- controller-image: 'centos7-java-8g'
+ controller-image: 'centos7-java-builder-2c-8g'
# Plot Info
01-plot-title: 'Number of generated updates'
# Trigger jobs: (daily)
schedule: 'H H * * *'
+
+ # Controller configuration
+ controller-image: 'centos7-java-builder-4c-8g'
# so the job is defined to run once a day.
# Trigger jobs: (daily)
schedule: 'H H * * *'
+
+ # Controller configuration
+ controller-image: 'centos7-java-builder-2c-8g'
# branch: git branch (eg. stable/lithium or master)
stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
-# ODL Releng build templates
- project:
- name: cardinal
+ name: cardinal-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
project: 'cardinal'
project-name: 'cardinal'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'cardinal-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'openflowplugin-merge-{stream},iotdm-merge-{stream},sfc-merge-{stream}'
email-upstream: '[cardinal] [openflowplugin] [iotdm] [sfc]'
archive-artifacts: ''
+
+- project:
+ name: cardinal-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: 'cardinal'
+ project-name: 'cardinal'
+ branch: 'master'
+ mvn-settings: 'cardinal-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-# ODL Releng build templates
- project:
- name: centinel
+ name: centinel-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+
+ project: 'centinel'
+ project-name: 'centinel'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'centinel-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[centinel]'
+ archive-artifacts: ''
+
+- project:
+ name: centinel-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
project: 'centinel'
project-name: 'centinel'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'centinel-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
email-upstream: '[centinel]'
archive-artifacts: ''
+
+- project:
+ name: centinel-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: 'centinel'
+ project-name: 'centinel'
+ branch: master
+ mvn-settings: 'centinel-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-# ODL Releng build templates
- project:
- name: coretutorials
+ name: coretutorials-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: True
disable_distribution_check: False
+
+ project: 'coretutorials'
+ project-name: 'coretutorials'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'coretutorials-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[coretutorials]'
+ archive-artifacts: ''
+
+- project:
+ name: coretutorials-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: False
+
+ project: 'coretutorials'
+ project-name: 'coretutorials'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'coretutorials-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[coretutorials]'
+ archive-artifacts: ''
+
+- project:
+ name: coretutorials-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
project: 'coretutorials'
project-name: 'coretutorials'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'coretutorials-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
email-upstream: '[coretutorials]'
archive-artifacts: ''
+
+- project:
+ name: coretutorials-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: 'coretutorials'
+ project-name: 'coretutorials'
+ branch: master
+ mvn-settings: 'coretutorials-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: docs
+ name: docs-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: True
+ project: 'docs'
+ project-name: 'docs'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'docs-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream}'
+ email-upstream: '[docs] [odlparent]'
+ archive-artifacts: ''
+
+- project:
+ name: docs-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: True
+ project: 'docs'
+ project-name: 'docs'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'docs-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream}'
+ email-upstream: '[docs] [odlparent]'
+ archive-artifacts: ''
+
+- project:
+ name: docs-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
-
project: 'docs'
project-name: 'docs'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'docs-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream}'
email-upstream: '[docs] [odlparent]'
archive-artifacts: ''
+
+- project:
+ name: docs-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'docs'
+ project-name: 'docs'
+ branch: 'master'
+ mvn-settings: 'docs-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
--- /dev/null
+- project:
+ name: groupbasedpolicy-csit-openstack-integration
+ jobs:
+ - '{project}-csit-1node-openstack-{openstack}-{functionality}-{stream}'
+
+ # The project name
+ project: 'groupbasedpolicy'
+
+ # The project name
+ functionality: 'openstack'
+
+ stream:
+ - boron:
+ branch: 'master'
+ jre: 'openjdk8'
+ install-features: 'odl-groupbasedpolicy-neutron-and-ofoverlay,odl-restconf'
+ - beryllium:
+ branch: 'stable/beryllium'
+ jre: 'openjdk7'
+ install-features: 'odl-groupbasedpolicy-neutronmapper,odl-restconf'
+
+ openstack:
+ - mitaka:
+ openstack-branch: 'stable/mitaka'
+ odl-ml2-version: 'stable/mitaka'
+ - liberty:
+ openstack-branch: 'stable/liberty'
+ odl-ml2-version: 'stable/liberty'
+
+ openstack-vms: 1
+
+ schedule: 'H H * * *'
+
+ odl-enable-l3: 'yes'
+
+ public-bridge: 'br-int'
+
+ enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
+
+ disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
+
+ tenant-network-type: 'vxlan'
if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
cat >> ${local_conf_file_name} << EOF
-ODL_PROVIDER_MAPPINGS=br-ex:br100
+PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
+ODL_PROVIDER_MAPPINGS=${PUBLIC_BRIDGE}:br100
disable_service q-l3
Q_L3_ENABLED=True
-v DEVSTACK_DEPLOY_PATH:/opt/stack/devstack -v USER_HOME:${HOME} ${TESTOPTIONS} ${SUITES} || true
echo "Tests Executed"
+DEVSTACK_TEMPEST_DIR="/opt/stack/tempest"
+ssh ${OPENSTACK_CONTROL_NODE_IP} "sudo sh -c '${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/subunit-1to2 < ${DEVSTACK_TEMPEST_DIR}/.testrepository/0 > ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt'"
+ssh ${OPENSTACK_CONTROL_NODE_IP} "sudo sh -c '${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/python ${DEVSTACK_TEMPEST_DIR}/.tox/tempest/lib/python2.7/site-packages/os_testr/subunit2html.py ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt ${DEVSTACK_TEMPEST_DIR}/tempest_results.html'"
+scp ${OPENSTACK_CONTROL_NODE_IP}:${DEVSTACK_TEMPEST_DIR}/tempest_results.html ${WORKSPACE}/
collect_logs_and_exit
true # perhaps Jenkins is testing last exit code
# Modules for longevity framework robot library
pip install elasticsearch==1.7.0 elasticsearch-dsl==0.0.11
+# Module for pyangbind used by lispflowmapping project
+pip install pyangbind==0.5.6
+
# Print installed versions.
pip freeze
triggers:
- timed: 'H H * * *'
+# Macro: integration-jclouds-controller-mininet
+# Operation: this macro will spin the controller and mininet vms
+# Used by: {project}-csit-* job templates
+
+- wrapper:
+ name: integration-jclouds-controller-mininet
+ wrappers:
+ - jclouds:
+ instances:
+ - '{controller-image}':
+ cloud-name: 'ODLPUB'
+ count: '{controller-vms}'
+ - '{mininet-image}':
+ cloud-name: 'ODLPUB'
+ count: '{mininet-vms}'
+
# Macro: integration-openstack-controller-mininet
# Operation: this macro will spin the controller and mininet vms
# Used by: {project}-csit-* job templates
template-name: '{mininet-image}'
count: '{mininet-vms}'
+# Macro: integration-jclouds-controller-devstack
+# Operation: this macro will spin the controller and devstack vms
+# Used by: {project}-csit-openstack job templates
+- wrapper:
+ name: integration-jclouds-controller-devstack
+ wrappers:
+ - jclouds:
+ instances:
+ - '{controller-image}':
+ cloud-name: 'ODLPUB'
+ count: '{controller-vms}'
+ - '{openstack-image}':
+ cloud-name: 'ODLPUB'
+ count: '{openstack-vms}'
+
# Macro: integration-openstack-controller-devstack
# Operation: this macro will spin the controller and devstack vms
# Used by: {project}-csit-openstack job templates
pass-threshold: '{pass-if}'
only-critical: false
+- publisher:
+ name: integration-robot-tempest
+ publishers:
+ - robot:
+ output-path: ''
+ other-files:
+ - tempest_results.html
+ unstable-threshold: '{unstable-if}'
+ pass-threshold: '{pass-if}'
+ only-critical: false
+
- publisher:
name: integration-csit-archive-build
publishers:
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-mininet:
+ - integration-jclouds-controller-mininet:
controller-image: '{controller-image}'
controller-vms: 1
mininet-image: '{mininet-image}'
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-mininet:
+ - integration-jclouds-controller-mininet:
controller-image: '{controller-image}'
controller-vms: 1
mininet-image: '{mininet-image}'
yaxis: '{01-plot-yaxis}'
group: '{01-plot-group}'
num-builds: '5400'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-1node-{functionality}-{install}-{stream}-{01-plot-data-file}-history.csv'
yaxis: '{02-plot-yaxis}'
group: '{02-plot-group}'
num-builds: '5400'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-1node-{functionality}-{install}-{stream}-{02-plot-data-file}-history.csv'
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-mininet:
+ - integration-jclouds-controller-mininet:
controller-image: '{controller-image}'
controller-vms: 1
mininet-image: '{mininet-image}'
yaxis: '{01-plot-yaxis}'
group: '{01-plot-group}'
num-builds: '180'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-periodic-1node-{functionality}-{install}-{stream}-{01-plot-data-file}-history.csv'
yaxis: '{02-plot-yaxis}'
group: '{02-plot-group}'
num-builds: '180'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-periodic-1node-{functionality}-{install}-{stream}-{02-plot-data-file}-history.csv'
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-mininet:
+ - integration-jclouds-controller-mininet:
controller-image: '{controller-image}'
controller-vms: 3
mininet-image: '{mininet-image}'
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-mininet:
+ - integration-jclouds-controller-mininet:
controller-image: '{controller-image}'
controller-vms: 3
mininet-image: '{mininet-image}'
yaxis: '{01-plot-yaxis}'
group: '{01-plot-group}'
num-builds: '5400'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-3node-{functionality}-{install}-{stream}-{01-plot-data-file}-history.csv'
yaxis: '{02-plot-yaxis}'
group: '{02-plot-group}'
num-builds: '5400'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-3node-{functionality}-{install}-{stream}-{02-plot-data-file}-history.csv'
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-mininet:
+ - integration-jclouds-controller-mininet:
controller-image: '{controller-image}'
controller-vms: 3
mininet-image: '{mininet-image}'
yaxis: '{01-plot-yaxis}'
group: '{01-plot-group}'
num-builds: '5400'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-3node-periodic-{functionality}-{install}-{stream}-{01-plot-data-file}-history.csv'
yaxis: '{02-plot-yaxis}'
group: '{02-plot-group}'
num-builds: '5400'
+ keep-records: true
style: line
use-description: false
csv-file-name: '{project}-csit-3node-periodic-{functionality}-{install}-{stream}-{02-plot-data-file}-history.csv'
name: ODL_ENABLE_L3_FWD
default: '{odl-enable-l3}'
description: 'Enable L3 FWD in ODL for createing br-ex'
+ - string:
+ name: PUBLIC_BRIDGE
+ default: '{public-bridge}'
+ description: 'Specifies public bridge for provider and external networking'
- string:
name: ENABLE_OS_SERVICES
default: '{enable-openstack-services}'
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-devstack:
+ - integration-jclouds-controller-devstack:
controller-image: '{controller-image}'
controller-vms: 1
openstack-image: '{openstack-image}'
- integration-cleanup-tmp
publishers:
- - integration-robot:
+ - integration-robot-tempest:
unstable-if: 0.0
pass-if: 100.0
- email-notification:
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-devstack:
+ - integration-jclouds-controller-devstack:
controller-image: '{controller-image}'
controller-vms: 3
openstack-image: '{openstack-image}'
- integration-cleanup-tmp
publishers:
- - integration-robot:
+ - integration-robot-tempest:
unstable-if: 0.0
pass-if: 100.0
- email-notification:
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
- - integration-openstack-controller-mininet:
+ - integration-jclouds-controller-mininet:
controller-image: '{controller-image}'
controller-vms: 1
mininet-image: '{mininet-image}'
# ODL Releng build templates
- project:
- name: lacp
+ name: lacp-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'lacp'
+ project-name: 'lacp'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ mvn-settings: 'lacp-settings'
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-goals: 'clean install javadoc:aggregate -DrepoBuild -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'openflowjava-merge-{stream},openflowplugin-merge-{stream}'
+ email-upstream: '[lacp] [openflowjava] [openflowplugin]'
+ archive-artifacts: ''
+
+- project:
+ name: lacp-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'lacp'
+ project-name: 'lacp'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ mvn-settings: 'lacp-settings'
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-goals: 'clean install javadoc:aggregate -DrepoBuild -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'openflowjava-merge-{stream},openflowplugin-merge-{stream}'
+ email-upstream: '[lacp] [openflowjava] [openflowplugin]'
+ archive-artifacts: ''
+
+- project:
+ name: lacp-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
-
project: 'lacp'
project-name: 'lacp'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
mvn-settings: 'lacp-settings'
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-goals: 'clean install javadoc:aggregate -DrepoBuild -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'openflowjava-merge-{stream},openflowplugin-merge-{stream}'
email-upstream: '[lacp] [openflowjava] [openflowplugin]'
archive-artifacts: ''
+
+- project:
+ name: lacp-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'lacp'
+ project-name: 'lacp'
+ branch: 'master'
+ mvn-settings: 'lacp-settings'
+ mvn-goals: 'clean install javadoc:aggregate -DrepoBuild -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: mdsal
+ name: mdsal-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'mdsal'
+ project-name: 'mdsal'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'mdsal-settings'
+ mvn-goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dmaven.compile.fork=true clean install -Dintegrationtests'
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[mdsal] [odlparent] [yangtools]'
+ archive-artifacts: ''
+
+- project:
+ name: mdsal-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
-
project: 'mdsal'
project-name: 'mdsal'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'mdsal-settings'
mvn-goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dmaven.compile.fork=true clean install -Dintegrationtests'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
email-upstream: '[mdsal] [odlparent] [yangtools]'
archive-artifacts: ''
+
+- project:
+ name: mdsal-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'mdsal'
+ project-name: 'mdsal'
+ branch: 'master'
+ mvn-settings: 'mdsal-settings'
+ mvn-goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dmaven.compile.fork=true clean install -Dintegrationtests'
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m'
# ODL Releng build templates
- project:
- name: messaging4transport
+ name: messaging4transport-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'messaging4transport'
+ project-name: 'messaging4transport'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'messaging4transport-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[messaging4transport]'
+ archive-artifacts: ''
+
+- project:
+ name: messaging4transport-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
-
project: 'messaging4transport'
project-name: 'messaging4transport'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'messaging4transport-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
email-upstream: '[messaging4transport]'
archive-artifacts: ''
+
+- project:
+ name: messaging4transport-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'messaging4transport'
+ project-name: 'messaging4transport'
+ branch: 'master'
+ mvn-settings: 'messaging4transport-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: nemo
+ name: nemo-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'nemo'
+ project-name: 'nemo'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'nemo-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[nemo]'
+ archive-artifacts: ''
+
+- project:
+ name: nemo-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
-
project: 'nemo'
project-name: 'nemo'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'nemo-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
email-upstream: '[nemo]'
archive-artifacts: ''
+
+- project:
+ name: nemo-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'nemo'
+ project-name: 'nemo'
+ branch: 'master'
+ mvn-settings: 'nemo-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
odl-enable-l3: 'yes'
+ public-bridge: 'br-ex'
+
enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
- openjdk8
project: 'netvirt'
+ archive-artifacts: 'docker-ovs-*.log'
- job-template:
name: 'netvirt-daily-full-integration-{stream}'
- jacoco-nojava-workaround
publishers:
- - archive:
- artifacts: 'docker-ovs-*.log'
- fingerprint: false
- email-notification:
email-prefix: '[netvirt]'
+ - archive-build:
+ maven-version: '{mvn33}'
- 'netvirt-openstack-gerrit'
project: 'netvirt'
+ archive-artifacts: 'logs/**'
- job-template:
name: 'netvirt-openstack-gerrit'
- include-raw-openstack-ci.sh
publishers:
- - archive:
- artifacts: 'logs/**'
- fingerprint: false
- email-ext:
subject: '[netvirt] $DEFAULT_SUBJECT'
attach-build-log: false
failure: true
unstable: true
fixed: true
+ - archive-build:
+ maven-version: '{mvn33}'
- email-notification:
email-prefix: '[netvirt]'
- jacoco-report
+ - archive-build:
+ maven-version: '{mvn33}'
odl-enable-l3: 'yes'
+ public-bridge: 'br-ex'
+
enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
# ODL Releng build templates
- project:
- name: ocpplugin
+ name: ocpplugin-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
-
project: 'ocpplugin'
project-name: 'ocpplugin'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'ocpplugin-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
email-upstream: '[ocpplugin] [odlparent] [yangtools] [controller]'
archive-artifacts: ''
+
+- project:
+ name: ocpplugin-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'ocpplugin'
+ project-name: 'ocpplugin'
+ branch: 'master'
+ mvn-settings: 'ocpplugin-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: openflowjava
+ name: openflowjava-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'openflowjava'
+ project-name: 'openflowjava'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'openflowjava-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[openflowjava] [odlparent] [yangtools] [controller]'
+ archive-artifacts: ''
+
+- project:
+ name: openflowjava-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+
+ project: 'openflowjava'
+ project-name: 'openflowjava'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'openflowjava-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[openflowjava] [odlparent] [yangtools] [controller]'
+ archive-artifacts: ''
+
+- project:
+ name: openflowjava-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: True
disable_distribution_check: True
-
project: 'openflowjava'
project-name: 'openflowjava'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'openflowjava-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
email-upstream: '[openflowjava] [odlparent] [yangtools] [controller]'
archive-artifacts: ''
+
+- project:
+ name: openflowjava-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'openflowjava'
+ project-name: 'openflowjava'
+ branch: 'master'
+ mvn-settings: 'openflowjava-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
scope: 'only'
# Features to install
- install-features: 'odl-openflowplugin-flow-services-ui-he'
+ install-features: 'odl-openflowplugin-flow-services-ui-he,decanter-collector-jmx,decanter-appender-elasticsearch'
# Robot custom options
robot-options: '-v TOPO_TREE_DEPTH:7'
scope: 'only'
# Features to install
- install-features: 'odl-openflowplugin-flow-services-ui-li'
+ install-features: 'odl-openflowplugin-flow-services-ui-li,decanter-collector-jmx,decanter-appender-elasticsearch'
# Robot custom options
robot-options: '-v TOPO_TREE_DEPTH:7'
scope: 'only'
# Features to install
- install-features: 'odl-openflowplugin-flow-services-ui'
+ install-features: 'odl-openflowplugin-flow-services-ui,decanter-collector-jmx,decanter-appender-elasticsearch'
# Robot custom options
robot-options: '-v TOPO_TREE_DEPTH:7'
/usr/bin/docker pull vpickard/openvswitch:$OVS_VERSION
CID=$(/usr/bin/docker run -p 6641:6640 --privileged=true -d -i -t vpickard/openvswitch:$OVS_VERSION /usr/bin/supervisord)
REALCID=`echo $CID | rev | cut -d ' ' -f 1 | rev`
-echo "---> Waiting to start OVS HW VTEP Emulator"
-sleep 5
-echo "---> Starting OVS HW VTEP Emulator"
-/usr/bin/docker exec $REALCID supervisorctl start ovs-vtep
echo "CID=$REALCID" > env.properties
echo "OVS_VERSION=${OVS_VERSION}" >> env.properties
CONTROLLER_IP=`facter ipaddress`
--- /dev/null
+#!/bin/bash
+
+set -e
+
+echo "---> Configuring OVS for HW VTEP Emulator"
+/usr/bin/docker exec $CID supervisorctl stop ovsdb-server
+sleep 5
+/usr/bin/docker exec $CID supervisorctl start ovsdb-server-vtep
+/usr/bin/docker exec $CID ovs-vsctl add-br br-vtep
+/usr/bin/docker exec $CID ovs-vsctl add-port br-vtep eth0
+/usr/bin/docker exec $CID vtep-ctl add-ps br-vtep
+/usr/bin/docker exec $CID vtep-ctl add-port br-vtep eth0
+/usr/bin/docker exec $CID vtep-ctl set Physical_Switch br-vtep tunnel_ips=192.168.254.20
+/usr/bin/docker exec $CID vtep-ctl set-manager ptcp:6640
+
+echo "---> Starting OVS HW VTEP Emulator"
+/usr/bin/docker exec $CID supervisorctl start ovs-vtep
+sleep 10
- openjdk7
project: 'ovsdb'
- archive-artifacts: 'docker-ovs-*.log'
+ archive-artifacts: '*.log'
- job-template:
name: 'ovsdb-daily-full-integration-{stream}'
- maven-target:
maven-version: '{mvn33}'
pom: 'pom.xml'
- goals: 'clean install dependency:tree -V -B verify -Pintegrationtest -Dskip.karaf.featureTest=true -Dmaven.compile.fork=true -Dovsdb.controller.address=${{CONTROLLER_IP}}'
+ goals: '-V -B -l build.log clean install dependency:tree -Pq -Dmaven.compile.fork=true'
+ properties:
+ - 'maven.repo.local=/tmp/r'
+ - 'org.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ - 'stream={stream}'
+ java-opts:
+ - '-Xmx1024m -XX:MaxPermSize=256m'
+ settings: 'ovsdb-settings'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+ - maven-target:
+ maven-version: '{mvn33}'
+ pom: 'southbound/southbound-it/pom.xml'
+ goals: '-V -B verify -l southboundIT.log -Pintegrationtest -Dskip.karaf.featureTest=true -Dmaven.compile.fork=true -Dovsdb.controller.address=${{CONTROLLER_IP}}'
properties:
- 'ovsdbserver.ipaddress=127.0.0.1'
- 'ovsdbserver.port=6641'
settings-type: cfp
global-settings: 'odl-global-settings'
global-settings-type: cfp
+ - shell:
+ !include-raw-escape:
+ - include-setup-hwvtep-docker.sh
+ - maven-target:
+ maven-version: '{mvn33}'
+ pom: 'library/it/pom.xml'
+ goals: '-V -B verify -l libraryIT.log -Pintegrationtest -Dskip.karaf.featureTest=true -Dmaven.compile.fork=true -Dovsdb.controller.address=${{CONTROLLER_IP}}'
+ properties:
+ - 'ovsdbserver.ipaddress=127.0.0.1'
+ - 'ovsdbserver.port=6641'
+ - 'ovsdb.userspace.enabled=yes'
+ - 'maven.repo.local=/tmp/r'
+ - 'org.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ - 'stream={stream}'
+ java-opts:
+ - '-Xmx1024m -XX:MaxPermSize=256m'
+ settings: 'ovsdb-settings'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+ - maven-target:
+ maven-version: '{mvn33}'
+ pom: 'hwvtepsouthbound/hwvtepsouthbound-it/pom.xml'
+ goals: '-V -B verify -l hwvtepsouthboundIT.log -Pintegrationtest -Dskip.karaf.featureTest=true -Dmaven.compile.fork=true -Dovsdb.controller.address=${{CONTROLLER_IP}}'
+ properties:
+ - 'ovsdbserver.ipaddress=127.0.0.1'
+ - 'ovsdbserver.port=6641'
+ - 'ovsdb.userspace.enabled=yes'
+ - 'maven.repo.local=/tmp/r'
+ - 'org.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ - 'stream={stream}'
+ java-opts:
+ - '-Xmx1024m -XX:MaxPermSize=256m'
+ settings: 'ovsdb-settings'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
- shell:
!include-raw-escape:
- include-raw-cleanup-docker.sh
- maven-target:
maven-version: '{mvn33}'
pom: validate-pom.xml
- goals: 'clean install dependency:tree -V -B -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ goals: 'clean install dependency:tree -V -B -T1.5C -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
java-opts:
- '-Xmx8g'
settings: 'autorelease-settings'
maven:
maven-name: '{mvn33}'
root-pom: 'pom.xml'
- goals: 'clean validate -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ goals: 'clean validate -V -B -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
settings: 'autorelease-settings'
settings-type: cfp
# ODL Releng build templates
- project:
- name: sfc
+ name: sfc-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'sfc'
+ project-name: 'sfc'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'sfc-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
+ dependencies: 'openflowplugin-merge-{stream},ovsdb-merge-{stream},lispflowmapping-merge-{stream}'
+ email-upstream: '[sfc] [openflowplugin] [ovsdb] [lispflowmapping]'
+ archive-artifacts: ''
+
+- project:
+ name: sfc-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'sfc'
+ project-name: 'sfc'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'sfc-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
+ dependencies: 'openflowplugin-merge-{stream},ovsdb-merge-{stream},lispflowmapping-merge-{stream}'
+ email-upstream: '[sfc] [openflowplugin] [ovsdb] [lispflowmapping]'
+ archive-artifacts: ''
+
+- project:
+ name: sfc-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
-
project: 'sfc'
project-name: 'sfc'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'sfc-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
dependencies: 'openflowplugin-merge-{stream},ovsdb-merge-{stream},lispflowmapping-merge-{stream}'
email-upstream: '[sfc] [openflowplugin] [ovsdb] [lispflowmapping]'
archive-artifacts: ''
+
+- project:
+ name: sfc-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'sfc'
+ project-name: 'sfc'
+ branch: 'master'
+ mvn-settings: 'sfc-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
# ODL Releng build templates
- project:
- name: sxp
+ name: sxp-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'sxp'
+ project-name: 'sxp'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'sxp-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[sxp] [odlparent] [controller] [yangtools]'
+ archive-artifacts: ''
+
+- project:
+ name: sxp-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'sxp'
+ project-name: 'sxp'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'sxp-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[sxp] [odlparent] [controller] [yangtools]'
+ archive-artifacts: ''
+
+- project:
+ name: sxp-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
-
project: 'sxp'
project-name: 'sxp'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'sxp-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
email-upstream: '[sxp] [odlparent] [controller] [yangtools]'
archive-artifacts: ''
+
+- project:
+ name: sxp-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'sxp'
+ project-name: 'sxp'
+ branch: 'master'
+ mvn-settings: 'sxp-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: tcpmd5
+ name: tcpmd5-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'tcpmd5'
+ project-name: 'tcpmd5'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'tcpmd5-settings'
+ mvn-goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean -DrepoBuild install javadoc:aggregate'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[tcpmd5] [odlparent] [yangtools] [controller]'
+ archive-artifacts: ''
+
+- project:
+ name: tcpmd5-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'tcpmd5'
+ project-name: 'tcpmd5'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'tcpmd5-settings'
+ mvn-goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean -DrepoBuild install javadoc:aggregate'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[tcpmd5] [odlparent] [yangtools] [controller]'
+ archive-artifacts: ''
+
+- project:
+ name: tcpmd5-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: True
disable_distribution_check: True
-
project: 'tcpmd5'
project-name: 'tcpmd5'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'tcpmd5-settings'
mvn-goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean -DrepoBuild install javadoc:aggregate'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
email-upstream: '[tcpmd5] [odlparent] [yangtools] [controller]'
archive-artifacts: ''
+
+- project:
+ name: tcpmd5-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'tcpmd5'
+ project-name: 'tcpmd5'
+ branch: 'master'
+ mvn-settings: 'tcpmd5-settings'
+ mvn-goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean -DrepoBuild install javadoc:aggregate'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: toolkit
+ name: toolkit-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: False
+
+ project: 'toolkit'
+ project-name: 'toolkit'
+ branch: 'master'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'toolkit-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[toolkit]'
+ archive-artifacts: ''
+
+
+- project:
+ name: toolkit-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: False
-
project: 'toolkit'
project-name: 'toolkit'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'toolkit-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
email-upstream: '[toolkit]'
archive-artifacts: ''
+
+- project:
+ name: toolkit-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'toolkit'
+ project-name: 'toolkit'
+ branch: 'master'
+ mvn-settings: 'toolkit-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: unimgr
+ name: unimgr-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+
+ project: 'unimgr'
+ project-name: 'unimgr'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'unimgr-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'ovsdb-merge-{stream}'
+ email-upstream: '[unimgr] [ovsdb]'
+ archive-artifacts: ''
+
+
+- project:
+ name: unimgr-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
project: 'unimgr'
project-name: 'unimgr'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'unimgr-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'ovsdb-merge-{stream}'
email-upstream: '[unimgr] [ovsdb]'
archive-artifacts: ''
+
+- project:
+ name: unimgr-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'unimgr'
+ project-name: 'unimgr'
+ branch: 'master'
+ mvn-settings: 'unimgr-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# ODL Releng build templates
- project:
- name: usc
+ name: usc-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'usc'
+ project-name: 'usc'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'usc-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'controller-merge-{stream},yangtools-merge-{stream},odlparent-merge-{stream}'
+ email-upstream: '[usc] [controller] [yangtools] [odlparent]'
+ archive-artifacts: ''
+
+- project:
+ name: usc-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'usc'
+ project-name: 'usc'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'usc-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'controller-merge-{stream},yangtools-merge-{stream},odlparent-merge-{stream}'
+ email-upstream: '[usc] [controller] [yangtools] [odlparent]'
+ archive-artifacts: ''
+
+- project:
+ name: usc-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk8
- jdks:
- - openjdk8
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
project: 'usc'
project-name: 'usc'
+ branch: 'stable/lithium'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'usc-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'controller-merge-{stream},yangtools-merge-{stream},odlparent-merge-{stream}'
email-upstream: '[usc] [controller] [yangtools] [odlparent]'
archive-artifacts: ''
+
+- project:
+ name: usc-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'usc'
+ project-name: 'usc'
+ branch: 'master'
+ mvn-settings: 'usc-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
odl-enable-l3: 'no'
+ public-bridge: 'br-ex'
+
enable-openstack-services: 'n-cpu,q-agt,q-svc,q-dhcp,q-meta,n-cauth,tempest'
disable-openstack-services: 'n-net,q-l3'
# ODL Releng build templates
- project:
- name: vtn
+ name: vtn-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+ project: 'vtn'
+ project-name: 'vtn'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'vtn-settings'
+ mvn-goals: 'clean install -V -Pintegrationtests,strictcheck,docs -Dvtn.build.jobs=2 -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'neutron-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream}'
+ email-upstream: '[vtn] [neutron] [openflowplugin] [ovsdb]'
+ archive-artifacts: 'manager/dist/*/target/*.zip coordinator/dist/target/*.bz2 manager/northbound/target/site/wsdocs/** manager/api/target/*-javadoc.jar manager/api/target/apidocs/** target/*-javadoc.jar target/apidocs/** manager/model/target/site/models/**'
+
+- project:
+ name: vtn-beryllium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+
+ stream:
- beryllium:
- branch: 'stable/beryllium'
- jdk: openjdk7
- jdks:
- - openjdk7
- - openjdk8
disable_autorelease: False
disable_distribution_check: False
+
+ project: 'vtn'
+ project-name: 'vtn'
+ branch: 'stable/beryllium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
+ mvn-settings: 'vtn-settings'
+ mvn-goals: 'clean install -V -Pintegrationtests,strictcheck,docs -Dvtn.build.jobs=2 -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'neutron-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream}'
+ email-upstream: '[vtn] [neutron] [openflowplugin] [ovsdb]'
+ archive-artifacts: 'manager/dist/*/target/*.zip coordinator/dist/target/*.bz2 manager/northbound/target/site/wsdocs/** manager/api/target/*-javadoc.jar manager/api/target/apidocs/** target/*-javadoc.jar target/apidocs/** manager/model/target/site/models/**'
+
+- project:
+ name: vtn-lithium
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-distribution-{stream}'
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-periodic-{stream}'
+ - '{project-name}-validate-autorelease-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+ stream:
- stable-lithium:
- branch: 'stable/lithium'
- jdk: openjdk7
- jdks:
- - openjdk7
disable_autorelease: True
disable_distribution_check: True
-
project: 'vtn'
project-name: 'vtn'
+ branch: 'stable/lithium'
+ jdk: openjdk7
+ jdks:
+ - openjdk7
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'vtn-settings'
mvn-goals: 'clean install -V -Pintegrationtests,strictcheck,docs -Dvtn.build.jobs=2 -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'neutron-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream}'
email-upstream: '[vtn] [neutron] [openflowplugin] [ovsdb]'
archive-artifacts: 'manager/dist/*/target/*.zip coordinator/dist/target/*.bz2 manager/northbound/target/site/wsdocs/** manager/api/target/*-javadoc.jar manager/api/target/apidocs/** target/*-javadoc.jar target/apidocs/** manager/model/target/site/models/**'
+
+- project:
+ name: vtn-sonar
+ jobs:
+ - '{project-name}-sonar'
+ project: 'vtn'
+ project-name: 'vtn'
+ branch: 'master'
+ mvn-settings: 'vtn-settings'
+ mvn-goals: 'clean install -V -Pintegrationtests,strictcheck,docs -Dvtn.build.jobs=2 -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+
# ODL Releng build templates
- project:
- name: yangide
+ name: yangide-boron
jobs:
- '{project-name}-clm-{stream}'
- '{project-name}-distribution-{stream}'
- '{project-name}-integration-{stream}'
- '{project-name}-merge-{stream}'
- '{project-name}-periodic-{stream}'
- - '{project-name}-sonar'
- '{project-name}-validate-autorelease-{stream}'
- - '{project-name}-verify-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
stream:
- boron:
- branch: 'master'
- jdk: openjdk8
- jdks:
- - openjdk8
disable_autorelease: True
disable_distribution_check: True
project: 'yangide'
project-name: 'yangide'
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: '{mvn33}'
mvn-settings: 'yangide-settings'
mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
email-upstream: '[yangide] [odlparent] [yangtools]'
archive-artifacts: ''
+
+- project:
+ name: yangide-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: 'yangide'
+ project-name: 'yangide'
+ branch: 'master'
+ mvn-settings: 'yangide-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# should only really be done on an EL7 (or F18+) system
yum install -q -y {jansson,libevent,libnl,libuuid}-devel
-#The following is needed for the new code in vtn project.
+#The following is needed for the vsemprovider build in vtn project.
#these packages will enable C# compilation.
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
#Added the mono tools repository
yum-config-manager -q -y --add-repo http://download.mono-project.com/repo/centos/
-#Install the nuget binary
-yum install -q -y http://download.mono-project.com/repo/centos/n/nuget/nuget-2.8.3+md58+dhx1-0.noarch.rpm
-#install the mono toolchain
-yum -q -y install mono-complete
+#install the mono toolchain and nuget
+yum -q -y install mono-complete-4.2.3.4 nuget
+#end changes for vsemprovider in VTN
echo '---> Installing exabgp'
apt-get install -y --force-yes -qq exabgp
+
+echo '---> All Python package installation should happen in virtualenv'
+apt-get install -y --force-yes -qq python-virtualenv python-pip
echo '---> Installing vlan for vlan based tests in VTN suites'
apt-get install -y --force-yes -qq vlan
+
+echo '---> All Python package installation should happen in virtualenv'
+apt-get install -y --force-yes -qq python-virtualenv python-pip
# install crudini command line tool for editing config files
yum install -y -q crudini
+
+################################
+# LISPFLOWMAPPING REQUIREMENTS #
+################################
+
+# Needed for pyangbind
+yum install -y -q libxml2-devel libxslt-devel
+
# Install `udpreplay` to be used for (lispflowmapping) performance tests
yum install -q -y libpcap-devel boost-devel
git clone -q https://github.com/ska-sa/udpreplay.git
cd udpreplay
+./bootstrap.sh
+./configure
make &> /dev/null && cp udpreplay /usr/local/bin
-## DLUX dependencies
+#####################
+# DLUX requirements #
+#####################
+
# - Xvfb: Display manager in RAM
#
# Note: The end goal will be to test with multiple browser (Firefox, Chrome)
+++ /dev/null
-#!/usr/bin/python
-
-# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0>
-##############################################################################
-# Copyright (c) 2014, 2015 The Linux Foundation and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Thanh Ha (The Linux Foundation) - Initial implementation
-##############################################################################
-
-import os
-
-from jjblib import Project
-
-
-def _is_project(jjb_dir, project):
- """Returns true if project is a project that should be auto-generated"""
- p = Project(project)
- if p.meta_project:
- template = os.path.join(jjb_dir, project, "%s.yaml" % p.project)
- else:
- template = os.path.join(jjb_dir, p.project, "%s.yaml" % p.project)
-
- if os.path.isfile(template): # Project found
- with open(template, 'r') as f:
- first_line = f.readline()
- if first_line.startswith("# REMOVE THIS LINE IF"):
- return True
- return False
-
-
-def get_autoupdate_projects(jjb_dir):
- """Get list of projects that should be auto-updated."""
- project_list = []
-
- for root, dirs, files in os.walk(jjb_dir):
- project = root.replace("%s/" % jjb_dir, '')
-
- if _is_project(jjb_dir, project):
- project_list.append(project)
-
- return project_list
-
-
-def update_templates(projects):
- for project in projects:
- print("Updating... %s" % project)
- p = Project(project)
- if p.meta_project: # Meta project
- cfg_file = "jjb/%s/%s.cfg" % (project, p.project)
- else:
- cfg_file = "jjb/%s/%s.cfg" % (p.project, p.project)
- os.system("python scripts/jjb-init-project.py %s -c %s" %
- (project, cfg_file))
-
-##############
-# Code Start #
-##############
-
-jjb_dir = "jjb"
-all_projects = [d for d in os.listdir(jjb_dir)
- if os.path.isdir(os.path.join(jjb_dir, d))]
-auto_update_projects = get_autoupdate_projects(jjb_dir)
-update_templates(auto_update_projects)
+++ /dev/null
-#!/usr/bin/python
-
-# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0>
-##############################################################################
-# Copyright (c) 2014, 2015 The Linux Foundation and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Thanh Ha (The Linux Foundation) - Initial implementation
-##############################################################################
-
-from collections import OrderedDict
-import os
-import re
-
-import yaml
-
-import jjblib
-
-
-args = jjblib.parse_jjb_args()
-
-
-project = jjblib.Project(args.project)
-if project.meta_project is not None:
- project_dir = os.path.join("jjb", project.meta_project, project.project)
- jenkins_settings = "%s-%s-settings" % (project.meta_project,
- project.project)
-else:
- project_dir = os.path.join("jjb", project.project)
- jenkins_settings = "%s-settings" % project.project
-
-project_file = os.path.join(project_dir, "%s.yaml" % project)
-dependent_jobs = ""
-disabled = "true" # Always disabled unless project has dependencies
-email_prefix = "[%s]" % project
-
-
-if not args.conf:
- jjblib.create_template_config(project_dir, args)
- project_conf = os.path.join(project_dir, "%s.cfg" % args.project)
-else:
- project_conf = args.conf
-
-cfg = dict() # Needed to skip missing project.cfg files
-if os.path.isfile(project_conf):
- stream = open(project_conf, "r")
- cfg = yaml.load(stream)
-
-####################
-# Handle Templates #
-####################
-if cfg.get("JOB_TEMPLATES"):
- templates = cfg.get("JOB_TEMPLATES")
-else:
- templates = ("")
-
-##################
-# Handle Streams #
-##################
-streams = OrderedDict()
-if cfg.get("STREAMS"): # this is a list of single-key dicts
- for stream_dict in cfg.get("STREAMS"):
- streams.update(stream_dict)
-else:
- streams = {"boron": jjblib.STREAM_DEFAULTS["boron"]}
-
-first_stream = next(iter(streams)) # Keep master branch at top.
-sonar_branch = streams[first_stream]["branch"]
-# Create YAML to list branches to create jobs for
-str_streams = "stream:\n"
-for stream, options in streams.items():
- str_streams += (" - %s:\n"
- " branch: '%s'\n" %
- (stream, options["branch"]))
- str_streams += " jdk: %s\n" % options["jdks"].split(',')[0].strip() # noqa
- str_streams += " jdks:\n"
- for jdk in options["jdks"].split(","):
- str_streams += " - %s\n" % jdk.strip()
-
- # Disable autorelease validate job unless project is participating
- # in autorelease, JJB does not allow flipping a boolean so we have to
- # flip it here via not operator since the JJB configuration for disabling
- # a Jenkins Job is "disabled: bool".
- str_streams += " disable_autorelease: %s\n" % (not options.get(
- "autorelease", False))
-
- # Disable the distribution-check job unless project enables it
- str_streams += " disable_distribution_check: %s\n" % (
- not options.get("distribution-check", True))
-
-###############
-# Handle JDKS #
-###############
-if cfg.get('JDKS'):
- jdks = cfg.get('JDKS')
-else:
- jdks = "openjdk7"
-use_jdks = ""
-for jdk in jdks.split(","):
- use_jdks += " - %s\n" % jdk
-
-##############
-# Handle POM #
-##############
-if cfg.get('POM'):
- pom = cfg.get('POM')
-else:
- pom = "pom.xml"
-
-####################
-# Handle MVN_GOALS #
-####################
-if cfg.get('MVN_GOALS'):
- mvn_goals = cfg.get('MVN_GOALS')
-else:
- mvn_goals = ("clean install "
- "-Dmaven.repo.local=/tmp/r "
- "-Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r ")
-
-###################
-# Handle MVN_OPTS #
-###################
-if cfg.get('MVN_OPTS'):
- mvn_opts = cfg.get('MVN_OPTS')
-else:
- mvn_opts = "-Xmx1024m -XX:MaxPermSize=256m"
-
-#######################
-# Handle DEPENDENCIES #
-#######################
-if cfg.get('DEPENDENCIES'):
- dependencies = cfg.get('DEPENDENCIES')
- if dependencies.find("odlparent") < 0: # Add odlparent if not listed
- dependencies = "odlparent," + dependencies
- disabled = "false"
-else:
- dependencies = None
- if project.project != "odlparent": # Odlparent does not depend on itself
- dependencies = "odlparent" # All other projects depend on odlparent
- disabled = "false"
-
-if dependencies:
- email_prefix = (email_prefix + " " +
- " ".join(['[%s]' % d for d in dependencies.split(",")])) # noqa
- dependent_jobs = ",".join(
- ['%s-merge-{stream}' % d for d in dependencies.split(",")])
-
-############################
-# Handle ARCHIVE_ARTIFACTS #
-############################
-
-archive_artifacts = cfg.get('ARCHIVE_ARTIFACTS', '')
-
-##############################
-# Create configuration start #
-##############################
-
-# Create project directory if it doesn't exist
-if not os.path.exists(project_dir):
- os.makedirs(project_dir)
-
-print("project: %s\n"
- "streams: %s\n"
- "goals: %s\n"
- "options: %s\n"
- "dependencies: %s\n"
- "artifacts: %s" %
- (project,
- str_streams,
- mvn_goals,
- mvn_opts,
- dependencies,
- archive_artifacts,))
-
-# Create initial project YAML file
-use_templates = templates.split(",")
-use_templates.insert(0, "project")
-job_templates_yaml = ""
-for t in use_templates:
- if t == "project": # This is not a job type but is used for templating
- pass
- elif t == "sonar":
- job_templates_yaml = job_templates_yaml + \
- " - '%s-%s'\n" % (project, t)
- else:
- job_templates_yaml = job_templates_yaml + \
- " - '%s-%s-{stream}'\n" % (project, t)
-
-with open(project_file, "w") as outfile:
- for t in use_templates:
- template_file = "jjb-templates/%s.yaml" % t
- with open(template_file, "r") as infile:
- for line in infile:
- if not re.match("\s*#", line):
- line = re.sub("JOB_TEMPLATES", job_templates_yaml, line)
- line = re.sub("PROJECT_SHORTNAME", project.project, line)
- line = re.sub("PROJECT_PATH", project.path, line)
- line = re.sub("JENKINS_SETTINGS", jenkins_settings, line)
- line = re.sub("DISABLED", disabled, line)
- line = re.sub("STREAMS", str_streams, line)
- line = re.sub("POM", pom, line)
- line = re.sub("MAVEN_GOALS", mvn_goals, line)
- line = re.sub("MAVEN_OPTS", mvn_opts, line)
- line = re.sub("DEPENDENCIES", dependent_jobs, line)
- line = re.sub("EMAIL_PREFIX", email_prefix, line)
- line = re.sub("SONAR_BRANCH", sonar_branch, line)
- line = re.sub("ARCHIVE_ARTIFACTS", archive_artifacts, line)
- # The previous command may have created superfluous lines.
- # If a line has no non-whitespace, it has to be '\n' only.
- line = re.sub(r'^\s+\n', "", line)
- outfile.write(line)
- outfile.write("\n")
+++ /dev/null
-import argparse
-import collections
-import os
-
-import yaml
-
-
-def parse_jjb_args():
- parser = argparse.ArgumentParser()
- parser.add_argument("project", help="project")
- parser.add_argument("-c", "--conf", help="Config file")
- parser.add_argument("-d", "--dependencies",
- help=("Project dependencies\n\n"
- "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.\n\n"
- "Example: aaa,controller,yangtools"))
- parser.add_argument("-t", "--templates", help="Job templates to use")
- parser.add_argument("-s", "--streams",
- help="Release streams to fill with default options")
- parser.add_argument("-p", "--pom", help="Path to pom.xml to use in Maven "
- "build (Default: pom.xml")
- parser.add_argument("-g", "--mvn-goals", help="Maven Goals")
- parser.add_argument("-o", "--mvn-opts", help="Maven Options")
- parser.add_argument("-a", "--archive-artifacts",
- help="Comma-seperated list of patterns of artifacts "
- "to archive on build completion. "
- "See: http://ant.apache.org/manual/Types/fileset.html") # noqa
- return parser.parse_args()
-
-
-STREAM_DEFAULTS = collections.OrderedDict([
- ("boron", {"branch": "master", "jdks": "openjdk8"}),
- ("beryllium", {"branch": "stable/beryllium", "jdks": "openjdk8"}),
- ("stable-lithium", {"branch": "stable/lithium", "jdks": "openjdk7"}),
-])
-
-
-def create_template_config(project_dir, args):
- cfg_data = dict()
-
- if args.templates:
- cfg_data["JOB_TEMPLATES"] = args.templates
-
- if args.streams:
- stream_list = list()
- for stream in args.streams.split(","):
- stream_list.append({stream: STREAM_DEFAULTS[stream]})
- cfg_data["STREAMS"] = stream_list
-
- if args.pom:
- cfg_data["POM"] = args.pom
-
- if args.mvn_goals:
- cfg_data["MAVEN_GOALS"] = args.mvn_goals
-
- if args.mvn_opts:
- cfg_data["MAVEN_OPTS"] = args.mvn_opts
-
- if args.dependencies:
- cfg_data["DEPENDENCIES"] = args.dependencies
-
- if args.archive_artifacts:
- cfg_data["ARCHIVE"] = args.archive_artifacts
-
- if cfg_data:
- # Create project directory if it doesn't exist
- if not os.path.exists(project_dir):
- os.makedirs(project_dir)
-
- print("Creating %s.cfg file" % args.project)
- cfg_file = os.path.join(project_dir, "%s.cfg" % args.project)
-
- with open(cfg_file, "w") as outstream:
- outstream.write(yaml.dump(cfg_data, default_flow_style=False))
-
-
-class Project:
- """Represents a Gerrit Project
-
- Attributes:
- path(str): The full Gerrit path to a project
- meta_project(str): The top-level project name in Gerrit
- project(str): The subproject name or project shortname
- """
-
- def __init__(self, project):
- self.path = project
- self.meta_project = None
- self.project = project
-
- if project.find('/') >= 0:
- s = project.rsplit('/', 1)
- self.meta_project = s[0]
- self.project = s[1]
-
- def __str__(self):
- return self.project