# make sure we don't require tty for sudo operations
cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: /usr/bin/sshuttle, /usr/bin/kill, /usr/sbin/iptables
+jenkins ALL = NOPASSWD: ALL
EOF
yum clean all
# Features to install
# *-all is for Lithium and Beryllium, without -all is for Lithium and Boron.
- install-features: 'odl-restconf,odl-bgpcep-pcep-all,odl-bgpcep-bgp-all,odl-bgpcep-bgp,odl-bgpcep-pcep,odl-netconf-connector-all,odl-bgpcep-bmp'
+ install-features: 'odl-restconf,odl-bgpcep-pcep-all,odl-bgpcep-bgp-all,odl-bgpcep-bgp,odl-bgpcep-pcep,odl-netconf-connector-all,odl-bgpcep-bmp,odl-jolokia'
# Robot custom options
robot-options: ''
--- /dev/null
+- project:
+ name: eman-csit-model
+ jobs:
+ - '{project}-csit-1node-{functionality}-{install}-{stream}'
+ - '{project}-csit-verify-1node-{functionality}'
+
+ # The project name
+ project: 'eman'
+
+ # The functionality under test
+ functionality: 'model'
+
+ # Project branches
+ stream:
+ - boron:
+ branch: 'master'
+ jre: 'openjdk8'
+
+ install:
+ - only:
+ scope: 'only'
+ - all:
+ scope: 'all'
+
+ # Features to install
+ install-features: 'odl-restconf,odl-mdsal-apidocs,odl-eman-ui'
+
+ # Robot custom options
+ robot-options: ''
+
+ # Trigger jobs (upstream dependencies)
+ trigger-jobs: 'eman-distribution-{stream}'
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}/
+if $(ssh ${OPENSTACK_CONTROL_NODE_IP} "sudo sh -c '[ -f ${DEVSTACK_TEMPEST_DIR}/.testrepository/0]"); then # if Tempest results exist
+ 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}/
+fi
collect_logs_and_exit
true # perhaps Jenkins is testing last exit code
/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
+/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
+sleep 5
+echo "---> Starting OVS HW VTEP Emulator"
+/usr/bin/docker exec $CID supervisorctl start ovs-vtep
+sleep 5
openstack-vms: 3
- install-features: 'odl-ovsdb-openstack'
+ install-features: 'odl-ovsdb-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
schedule: 'H H * * *'
openstack-vms: 4
- install-features: 'odl-ovsdb-openstack'
+ install-features: 'odl-ovsdb-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
schedule: 'H H * * *'
- openjdk8
project: 'netvirt'
- archive-artifacts: 'docker-ovs-*.log'
+ archive-artifacts: '*.log'
+
+- builder:
+ name: netvirt-run-it
+ builders:
+ - maven-target:
+ maven-version: '{maven-version}'
+ pom: '{pomFile}'
+ goals: '-V -B verify -l {logfile} -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: 'netvirt-settings'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+- builder:
+ name: run-net-virt-it
+ builders:
+ - netvirt-run-it:
+ maven-version: '{maven-version}'
+ stream: '{stream}'
+ pomFile: 'openstack/net-virt-it/pom.xml'
+ logfile: '{OVS_VERSION}-net-virt-IT.log'
+
+- builder:
+ name: run-netvirt-sfc-it
+ builders:
+ - netvirt-run-it:
+ maven-version: '{maven-version}'
+ stream: '{stream}'
+ pomFile: 'openstack/net-virt-sfc/it/pom.xml'
+ logfile: '{OVS_VERSION}-netvirt-sfc-IT.log'
+
+- builder:
+ name: run-netvirt-it
+ builders:
+ - inject:
+ properties-content: OVS_VERSION={OVS_VERSION}
+ - shell:
+ !include-raw-escape:
+ - include-raw-setup-docker.sh
+ - inject:
+ properties-file: env.properties
+ - run-net-virt-it:
+ OVS_VERSION: '{OVS_VERSION}'
+ maven-version: '{maven-version}'
+ stream: '{stream}'
+ - run-netvirt-sfc-it:
+ OVS_VERSION: '{OVS_VERSION}'
+ maven-version: '{maven-version}'
+ stream: '{stream}'
+ - shell:
+ !include-raw-escape:
+ - include-raw-cleanup-docker.sh
- job-template:
name: 'netvirt-daily-full-integration-{stream}'
# stream: release stream (eg. stable-lithium or beryllium)
# branch: git branch (eg. stable/lithium or master)
- project-type: matrix
- node: matrix_master
- description: 'Integration tests for the netvirt project against different versions of OVS and branches. This job runs nightly. '
- execution-strategy:
- sequential: true
-
- axes:
- - axis:
- type: user-defined
- name: 'OVS_VERSION'
- values:
- - 2.3.3
- - 2.4.0
- - 2.5.0
- - axis:
- type: jdk
- values: '{obj:jdks}'
-
- - axis:
- type: slave
- name: nodes
- values:
- - centos7-docker-2c-4g
+ project-type: freestyle
+ node: centos7-docker-2c-4g
+ jdk: '{jdk}'
+ description: 'Integration tests for the Netvirt project against different versions of OVS and branches. This job runs nightly. '
logrotate:
daysToKeep: '{build-days-to-keep}'
builders:
- wipe-org-opendaylight-repo
- - shell:
- !include-raw-escape:
- - include-raw-setup-docker.sh
- - inject:
- properties-file: env.properties
- 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:
- - '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}'
settings-type: cfp
global-settings: 'odl-global-settings'
global-settings-type: cfp
- - shell:
- !include-raw-escape:
- - include-raw-cleanup-docker.sh
+ - run-netvirt-it:
+ maven-version: '{mvn33}'
+ stream: '{stream}'
+ OVS_VERSION: '2.4.0'
+ - run-netvirt-it:
+ maven-version: '{mvn33}'
+ stream: '{stream}'
+ OVS_VERSION: '2.5.0'
- jacoco-nojava-workaround
publishers:
scope: 'only'
# Features to install
- install-features: 'odl-ovsdb-southbound-impl-rest'
+ install-features: 'odl-ovsdb-southbound-impl-rest,decanter-collector-jmx,decanter-appender-elasticsearch'
# Robot custom options
robot-options: ''
archive-artifacts: '*.log'
- builder:
- name: run-it
+ name: ovsdb-run-it
builders:
- maven-target:
maven-version: '{maven-version}'
- builder:
name: run-library-it
builders:
- - run-it:
+ - ovsdb-run-it:
maven-version: '{maven-version}'
stream: '{stream}'
pomFile: 'library/it/pom.xml'
- builder:
name: run-southbound-it
builders:
- - run-it:
+ - ovsdb-run-it:
maven-version: '{maven-version}'
stream: '{stream}'
pomFile: 'southbound/southbound-it/pom.xml'
- builder:
name: run-hwvtepsouthbound-it
builders:
- - run-it:
+ - ovsdb-run-it:
maven-version: '{maven-version}'
stream: '{stream}'
pomFile: 'hwvtepsouthbound/hwvtepsouthbound-it/pom.xml'
pattern: jjb-templates/**
builders:
+ - opendaylight-infra-pre-builders
- shell: |
pip freeze
jenkins-jobs -l DEBUG test --recursive -o archives/job_output jjb/
gzip archives/job_output/*
-
- releng-check-unicode
publishers:
builders:
+ - opendaylight-infra-pre-builders
- shell: |
virtualenv $WORKSPACE/venv
source $WORKSPACE/venv/bin/activate
pattern: jjb-templates/**
builders:
+ - opendaylight-infra-pre-builders
- shell: |
pip freeze
jenkins-jobs --version
- timed: 'H H * * 0'
builders:
+ - opendaylight-infra-pre-builders
- shell: |
jenkins-jobs --flush-cache update --recursive jjb/
- timed: 'H H * * 1'
builders:
+ - opendaylight-infra-pre-builders
- shell:
!include-raw-escape:
- include-raw-check-poms.sh
- workspace-cleanup:
fail-build: false
+- builder:
+ name: opendaylight-infra-pre-builders
+ builders:
+ - shell: |
+ if [ ! -z "$GERRIT_PATCHSET_REVISION" ]; then
+ LOG_MESSAGE="
+ Logs for $JOB_NAME:
+ https://logs.opendaylight.org/$SILO/$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER
+ (note that logs will be unavailable until the job is completed running.)
+ "
+ ssh -p 29418 jenkins-$SILO@git.opendaylight.org gerrit review -m \"${LOG_MESSAGE}\" $GERRIT_PATCHSET_REVISION
+ fi
+
- builder:
name: wipe-org-opendaylight-repo
builders:
- releng-stage-release
publishers:
- - archive-artifacts:
- artifacts: '*.log'
- email-notification:
email-prefix: '[releng]'
+ - archive-build:
+ maven-version: '{mvn33}'
- job-template:
publishers:
- email-notification:
email-prefix: '[releng]'
+ - archive-build:
+ maven-version: '{mvn33}'
# Python Related
publishers:
- email-notification:
email-prefix: '[{project}]'
+ - archive-build:
+ maven-version: '{mvn33}'
- job-template:
name: '{project-name}-merge-rtd-{stream}'
publishers:
- email-notification:
email-prefix: '[{project}]'
+ - archive-build:
+ maven-version: '{mvn33}'
# Node related
publishers:
- email-notification:
email-prefix: '[{project}]'
+ - archive-build:
+ maven-version: '{mvn33}'
scope: 'all'
# Features to install
- install-features: 'odl-restconf'
+ install-features: 'odl-restconf,odl-usecplugin-aaa,odl-usecplugin-openflow'
# Robot custom options
robot-options: ''