From: Daniel Farrell Date: Wed, 18 Jul 2018 21:11:55 +0000 (+0000) Subject: Merge "Job for testing the ODL user configuration" X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=41bdf4a49fcdb2132c2d4714090712e373006df3;hp=04cb4aefd6832a038154d95deee916e58226bc9c;p=releng%2Fbuilder.git Merge "Job for testing the ODL user configuration" --- diff --git a/check_prefix.py b/check_prefix.py new file mode 100755 index 000000000..d4adcbcea --- /dev/null +++ b/check_prefix.py @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: EPL-1.0 +############################################################################## +# Copyright (c) 2018 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 +############################################################################## +"""Ensures that the prefix MUST be set to blank. + +The production prefix MUST always be a blank string. +""" + +__author__ = 'Thanh Ha' + + +import os +import re +import sys + + +def check_prefix(filename): + with open(filename, 'r') as _file: + for num, line in enumerate(_file, 1): + if re.search('prefix:', line): + if "''" not in line: + print( + 'ERROR: A non-blank prefix is defined in ' + 'jjb/defaults.yaml. The prefix MUST be set to blank ' + '\'\' in production!' + ) + sys.exit(1) + + +if __name__ == "__main__": + check_prefix(os.path.join('jjb', 'defaults.yaml')) diff --git a/check_robot.py b/check_robot.py new file mode 100755 index 000000000..89e25120f --- /dev/null +++ b/check_robot.py @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: EPL-1.0 +############################################################################## +# Copyright (c) 2018 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 +############################################################################## +# Ensures that we are only ever using one robot system +# +# Due to the way the Jenkins OpenStack Cloud plugin works we can only limit +# max parallel robot systems by the VM. So having multiple VM types makes it +# very difficult for us to properly limit the amount of parallel robot runs. + +__author__ = 'Thanh Ha' + + +import fnmatch +import os +import re +import sys + + +def get_robot_systems(filename): + """Scan for robot vms. + + Returns a list of Robot systems found in file. + """ + robots = set() + + with open(filename, 'r') as _file: + for num, line in enumerate(_file, 1): + if re.search('centos7-robot', line): + robots.add(line.rsplit(maxsplit=1)[1]) + + return robots + + +if __name__ == "__main__": + robots = [] + for root, dirnames, filenames in os.walk('jjb'): + for filename in fnmatch.filter(filenames, '*.yaml'): + robots += get_robot_systems(os.path.join(root, filename)) + + if len(robots) > 1: + print("ERROR: More than one robot system type definition detected.") + print("Please ensure that ALL templates use the same robot nodes.") + print("Infra does not support more than 1 robot node type in use.") + sys.exit(1) diff --git a/check_robot.sh b/check_robot.sh deleted file mode 100755 index b6ab7030c..000000000 --- a/check_robot.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: EPL-1.0 -############################################################################## -# Copyright (c) 2018 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 -############################################################################## -# Ensures that we are only ever using one robot system -# -# Due to the way the Jenkins OpenStack Cloud plugin works we can only limit -# max parallel robot systems by the VM. So having multiple VM types makes it -# very difficult for us to properly limit the amount of parallel robot runs. - -robots=$(find . -name "*.yaml" -print0 \ - | xargs -0 grep centos7-robot | awk '{print $NF}' \ - | sort | uniq | wc -l) - -if [ "$robots" -gt 1 ]; then - echo "ERROR: More than one robot system type definition detected." - echo "Please ensure that ALL templates use the same robot nodes." - echo "Infra does not support more than 1 robot node type in use." - exit 1 -fi diff --git a/docs/jenkins.rst b/docs/jenkins.rst index 25e5370f9..812f29b34 100644 --- a/docs/jenkins.rst +++ b/docs/jenkins.rst @@ -880,6 +880,9 @@ example is provided by releng/builder at `example-jenkins.ini`_. # Edit jenkins.ini with your username, API token and ODL's sandbox URL $ cat jenkins.ini + [job_builder] + retain_anchors=True + [jenkins] user= password= @@ -937,6 +940,9 @@ Once you've `configured your \`jenkins.ini\` `_ and `verified yo JJB jobs `_ produce valid XML descriptions of Jenkins jobs you can push them to the Jenkins sandbox. +Add the --jobs-only (-j) option to push only jobs to Jenkins sandbox. Pushing +views to Jenkins sandbox requires admin access. + .. important:: When pushing with `jenkins-jobs`, a log message with the number @@ -956,7 +962,7 @@ can push them to the Jenkins sandbox. .. code-block:: bash # Don't push all jobs by omitting the final param! (ctrl+c to abort) - jenkins-jobs --conf jenkins.ini update jjb/ + jenkins-jobs --conf jenkins.ini update -j jjb/ Alternatively, you can push a job to the Jenkins sandbox with a special comment in a releng/builder gerrit patch. The job will be based off of the code your patch is diff --git a/jenkins-config/clouds/openstack/odlvex/cloud.cfg b/jenkins-config/clouds/openstack/odlvex/cloud.cfg index b53023b62..2627fc375 100644 --- a/jenkins-config/clouds/openstack/odlvex/cloud.cfg +++ b/jenkins-config/clouds/openstack/odlvex/cloud.cfg @@ -10,7 +10,7 @@ HARDWARE_ID=v1-standard-1 NETWORK_ID=b5fcd86e-efac-4997-b8bc-dbe0d35bc229 USER_DATA_ID=jenkins-init-script INSTANCE_CAP=75 -SANDBOX_CAP=6 +SANDBOX_CAP=8 FLOATING_IP_POOL= SECURITY_GROUPS=default AVAILABILITY_ZONE=ca-ymq-2 diff --git a/jenkins-init-scripts/builder.sh b/jenkins-init-scripts/builder.sh new file mode 100755 index 000000000..367451f56 --- /dev/null +++ b/jenkins-init-scripts/builder.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# vim: sw=2 ts=2 sts=2 et : + +yum clean all + +# disable the firewall +/bin/bash ./disable_firewall.sh + +cat </etc/sudoers.d/89-jenkins-user-defaults +Defaults:jenkins !requiretty +jenkins ALL = NOPASSWD: ALL +EOF diff --git a/jenkins-init-scripts/devstack.sh b/jenkins-init-scripts/devstack.sh new file mode 100755 index 000000000..d8a873276 --- /dev/null +++ b/jenkins-init-scripts/devstack.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# It looks like the devstack gate is stomping on our dnsmasq setup which +# therefore kills our ability to do proper lookups of some resources. +# Let's capture the 3 nexus IPs into /etc/hosts +cat <> /etc/hosts +# the internal address for nexus +$(dig +short nexus.opendaylight.org) nexus.opendaylight.org +# all the nexus proxies +$(dig +short nexus01.dfw.opendaylight.org) nexus01.dfw.opendaylight.org +$(dig +short nexus02.dfw.opendaylight.org) nexus02.dfw.opendaylight.org +$(dig +short nexus03.ord.opendaylight.org) nexus03.ord.opendaylight.org +EOHOSTS + +# make sure we don't require tty for sudo operations +cat </etc/sudoers.d/89-jenkins-user-defaults +Defaults:jenkins !requiretty +jenkins ALL = NOPASSWD: ALL +EOF + +# vim: sw=2 ts=2 sts=2 et : diff --git a/jenkins-init-scripts/docker.sh b/jenkins-init-scripts/docker.sh new file mode 100755 index 000000000..d8963184c --- /dev/null +++ b/jenkins-init-scripts/docker.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# make sure we don't require tty for sudo operations +cat </etc/sudoers.d/89-jenkins-user-defaults +Defaults:jenkins !requiretty +jenkins ALL = NOPASSWD: ALL +EOF + +# make sure jenkins is part of the docker only if jenkins has already been +# created + +if grep -q jenkins /etc/passwd +then + /usr/sbin/usermod -a -G docker jenkins +fi + +# vim: sw=2 ts=2 sts=2 et : diff --git a/check_prefix.sh b/jenkins-init-scripts/local-init.sh similarity index 55% rename from check_prefix.sh rename to jenkins-init-scripts/local-init.sh index 5b62ac4e3..d55974cae 100755 --- a/check_prefix.sh +++ b/jenkins-init-scripts/local-init.sh @@ -1,19 +1,16 @@ #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## -# Copyright (c) 2018 The Linux Foundation and others. +# Copyright (c) 2016 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 ############################################################################## -# Ensures that the prefix MUST be set to blank -# -# The production prefix MUST always be a blank string. -if grep 'prefix:' jjb/defaults.yaml | grep -v "''"; then - echo "ERROR: A non-blank prefix is defined in jjb/defaults.yaml" - echo "The prefix MUST be set to blank '' in production!" - exit 1 -fi +INIT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +"${INIT_DIR}/system_type.sh" +# shellcheck disable=SC1091 +source /tmp/system_type.sh +"${INIT_DIR}/${SYSTEM_TYPE}.sh" diff --git a/jenkins-init-scripts/mininet-ubuntu.sh b/jenkins-init-scripts/mininet-ubuntu.sh new file mode 100755 index 000000000..7f0cd569e --- /dev/null +++ b/jenkins-init-scripts/mininet-ubuntu.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# make sure we don't require tty for sudo operations +cat </etc/sudoers.d/89-jenkins-user-defaults +Defaults:jenkins !requiretty +jenkins ALL = NOPASSWD: ALL +EOF + +# disable the firewall +/bin/bash ./disable_firewall.sh + +# Add 'hostname' into /etc/hosts during node spinup time to avoid sudo returning +# an 'unable to resolve host' message or some Java API's returning an unknown +# host exception. The workaround on adding "myhostname" into /etc/nss-switch.conf +# does not work on Ubuntu flavours. +sed -i "/127.0.0.1/s/$/\t$(hostname)/" /etc/hosts diff --git a/jenkins-init-scripts/robot.sh b/jenkins-init-scripts/robot.sh new file mode 100755 index 000000000..5fc0579d8 --- /dev/null +++ b/jenkins-init-scripts/robot.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# make sure we don't require tty for sudo operations +cat </etc/sudoers.d/89-jenkins-user-defaults +Defaults:jenkins !requiretty +jenkins ALL = NOPASSWD: ALL +EOF + +# make sure the firewall is stopped +service iptables stop + +# vim: sw=2 ts=2 sts=2 et : diff --git a/jenkins-init-scripts/system_type.sh b/jenkins-init-scripts/system_type.sh new file mode 100755 index 000000000..c5b141afd --- /dev/null +++ b/jenkins-init-scripts/system_type.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# SPDX-License-Identifier: EPL-1.0 +############################################################################## +# Copyright (c) 2016 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 +############################################################################## + +HOST=$(/bin/hostname) +SYSTEM_TYPE='' + +IFS=',' +for i in "java-builder,builder" \ + "builder,builder" \ + "devstack,devstack" \ + "docker,docker" \ + "gbp,ubuntu-docker-ovs" \ + "kubernetes,mininet-ubuntu" \ + "robot,robot" \ + "mininet,mininet-ubuntu" +do set -- $i + if [[ $HOST == *"$1"* ]]; then + SYSTEM_TYPE="$2" + break + fi +done + +# Write out the system type to an environment file to then be sourced +echo "SYSTEM_TYPE=${SYSTEM_TYPE}" > /tmp/system_type.sh + +# vim: sw=4 ts=4 sts=4 et : diff --git a/jenkins-init-scripts/ubuntu-docker-ovs.sh b/jenkins-init-scripts/ubuntu-docker-ovs.sh new file mode 100755 index 000000000..743255b69 --- /dev/null +++ b/jenkins-init-scripts/ubuntu-docker-ovs.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# make sure we don't require tty for sudo operations +cat </etc/sudoers.d/89-jenkins-user-defaults +Defaults:jenkins !requiretty +jenkins ALL = NOPASSWD: ALL +EOF + +# Add 'hostname' into /etc/hosts during node spinup time to avoid sudo returning +# an 'unable to resolve host' message or some Java API's returning an unknown +# host exception. The workaround on adding "myhostname" into /etc/nss-switch.conf +# does not work on Ubuntu flavours. +sed -i "/127.0.0.1/s/$/\t$(hostname)/" /etc/hosts + +# Do the final install of OVS that the has to be done at boot time for +# some reason due to how the snapshots keep behaving. +dpkg --install /root/openvswitch-datapath-dkms* && \ +dpkg --install /root/openvswitch-{common,switch}* + +# add user jenkins to docker group +/usr/sbin/usermod -a -G docker jenkins + +# pull docker images +docker pull alagalah/odlpoc_ovs230 + +# vim: sw=2 ts=2 sts=2 et : diff --git a/jjb/aaa/aaa.yaml b/jjb/aaa/aaa.yaml index 1a60b2883..10bcf3604 100644 --- a/jjb/aaa/aaa.yaml +++ b/jjb/aaa/aaa.yaml @@ -45,3 +45,9 @@ branch: 'master' mvn-settings: 'aaa-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: aaa + description: 'List of aaa jobs' + regex: '^aaa-.*' + <<: *releng_view_common diff --git a/jjb/alto/alto.yaml b/jjb/alto/alto.yaml index e1ad649ae..52ace6034 100644 --- a/jjb/alto/alto.yaml +++ b/jjb/alto/alto.yaml @@ -47,3 +47,9 @@ build-node: centos7-builder-2c-8g mvn-settings: 'alto-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: alto + description: 'List of alto jobs' + regex: '^alto-.*' + <<: *releng_view_common diff --git a/jjb/archetypes/archetypes.yaml b/jjb/archetypes/archetypes.yaml index c31164de3..111686ce4 100644 --- a/jjb/archetypes/archetypes.yaml +++ b/jjb/archetypes/archetypes.yaml @@ -32,3 +32,9 @@ project-name: 'archetypes' branch: 'master' mvn-settings: 'archetypes-settings' + +- view: + name: archetypes + regex: '^archetypes-.*' + description: 'List of archetypes jobs' + <<: *releng_view_common diff --git a/jjb/atrium/atrium.yaml b/jjb/atrium/atrium.yaml index ca443e740..be3daede0 100644 --- a/jjb/atrium/atrium.yaml +++ b/jjb/atrium/atrium.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'atrium-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: atrium + description: 'List of atrium jobs' + regex: '^atrium-.*' + <<: *releng_view_common diff --git a/jjb/autorelease/autorelease-projects.yaml b/jjb/autorelease/autorelease-projects.yaml index 8194f2a2e..994802131 100644 --- a/jjb/autorelease/autorelease-projects.yaml +++ b/jjb/autorelease/autorelease-projects.yaml @@ -36,3 +36,9 @@ **/hs_err_*.log **/target/feature/feature.xml # TODO: **/*.hprof is too large, compress with xz first + +- view: + name: autorelease + description: 'List of autorelease jobs' + regex: '^autorelease-.*' + <<: *releng_view_common diff --git a/jjb/autorelease/validate-autorelease-fluorine.yaml b/jjb/autorelease/validate-autorelease-fluorine.yaml index 17c565b68..7f2d8dab4 100644 --- a/jjb/autorelease/validate-autorelease-fluorine.yaml +++ b/jjb/autorelease/validate-autorelease-fluorine.yaml @@ -37,5 +37,7 @@ project: openflowplugin - ovsdb: project: ovsdb + - serviceutils: + project: serviceutils - sfc: project: sfc diff --git a/jjb/autorelease/view-autorelease-fluorine.yaml b/jjb/autorelease/view-autorelease-fluorine.yaml index 252ec6b60..b552a01e0 100644 --- a/jjb/autorelease/view-autorelease-fluorine.yaml +++ b/jjb/autorelease/view-autorelease-fluorine.yaml @@ -37,5 +37,6 @@ - 'neutron-maven-merge-fluorine' - 'openflowplugin-maven-merge-fluorine' - 'ovsdb-maven-merge-fluorine' + - 'serviceutils-maven-merge-fluorine' - 'sfc-maven-merge-fluorine' <<: *releng_autorelease_view_common_fluorine diff --git a/jjb/bgpcep/bgpcep.yaml b/jjb/bgpcep/bgpcep.yaml index bc4f4e1ea..11f560f5b 100644 --- a/jjb/bgpcep/bgpcep.yaml +++ b/jjb/bgpcep/bgpcep.yaml @@ -62,3 +62,9 @@ branch: 'master' mvn-settings: 'bgpcep-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: bgpcep + description: 'List of bgpcep jobs' + regex: '^bgpcep-.*' + <<: *releng_view_common diff --git a/jjb/bier/bier.yaml b/jjb/bier/bier.yaml index c3e51500a..943205bdf 100644 --- a/jjb/bier/bier.yaml +++ b/jjb/bier/bier.yaml @@ -49,3 +49,9 @@ build-node: centos7-builder-2c-8g mvn-settings: 'bier-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: bier + description: 'List of bier jobs' + regex: '^bier-.*' + <<: *releng_view_common diff --git a/jjb/capwap/capwap.yaml b/jjb/capwap/capwap.yaml index ed7c55974..95c26f504 100644 --- a/jjb/capwap/capwap.yaml +++ b/jjb/capwap/capwap.yaml @@ -44,3 +44,9 @@ branch: master mvn-settings: 'capwap-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: capwap + description: 'List of capwap jobs' + regex: '^capwap-.*' + <<: *releng_view_common diff --git a/jjb/cardinal/cardinal.yaml b/jjb/cardinal/cardinal.yaml index 00397abdd..ba42c4da8 100644 --- a/jjb/cardinal/cardinal.yaml +++ b/jjb/cardinal/cardinal.yaml @@ -44,3 +44,9 @@ branch: 'master' mvn-settings: 'cardinal-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: cardinal + description: 'List of cardinal jobs' + regex: '^cardinal-.*' + <<: *releng_view_common diff --git a/jjb/centinel/centinel.yaml b/jjb/centinel/centinel.yaml index 53da8f640..efc2054ff 100644 --- a/jjb/centinel/centinel.yaml +++ b/jjb/centinel/centinel.yaml @@ -44,3 +44,9 @@ branch: master mvn-settings: 'centinel-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: centinel + description: 'List of centinel jobs' + regex: '^centinel-.*' + <<: *releng_view_common diff --git a/jjb/coe/coe.yaml b/jjb/coe/coe.yaml index e4ddeea1c..5c0a5f5db 100644 --- a/jjb/coe/coe.yaml +++ b/jjb/coe/coe.yaml @@ -57,3 +57,9 @@ branch: 'master' mvn-settings: 'coe-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: coe + description: 'List of coe jobs' + regex: '^coe-.*' + <<: *releng_view_common diff --git a/jjb/controller/controller-csit-clustering.yaml b/jjb/controller/controller-csit-clustering.yaml index 56ab3272c..36beac121 100644 --- a/jjb/controller/controller-csit-clustering.yaml +++ b/jjb/controller/controller-csit-clustering.yaml @@ -5,13 +5,9 @@ - inttest-csit-3node - inttest-csit-verify-3node - # The project name project: 'controller' - - # The functionality under test functionality: 'clustering' - # Project branches stream: - fluorine: branch: 'master' @@ -22,13 +18,8 @@ - all: scope: 'all' - # No tools system VMs needed in JCloud configuration tools_system_count: 0 - # Features to install install-features: > - odl-restconf-noauth, + odl-restconf, odl-clustering-test-app - - # Robot custom options - robot-options: '' diff --git a/jjb/controller/controller.yaml b/jjb/controller/controller.yaml index d6fc7143a..c6b7b4c13 100644 --- a/jjb/controller/controller.yaml +++ b/jjb/controller/controller.yaml @@ -55,3 +55,9 @@ mvn-settings: 'controller-settings' mvn-goals: 'clean deploy -Pintegrationtests,docs' mvn-opts: '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' + +- view: + name: controller + description: 'List of controller jobs' + regex: '^controller-.*' + <<: *releng_view_common diff --git a/jjb/coretutorials/coretutorials.yaml b/jjb/coretutorials/coretutorials.yaml index 7c6b90717..824580b2c 100644 --- a/jjb/coretutorials/coretutorials.yaml +++ b/jjb/coretutorials/coretutorials.yaml @@ -46,3 +46,9 @@ mvn-settings: 'coretutorials-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' build-timeout: 120 + +- view: + name: coretutorials + description: 'List of coretutorials jobs' + regex: '^coretutorials-.*' + <<: *releng_view_common diff --git a/jjb/daexim/daexim.yaml b/jjb/daexim/daexim.yaml index cb3eec201..af0cb1559 100644 --- a/jjb/daexim/daexim.yaml +++ b/jjb/daexim/daexim.yaml @@ -45,3 +45,9 @@ branch: 'master' mvn-settings: 'daexim-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: daexim + description: 'List of daexim jobs' + regex: '^daexim-.*' + <<: *releng_view_common diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml index 1200269da..2f3bc4087 100644 --- a/jjb/defaults.yaml +++ b/jjb/defaults.yaml @@ -3,8 +3,14 @@ - defaults: name: global + functionality: global + stream: global prefix: '' # A prefix for job names sandbox for example: user- + scriptplan: '{project}.txt' + configplan: '{project}.txt' + testplan: '{project}-{functionality}.txt' + streamtestplan: '{project}-{functionality}-{stream}.txt' karaf-version: karaf4 build-days-to-keep: 30 use-features-boot: 'True' @@ -60,6 +66,10 @@ odl-snat-mode: 'controller' enable-itm-direct-tunnels: 'false' openstack_legacy_default_network_services: 'q-dhcp,q-meta,q-svc' + os-cmb-cnt: 1 + os-ctl-cnt: 0 + os-cmp-cnt: 0 + os-std-topo: '0cmb-1ctl-2cmp' # openstack-infra-parameters defaults archive-artifacts: '' @@ -75,7 +85,7 @@ sm-features: '' # CSIT images configuration - openstack_system_image_ocata: ZZCI - CentOS 7 - devstack-ocata - 20171208-1649 + openstack_system_image_queens: ZZCI - CentOS 7 - devstack-pike - 20171208-1649 openstack_system_image_pike: ZZCI - CentOS 7 - devstack-pike - 20171208-1649 stack-template: csit-2-instance-type.yaml docker_system_count: 1 @@ -188,9 +198,9 @@ # Manual CSIT job lists used by sanity or periodic in nature. csit-high-frequency-list-fluorine: > - netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine + netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine csit-high-frequency-list-oxygen: > - netvirt-csit-1node-openstack-queens-upstream-stateful-oxygen + netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen csit-sanity-list-fluorine: > openflowplugin-csit-1node-sanity-only-fluorine, distribution-sanity-fluorine diff --git a/jjb/didm/didm.yaml b/jjb/didm/didm.yaml index ff620ae1f..b7a6e8704 100644 --- a/jjb/didm/didm.yaml +++ b/jjb/didm/didm.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'didm-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: didm + description: 'List of didm jobs' + regex: '^didm-.*' + <<: *releng_view_common diff --git a/jjb/dlux/dlux.yaml b/jjb/dlux/dlux.yaml index 7c799b44a..5cf48822e 100644 --- a/jjb/dlux/dlux.yaml +++ b/jjb/dlux/dlux.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'dlux-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: dlux + description: 'List of dlux jobs' + regex: '^dlux-.*' + <<: *releng_view_common diff --git a/jjb/dluxapps/dluxapps.yaml b/jjb/dluxapps/dluxapps.yaml index ca850310b..d006b1540 100644 --- a/jjb/dluxapps/dluxapps.yaml +++ b/jjb/dluxapps/dluxapps.yaml @@ -47,3 +47,9 @@ build-node: centos7-builder-2c-8g mvn-settings: 'dluxapps-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: dluxapps + description: 'List of dluxapps jobs' + regex: '^dluxapps-.*' + <<: *releng_view_common diff --git a/jjb/docs/docs-rtd.yaml b/jjb/docs/docs-rtd.yaml index ac1419706..f445b3227 100644 --- a/jjb/docs/docs-rtd.yaml +++ b/jjb/docs/docs-rtd.yaml @@ -17,3 +17,9 @@ build-timeout: 60 rtd-build-url: https://readthedocs.org/api/v2/webhook/opendaylight/32322/ rtd-token: 86e54dd38c651e2164ea63c183ae601d19cd1f3c + +- view: + name: docs + description: 'List of docs jobs' + regex: '^docs-.*' + <<: *releng_view_common diff --git a/jjb/eman/eman.yaml b/jjb/eman/eman.yaml index 3a3271a10..82b6c628a 100644 --- a/jjb/eman/eman.yaml +++ b/jjb/eman/eman.yaml @@ -47,3 +47,9 @@ branch: 'master' mvn-settings: 'eman-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: eman + description: 'List of eman jobs' + regex: '^eman-.*' + <<: *releng_view_common diff --git a/jjb/faas/faas.yaml b/jjb/faas/faas.yaml index ea767f6e9..9c6292c5a 100644 --- a/jjb/faas/faas.yaml +++ b/jjb/faas/faas.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'faas-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: faas + description: 'List of faas jobs' + regex: '^faas-.*' + <<: *releng_view_common diff --git a/jjb/federation/federation.yaml b/jjb/federation/federation.yaml index d08bc6a46..1cb290d76 100644 --- a/jjb/federation/federation.yaml +++ b/jjb/federation/federation.yaml @@ -46,3 +46,9 @@ branch: 'master' mvn-settings: 'federation-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: federation + description: 'List of federation jobs' + regex: '^federation-.*' + <<: *releng_view_common diff --git a/jjb/genius/genius-patch-test.yaml b/jjb/genius/genius-patch-test.yaml index b9f22ec4c..354b44152 100644 --- a/jjb/genius/genius-patch-test.yaml +++ b/jjb/genius/genius-patch-test.yaml @@ -19,11 +19,15 @@ feature: - netvirt: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-gate-stateful-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-stateful-{stream} - cluster-netvirt: csit-list: > - netvirt-csit-3node-openstack-{os-branch}-gate-stateful-{stream} + netvirt-csit-3node-{os-std-topo}-openstack-{os-branch}-gate-stateful-{stream} + + - netvirt-itm-direct-tunnels: + csit-list: > + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-stateful-itm-direct-tunnels-{stream} - genius: csit-list: > diff --git a/jjb/genius/genius.yaml b/jjb/genius/genius.yaml index db5cc0958..ba9fcf5fe 100644 --- a/jjb/genius/genius.yaml +++ b/jjb/genius/genius.yaml @@ -71,3 +71,9 @@ build-node: centos7-builder-2c-8g mvn-settings: 'genius-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: genius + description: 'List of genius jobs' + regex: '^genius-.*' + <<: *releng_view_common diff --git a/jjb/global-jjb b/jjb/global-jjb index f58aa56ac..5ca1149a9 160000 --- a/jjb/global-jjb +++ b/jjb/global-jjb @@ -1 +1 @@ -Subproject commit f58aa56acc44a8eb7498af10e5d229e1690e58b0 +Subproject commit 5ca1149a99351cc571d21b315e4acecae6b109b5 diff --git a/jjb/groupbasedpolicy/groupbasedpolicy-csit-1node-openstack.yaml b/jjb/groupbasedpolicy/groupbasedpolicy-csit-1node-openstack.yaml index 8b4b54639..57d8b73a6 100644 --- a/jjb/groupbasedpolicy/groupbasedpolicy-csit-1node-openstack.yaml +++ b/jjb/groupbasedpolicy/groupbasedpolicy-csit-1node-openstack.yaml @@ -27,9 +27,9 @@ install-features: 'odl-groupbasedpolicy-neutron-and-ofoverlay,odl-restconf' openstack: - - ocata: - openstack-branch: 'stable/ocata' - odl-ml2-branch: 'stable/ocata' + - pike: + openstack-branch: 'stable/pike' + odl-ml2-branch: 'stable/pike' public-bridge: 'br-int' diff --git a/jjb/groupbasedpolicy/groupbasedpolicy.yaml b/jjb/groupbasedpolicy/groupbasedpolicy.yaml index 93534339a..aff6ca8da 100644 --- a/jjb/groupbasedpolicy/groupbasedpolicy.yaml +++ b/jjb/groupbasedpolicy/groupbasedpolicy.yaml @@ -61,3 +61,9 @@ mvn-settings: 'groupbasedpolicy-settings' mvn-goals: '-U clean deploy findbugs:findbugs' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: groupbasedpolicy + description: 'List of groupbasedpolicy jobs' + regex: '^groupbasedpolicy-.*' + <<: *releng_view_common diff --git a/jjb/honeycomb/vbd/vbd.yaml b/jjb/honeycomb/vbd/vbd.yaml index 936c72b1e..ef481385f 100644 --- a/jjb/honeycomb/vbd/vbd.yaml +++ b/jjb/honeycomb/vbd/vbd.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'honeycomb-vbd-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: vbd + description: 'List of vbd jobs' + regex: '^vbd-.*' + <<: *releng_view_common diff --git a/jjb/infrautils/infrautils.yaml b/jjb/infrautils/infrautils.yaml index 2a865fc9c..dc6294200 100644 --- a/jjb/infrautils/infrautils.yaml +++ b/jjb/infrautils/infrautils.yaml @@ -58,3 +58,9 @@ branch: 'master' mvn-settings: 'infrautils-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: infrautils + description: 'List of infrautils jobs' + regex: '^infrautils-.*' + <<: *releng_view_common diff --git a/jjb/integration/common-functions.sh b/jjb/integration/common-functions.sh index 051377f03..1f1d2c59d 100644 --- a/jjb/integration/common-functions.sh +++ b/jjb/integration/common-functions.sh @@ -55,6 +55,7 @@ function set_java_vars() { echo "Set JAVA_HOME" export JAVA_HOME="${java_home}" + # shellcheck disable=SC2037 JAVA_RESOLVED=$(readlink -e "${java_home}/bin/java") echo "Java binary pointed at by JAVA_HOME: ${JAVA_RESOLVED}" @@ -116,6 +117,41 @@ function configure_karaf_log() { cat ${LOGCONF} } # function configure_karaf_log() +function run_plan() { + local -r type=$1 + + case ${type} in + script) + plan=$SCRIPTPLAN + ;; + config|*) + plan=$CONFIGPLAN + ;; + esac + + printf "Locating ${type} plan to use...\n" + plan_filepath="${WORKSPACE}/test/csit/${type}plans/$plan" + if [ ! -f "${plan_filepath}" ]; then + plan_filepath="${WORKSPACE}/test/csit/${type}plans/${STREAMTESTPLAN}" + if [ ! -f "${plan_filepath}" ]; then + plan_filepath="${WORKSPACE}/test/csit/${type}plans/${TESTPLAN}" + fi + fi + + if [ -f "${plan_filepath}" ]; then + printf "${type} plan exists!!!\n" + printf "Changing the ${type} plan path...\n" + cat ${plan_filepath} | sed "s:integration:${WORKSPACE}:" > ${type}plan.txt + cat ${type}plan.txt + for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' ${type}plan.txt ); do + printf "Executing ${line}...\n" + # shellcheck source=${line} disable=SC1091 + source ${line} + done + fi + printf "Finished running ${type} plans\n" +} # function run_plan() + # convert commas in csv strings to spaces (ssv) function csv2ssv() { local csv=$1 @@ -275,7 +311,7 @@ EOF ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_after.log pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_after.log | grep -v grep | tr -s ' ' | cut -f2 -d' ') echo "karaf main: org.apache.karaf.main.Main, pid:${pid}" - ssh ${!CONTROLLERIP} "jstack ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true + ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true echo "killing karaf process..." ${SSH} "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh' ${SSH} ${!CONTROLLERIP} "sudo journalctl > /tmp/journalctl.log" diff --git a/jjb/integration/csit-jobs-fluorine.lst b/jjb/integration/csit-jobs-fluorine.lst index 766f38977..3df4b69a3 100644 --- a/jjb/integration/csit-jobs-fluorine.lst +++ b/jjb/integration/csit-jobs-fluorine.lst @@ -29,21 +29,21 @@ netconf-csit-1node-userfeatures-all-fluorine, netconf-csit-3node-cluster-stress-all-fluorine, netconf-csit-3node-clustering-all-fluorine, netconf-csit-3node-clustering-scale-all-fluorine, -netvirt-csit-1node-openstack-pike-upstream-stateful-fluorine, -netvirt-csit-1node-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine, -netvirt-csit-1node-openstack-pike-upstream-stateful-snat-conntrack-fluorine, -netvirt-csit-1node-openstack-queens-sfc-fluorine, -netvirt-csit-1node-openstack-queens-upgrade-fluorine, -netvirt-csit-1node-openstack-queens-upgrade-snat-conntrack-fluorine, -netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine, -netvirt-csit-1node-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine, -netvirt-csit-1node-openstack-queens-upstream-stateful-snat-conntrack-fluorine, -netvirt-csit-3node-openstack-pike-upstream-stateful-fluorine, -netvirt-csit-3node-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine, -netvirt-csit-3node-openstack-pike-upstream-stateful-snat-conntrack-fluorine, -netvirt-csit-3node-openstack-queens-upstream-stateful-fluorine, -netvirt-csit-3node-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine, -netvirt-csit-3node-openstack-queens-upstream-stateful-snat-conntrack-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-sfc-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upgrade-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upgrade-snat-conntrack-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-fluorine, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-fluorine, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine, netvirt-csit-hwvtep-1node-openstack-pike-upstream-stateful-fluorine, netvirt-csit-hwvtep-1node-openstack-queens-upstream-stateful-fluorine, netvirt-csit-hwvtep-3node-openstack-pike-upstream-stateful-fluorine, diff --git a/jjb/integration/csit-jobs-oxygen.lst b/jjb/integration/csit-jobs-oxygen.lst index 532b3dc96..b5f4a9b32 100644 --- a/jjb/integration/csit-jobs-oxygen.lst +++ b/jjb/integration/csit-jobs-oxygen.lst @@ -22,9 +22,9 @@ distribution-csit-1node-userfeatures-all-oxygen, dluxapps-csit-1node-yangman-all-oxygen, genius-csit-1node-upstream-all-oxygen, genius-csit-3node-upstream-all-oxygen, +groupbasedpolicy-csit-1node-1cmb-0ctl-0cmp-openstack-pike-openstack-oxygen, groupbasedpolicy-csit-1node-3-node-all-oxygen, groupbasedpolicy-csit-1node-6node-all-oxygen, -groupbasedpolicy-csit-1node-openstack-ocata-openstack-oxygen, groupbasedpolicy-csit-1node-sxp-only-oxygen, groupbasedpolicy-csit-3node-clustering-all-oxygen, l2switch-csit-1node-host-scalability-daily-only-oxygen, @@ -41,19 +41,19 @@ netconf-csit-1node-userfeatures-all-oxygen, netconf-csit-3node-cluster-stress-all-oxygen, netconf-csit-3node-clustering-all-oxygen, netconf-csit-3node-clustering-scale-all-oxygen, -netvirt-csit-1node-openstack-pike-upstream-stateful-itm-direct-tunnels-oxygen, -netvirt-csit-1node-openstack-pike-upstream-stateful-oxygen, -netvirt-csit-1node-openstack-pike-upstream-stateful-snat-conntrack-oxygen, -netvirt-csit-1node-openstack-queens-sfc-oxygen, -netvirt-csit-1node-openstack-queens-upstream-stateful-itm-direct-tunnels-oxygen, -netvirt-csit-1node-openstack-queens-upstream-stateful-oxygen, -netvirt-csit-1node-openstack-queens-upstream-stateful-snat-conntrack-oxygen, -netvirt-csit-3node-openstack-pike-upstream-stateful-itm-direct-tunnels-oxygen, -netvirt-csit-3node-openstack-pike-upstream-stateful-oxygen, -netvirt-csit-3node-openstack-pike-upstream-stateful-snat-conntrack-oxygen, -netvirt-csit-3node-openstack-queens-upstream-stateful-itm-direct-tunnels-oxygen, -netvirt-csit-3node-openstack-queens-upstream-stateful-oxygen, -netvirt-csit-3node-openstack-queens-upstream-stateful-snat-conntrack-oxygen, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-oxygen, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-oxygen, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-oxygen, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-sfc-oxygen, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-oxygen, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen, +netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-oxygen, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-oxygen, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-oxygen, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-oxygen, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-oxygen, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen, +netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-oxygen, netvirt-csit-hwvtep-1node-openstack-pike-upstream-stateful-oxygen, netvirt-csit-hwvtep-1node-openstack-queens-upstream-stateful-oxygen, netvirt-csit-hwvtep-3node-openstack-pike-upstream-stateful-oxygen, diff --git a/jjb/integration/distribution/distribution-jobs.yaml b/jjb/integration/distribution/distribution-jobs.yaml index af7327a60..ce35b2fa0 100644 --- a/jjb/integration/distribution/distribution-jobs.yaml +++ b/jjb/integration/distribution/distribution-jobs.yaml @@ -30,7 +30,7 @@ karaf-version: odl # Self-Managed projects repos and features: sm-repos: mvn:org.opendaylight.sxp/features-sxp//xml/features - sm-features: odl-sxp-controller + sm-features: odl-sxp-routing - oxygen: branch: 'stable/oxygen' karaf-version: karaf4 @@ -390,3 +390,8 @@ - integration-csit-archive-build - lf-infra-publish +- view: + name: distribution + description: 'List of distribution jobs' + regex: '^(integration-)?distribution-.*' + <<: *releng_view_common diff --git a/jjb/integration/integration-configure-clustering.sh b/jjb/integration/integration-configure-clustering.sh index 42a2d8696..c6e567b89 100644 --- a/jjb/integration/integration-configure-clustering.sh +++ b/jjb/integration/integration-configure-clustering.sh @@ -42,17 +42,7 @@ nodes_list=$(join "${nodes[@]}") echo ${nodes_list} -# Run script plan in case it exists -if [ -f ${WORKSPACE}/test/csit/scriptplans/${TESTPLAN} ]; then - echo "scriptplan exists!!!" - echo "Reading the scriptplan:" - cat ${WORKSPACE}/test/csit/scriptplans/${TESTPLAN} | sed "s:integration:${WORKSPACE}:" > scriptplan.txt - cat scriptplan.txt - for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' scriptplan.txt ); do - echo "Executing ${line}..." - source ${line} - done -fi +run_plan "script" # Create the configuration script to be run on controllers. cat > ${WORKSPACE}/configuration-script.sh < configplan.txt - cat configplan.txt - for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' configplan.txt ); do - echo "Executing ${line}..." - source ${line} - done -fi +run_plan "config" # Copy over the startup script to each controller and execute it. for i in `seq 1 ${NUM_ODL_SYSTEM}` diff --git a/jjb/integration/integration-deploy-controller-run-test.sh b/jjb/integration/integration-deploy-controller-run-test.sh index 021161e61..6f43a35e5 100644 --- a/jjb/integration/integration-deploy-controller-run-test.sh +++ b/jjb/integration/integration-deploy-controller-run-test.sh @@ -30,17 +30,7 @@ echo "ACTUALFEATURES: ${ACTUALFEATURES}" SPACE_SEPARATED_FEATURES=$(echo "${ACTUALFEATURES}" | tr ',' ' ') echo "SPACE_SEPARATED_FEATURES: ${SPACE_SEPARATED_FEATURES}" -if [ -f "${WORKSPACE}/test/csit/scriptplans/${TESTPLAN}" ]; then - echo "scriptplan exists!!!" - echo "Changing the scriptplan path..." - cat ${WORKSPACE}/test/csit/scriptplans/${TESTPLAN} | sed "s:integration:${WORKSPACE}:" > scriptplan.txt - cat scriptplan.txt - for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' scriptplan.txt ); do - echo "Executing ${line}..." - # shellcheck source=${line} disable=SC1091 - source ${line} - done -fi +run_plan "script" cat > ${WORKSPACE}/configuration-script.sh < configplan.txt - cat configplan.txt - for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' configplan.txt ); do - echo "Executing ${line}..." - # shellcheck source=${line} disable=SC1091 - source ${line} - done -fi +run_plan "config" # Copy over the startup script to controller and execute it. for i in `seq 1 ${NUM_ODL_SYSTEM}` @@ -271,7 +245,7 @@ do ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_before.log pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_before.log | grep -v grep | tr -s ' ' | cut -f2 -d' ') echo "karaf main: org.apache.karaf.main.Main, pid:${pid}" - ssh ${!CONTROLLERIP} "jstack ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_before.log || true + ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_before.log || true done if [ ${NUM_OPENSTACK_SYSTEM} -gt 0 ]; then @@ -360,7 +334,7 @@ do ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_after.log pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_after.log | grep -v grep | tr -s ' ' | cut -f2 -d' ') echo "karaf main: org.apache.karaf.main.Main, pid:${pid}" - ssh ${!CONTROLLERIP} "jstack ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true + ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true echo "Killing ODL" set +e # We do not want to create red dot just because something went wrong while fetching logs. ssh "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh' diff --git a/jjb/integration/integration-deploy-openstack-run-test.sh b/jjb/integration/integration-deploy-openstack-run-test.sh index 2b6f7fde7..fbc577c2c 100644 --- a/jjb/integration/integration-deploy-openstack-run-test.sh +++ b/jjb/integration/integration-deploy-openstack-run-test.sh @@ -57,6 +57,9 @@ DISTROSTREAM: ${DISTROSTREAM} BUNDLE_URL: ${BUNDLE_URL} CONTROLLERFEATURES: ${CONTROLLERFEATURES} CONTROLLERDEBUGMAP: ${CONTROLLERDEBUGMAP} +SCRIPTPLAN: ${SCRIPTPLAN} +CONFIGPLAN: ${CONFIGPLAN} +STREAMTESTPLAN: ${STREAMTESTPLAN} TESTPLAN: ${TESTPLAN} SUITES: ${SUITES} PATCHREFSPEC: ${PATCHREFSPEC} @@ -141,7 +144,7 @@ function install_openstack_clients_in_robot_vm() { done if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then - #networking-l2gw is not officially available in any release yet. Gettting the latest stable version. + #networking-l2gw is not officially available in any release yet. Getting the latest stable version. $PYTHON -m pip install networking-l2gw==11.0.0 fi } @@ -158,17 +161,6 @@ function is_openstack_feature_enabled() { echo 0 } -function fix_libvirt_version_n_cpu_pike() { - local ip=$1 - ${SSH} ${ip} " - cd /opt/stack; - git clone https://git.openstack.org/openstack/requirements; - cd requirements; - git checkout stable/pike; - sed -i s/libvirt-python===3.5.0/libvirt-python===4.2.0/ upper-constraints.txt - " -} - #Function to install rdo release # This will help avoiding installing wrong version of packages which causes # functionality failures @@ -686,25 +678,8 @@ function retry() { return ${rc} } -# if we are using the new netvirt impl, as determined by the feature name -# odl-netvirt-openstack (note: old impl is odl-ovsdb-openstack) then we -# want PROVIDER_MAPPINGS to be used -- this should be fixed if we want to support -# external networks in legacy netvirt -if [[ ${CONTROLLERFEATURES} == *"odl-netvirt-openstack"* ]]; then - ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}" -else - ODL_PROVIDER_MAPPINGS= -fi - -# if we are using the old netvirt impl, as determined by the feature name -# odl-ovsdb-openstack (note: new impl is odl-netvirt-openstack) then we -# want ODL_L3 to be True. New impl wants it False -if [[ ${CONTROLLERFEATURES} == *"odl-ovsdb-openstack"* ]]; then - ODL_L3=True -else - ODL_L3=False -fi - +ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}" +ODL_L3=False RECLONE=False ODL_PORT=8181 @@ -826,8 +801,10 @@ for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do scp ${WORKSPACE}/get_devstack.sh ${!CONTROLIP}:/tmp # devstack Master is yet to migrate fully to lib/neutron, there are some ugly hacks that is # affecting the stacking. - #Workaround For Queens, Make the physical Network as physnet1 in lib/neutron - #Workaround Comment out creating initial Networks in lib/neutron + # Workaround For Queens, Make the physical Network as physnet1 in lib/neutron + # In Queens the neutron new libs are used and do not have the following options from Pike and earlier: + # Q_ML2_PLUGIN_FLAT_TYPE_OPTIONS could be used for the flat_networks + # and Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS could be used for the ml2_type_vlan ${SSH} ${!CONTROLIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1" if [ "${ODL_ML2_BRANCH}" == "stable/queens" ]; then ssh ${!CONTROLIP} "sed -i 's/flat_networks public/flat_networks public,physnet1/' /opt/stack/devstack/lib/neutron" @@ -884,12 +861,6 @@ for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do scp ${WORKSPACE}/hosts_file ${!COMPUTEIP}:/tmp/hosts scp ${WORKSPACE}/get_devstack.sh ${!COMPUTEIP}:/tmp ${SSH} ${!COMPUTEIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1" - if [ "${ODL_ML2_BRANCH}" == "stable/pike" ]; then - echo "Updating requirements for ${ODL_ML2_BRANCH}" - echo "Workaround for libvirt-python failing installation" - echo "Modify upper-constraints to use libvirt-python 4.2.0" - fix_libvirt_version_n_cpu_pike ${!COMPUTEIP} - fi create_compute_node_local_conf ${!COMPUTEIP} ${!CONTROLIP} ${ODLMGRIP[$SITE_INDEX]} "${ODL_OVS_MGRS[$SITE_INDEX]}" scp ${WORKSPACE}/local.conf_compute_${!COMPUTEIP} ${!COMPUTEIP}:/opt/stack/devstack/local.conf echo "Install rdo release to avoid incompatible Package versions" diff --git a/jjb/integration/integration-macros.yaml b/jjb/integration/integration-macros.yaml index 36479f2fd..2ab9bb4fc 100644 --- a/jjb/integration/integration-macros.yaml +++ b/jjb/integration/integration-macros.yaml @@ -79,6 +79,22 @@ default: '{stream}' description: 'Distribution stream string, for suites to know which behavior to expect' +- parameter: + name: integration-script-plan + parameters: + - string: + name: SCRIPTPLAN + default: '{script-plan}' + description: 'Script plan we will run before downloading and un-archiving am ODL distribution' + +- parameter: + name: integration-config-plan + parameters: + - string: + name: CONFIGPLAN + default: '{config-plan}' + description: 'Config plan we will run after un-archiving and starting an ODL distribution' + - parameter: name: integration-stream-test-plan parameters: @@ -104,8 +120,8 @@ description: | List of space-separated suites. Useful when running specific suites within a testplan. Do not include ${{WORKSPACE}}/test/csit/suites/ in the values: - (ex. openstack/connectivity/l2.robot openstack/tempest/tempest.robot - integration/test/csit/suites/netvirt/ElanService/). + (ex. openstack/connectivity/l2.robot openstack/clustering/ha_l2.robot + openstack/tempest/tempest.robot netvirt/elan/elan.robot). - parameter: name: integration-test-options @@ -194,7 +210,7 @@ exclude-no-code-change: false - draft-published-event - comment-added-contains-event: - comment-contains-value: 'recheck$' + comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$' override-votes: true gerrit-build-unstable-verified-value: +1 gerrit-build-unstable-codereview-value: 0 @@ -542,6 +558,13 @@ #!/bin/bash cd $WORKSPACE mkdir -p ./archives + for i in `seq 1 ${NUM_ODL_SYSTEM}`; do + NODE_FOLDER="./archives/odl_${i}" + mkdir -p ${NODE_FOLDER} + mv odl${i}_karaf* ${NODE_FOLDER} || true + mv karaf_${i}_*_threads* ${NODE_FOLDER} || true + mv *_${i}.png ${NODE_FOLDER} || true + done curl --output robot-plugin.zip "$BUILD_URL/robot/report/*zip*/robot-plugin.zip" unzip -d ./archives robot-plugin.zip mv *.log *.log.gz *.csv *.png ./archives || true # Don't fail if file missing diff --git a/jjb/integration/integration-start-cluster-run-test.sh b/jjb/integration/integration-start-cluster-run-test.sh index 8a548b938..e11908bb6 100644 --- a/jjb/integration/integration-start-cluster-run-test.sh +++ b/jjb/integration/integration-start-cluster-run-test.sh @@ -92,7 +92,7 @@ do ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_before.log pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_before.log | grep -v grep | tr -s ' ' | cut -f2 -d' ') echo "karaf main: org.apache.karaf.main.Main, pid:${pid}" - ssh ${!CONTROLLERIP} "jstack ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_before.log || true + ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_before.log || true done echo "Generating mininet variables..." @@ -175,7 +175,7 @@ do ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_after.log pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_after.log | grep -v grep | tr -s ' ' | cut -f2 -d' ') echo "karaf main: org.apache.karaf.main.Main, pid:${pid}" - ssh ${!CONTROLLERIP} "jstack ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true + ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_after.log || true echo "killing karaf process..." ssh "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh' done diff --git a/jjb/integration/integration-templates.yaml b/jjb/integration/integration-templates.yaml index c7634c551..b69e962ac 100644 --- a/jjb/integration/integration-templates.yaml +++ b/jjb/integration/integration-templates.yaml @@ -62,6 +62,10 @@ controller-features: '{install-features}' - integration-test-options: test-options: '{robot-options}' + - integration-script-plan: + script-plan: '{scriptplan}' + - integration-config-plan: + config-plan: '{configplan}' - integration-stream-test-plan: stream-test-plan: '{project}-{functionality}-{verify-stream}.txt' - integration-test-plan: @@ -156,10 +160,14 @@ controller-debug-map: '{debug-map}' - integration-test-options: test-options: '{robot-options}' + - integration-script-plan: + script-plan: '{scriptplan}' + - integration-config-plan: + config-plan: '{configplan}' - integration-stream-test-plan: - stream-test-plan: '{project}-{functionality}-{stream}.txt' + stream-test-plan: '{streamtestplan}' - integration-test-plan: - test-plan: '{project}-{functionality}.txt' + test-plan: '{testplan}' - integration-test-suites: test-suites: '{test-suites}' - integration-patch-refspec: @@ -392,6 +400,10 @@ controller-features: 'odl-jolokia,{install-features}' - integration-test-options: test-options: '{robot-options}' + - integration-script-plan: + script-plan: '{scriptplan}' + - integration-config-plan: + config-plan: '{configplan}' - integration-stream-test-plan: stream-test-plan: '{project}-{functionality}-{verify-stream}.txt' - integration-test-plan: @@ -490,10 +502,14 @@ controller-debug-map: '{debug-map}' - integration-test-options: test-options: '{robot-options}' + - integration-script-plan: + script-plan: '{scriptplan}' + - integration-config-plan: + config-plan: '{configplan}' - integration-stream-test-plan: - stream-test-plan: '{project}-{functionality}-{stream}.txt' + stream-test-plan: '{streamtestplan}' - integration-test-plan: - test-plan: '{project}-{functionality}.txt' + test-plan: '{testplan}' - integration-test-suites: test-suites: '{test-suites}' - integration-patch-refspec: @@ -722,6 +738,10 @@ controller-features: 'odl-jolokia,{install-features}' - integration-test-options: test-options: '{robot-options}' + - integration-script-plan: + script-plan: '{scriptplan}' + - integration-config-plan: + config-plan: '{configplan}' - integration-stream-test-plan: stream-test-plan: '{project}-{functionality}-{stream}.txt' - integration-test-plan: @@ -841,6 +861,10 @@ controller-debug-map: '{debug-map}' - integration-test-options: test-options: '{robot-options}' + - integration-script-plan: + script-plan: '{scriptplan}' + - integration-config-plan: + config-plan: '{configplan}' - integration-test-plan: test-plan: '{testplan}' - integration-test-suites: @@ -1021,7 +1045,8 @@ - lf-infra-publish - job-template: - name: '{prefix}{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}' + # yamllint disable-line rule:line-length + name: '{prefix}{project}-csit-{topology}-{os-cmb-cnt}cmb-{os-ctl-cnt}ctl-{os-cmp-cnt}cmp-openstack-{openstack}-{functionality}-{stream}' id: inttest-csit-openstack disabled: false @@ -1054,6 +1079,10 @@ controller-debug-map: '{debug-map}' - integration-test-options: test-options: '{robot-options}' + - integration-script-plan: + script-plan: '{scriptplan}' + - integration-config-plan: + config-plan: '{configplan}' - integration-test-plan: test-plan: '{testplan}' - integration-test-suites: diff --git a/jjb/integration/integration-test-jobs.yaml b/jjb/integration/integration-test-jobs.yaml index cfde9c050..da4fb8f3d 100644 --- a/jjb/integration/integration-test-jobs.yaml +++ b/jjb/integration/integration-test-jobs.yaml @@ -22,16 +22,16 @@ mvn-version: 'mvn35' csit-list: !include: csit-jobs-fluorine.lst build-order: > - infrautils mdsal controller aaa netconf daexim bgpcep ovsdb neutron - lispflowmapping openflowplugin coe genius sfc netvirt + odlparent yangtools infrautils mdsal controller aaa netconf daexim bgpcep + ovsdb neutron lispflowmapping openflowplugin coe genius sfc netvirt - oxygen: branch: 'stable/oxygen' mvn-version: 'mvn35' csit-list: !include: csit-jobs-oxygen.lst build-order: > - infrautils mdsal controller aaa netconf daexim bgpcep ovsdb neutron - lispflowmapping openflowplugin coe genius sfc netvirt + odlparent yangtools infrautils mdsal controller aaa netconf daexim bgpcep + ovsdb neutron lispflowmapping openflowplugin coe genius sfc netvirt - project: name: integration-distribution @@ -50,7 +50,7 @@ csit-blacklist: > alto bier capwap centinel didm dluxapps groupbasedpolicy iotdm jsonrpc lacp l2switch messaging4transport nemo netide nic ocpplugin of-config p4plugin packetcable - sdninterfaceapp sxp tsdr unimgr usc usecplugin vtn gate longevity sanity tdd wip + sdninterfaceapp sxp tsdr unimgr usc usecplugin vtn gate longevity sanity tdd tempest wip csit-list: !include: csit-jobs-fluorine.lst csit-weekly-list: '{csit-weekly-list-fluorine}' csit-high-frequency-list: '{csit-high-frequency-list-fluorine}' @@ -58,7 +58,7 @@ branch: 'stable/oxygen' csit-blacklist: > capwap centinel didm iotdm jsonrpc lacp messaging4transport netide nic - ocpplugin sdninterfaceapp unimgr usecplugin gate longevity sanity tdd wip + ocpplugin sdninterfaceapp unimgr usecplugin gate longevity sanity tdd tempest wip csit-list: !include: csit-jobs-oxygen.lst csit-weekly-list: '{csit-weekly-list-oxygen}' csit-high-frequency-list: '{csit-high-frequency-list-oxygen}' @@ -479,3 +479,9 @@ publishers: - lf-infra-publish + +- view: + name: integration + description: 'List of integration jobs' + regex: '^integration-.*' + <<: *releng_view_common diff --git a/jjb/integration/multipatch-distribution.sh b/jjb/integration/multipatch-distribution.sh index cd7fbbeb6..eb61446ec 100755 --- a/jjb/integration/multipatch-distribution.sh +++ b/jjb/integration/multipatch-distribution.sh @@ -2,14 +2,6 @@ set -e -# TODO: 1) clean up inline todo's below :) -# TODO: 2) Use just a topic branch to create a distribution. see this email: -# https://lists.opendaylight.org/pipermail/discuss/2015-December/006040.html -# TODO: 3) Bubble up CSIT jobs that are triggered by the multipatch job to a jenkins -# parameter. the default can be distribution-test which calls all CSIT jobs -# but being able to easily override it to a smaller subset (or none) will be -# helpful - # create a fresh empty place to build this custom distribution BUILD_DIR=${WORKSPACE}/patch_tester DISTRIBUTION_BRANCH_TO_BUILD=$DISTROBRANCH #renaming variable for clarity @@ -29,8 +21,6 @@ export EMAIL="sandbox@jenkins.opendaylight.org" export GIT_COMMITTER_NAME="Multipatch Job" # Extract a list of patches per project from an comment trigger. An example is: -# Patch Set 1: -# # multipatch-build:openflowplugin:45/69445/1,genius:46/69446/1,netvirt:47/69447/1 if [ -n "$GERRIT_EVENT_COMMENT_TEXT" ]; then if [[ "$GERRIT_EVENT_COMMENT_TEXT" == *fast* ]]; then @@ -57,15 +47,18 @@ if [[ "${PATCHES_TO_BUILD}" == *topic* ]]; then # get all patches number for a topic for a given project IFS=$'\n' read -rd '' -a GERRIT_PATCH_LIST <<< "$(ssh -p 29418 jenkins-$SILO@git.opendaylight.org gerrit query status:open topic:${TOPIC} project:${PROJECT} \ | grep 'number:' | awk '{{ print $2 }}')" || true - echo "Add ${PROJECT}:${GERRIT_PATCH_LIST[*]}" # add project if it is the first with patches or it is not the first if [[ -z "${PATCHES_TO_BUILD}" && ! -z "${GERRIT_PATCH_LIST[*]}" ]]; then PATCHES_TO_BUILD="${PROJECT}" elif [[ ! -z "${PATCHES_TO_BUILD}" ]]; then + if [[ ! -z "${GERRIT_PATCH_LIST[*]}" ]]; then + echo "Add ${PROJECT}:${DISTRIBUTION_BRANCH_TO_BUILD}" + fi PATCHES_TO_BUILD="${PATCHES_TO_BUILD},${PROJECT}" fi # sort project patches if [[ ! -z "${GERRIT_PATCH_LIST[*]}" ]]; then + echo "Add ${PROJECT}:${GERRIT_PATCH_LIST[*]}" REF_LIST=() # create reference list with patch number-refspec for PATCH in "${GERRIT_PATCH_LIST[@]}"; do @@ -92,32 +85,28 @@ IFS=',' read -ra PATCHES <<< "${PATCHES_TO_BUILD}" declare -a PROJECTS # For each patch: -# * Clone the project. -# * Optionally, checkout a specific (typically unmerged) Gerrit patch. If none, +# 1. Clone the project. +# 2. Optionally, checkout a specific (typically unmerged) Gerrit patch. If none, # default to Integration/Distribution branch via {branch} JJB param. -# * Also optionally, cherry-pick series of patches on top of the checkout. -# * Final option: perform a 'release' by removing "-SNAPSHOT" everywhere within the project. +# 3. Also optionally, cherry-pick series of patches on top of the checkout. # # Each patch is found in the ${PATCHES_TO_BUILD} variable as a comma separated -# list of project[=checkout][:cherry-pick]* values. +# list of project[=checkout][:cherry-pick]* values. Examples: # # Checkout a (typically unmerged) Gerrit patch on top of odlparent's git clone: -# # PATCHES_TO_BUILD='odlparent=45/30045/2' # # Checkout patches for both odlparent and yangtools: -# # PATCHES_TO_BUILD='odlparent=45/30045/2,yangtools:53/26853/25' # # Checkout a patch for controller, cherry-pick another patch on top of it: -# # PATCHES_TO_BUILD='controller=61/29761/5:45/29645/6' distribution_status="not_included" -for proto_patch in "${PATCHES[@]}" +for patch in "${PATCHES[@]}" do - echo "working on ${proto_patch}" + echo "working on ${patch}" # For patch=controller=61/29761/5:45/29645/6, this gives controller - PROJECT="$(echo ${proto_patch} | cut -d\: -f 1 | cut -d\= -f 1)" + PROJECT="$(echo ${patch} | cut -d\: -f 1 | cut -d\= -f 1)" if [ "${PROJECT}" == "integration/distribution" ]; then distribution_status="included" fi @@ -126,24 +115,27 @@ do echo "cloning project ${PROJECT}" git clone "https://git.opendaylight.org/gerrit/p/${PROJECT}" cd ${PROJECT_SHORTNAME} - if [ "$(echo -n ${proto_patch} | tail -c 1)" == 'r' ]; then - pure_patch="$(echo -n $proto_patch | head -c -1)" - else - pure_patch="$proto_patch" - fi # For patch = controller=61/29761/5:45/29645/6, this gives 61/29761/5 - CHECKOUT="$(echo ${pure_patch} | cut -d\= -s -f 2 | cut -d\: -f 1)" + CHECKOUT="$(echo ${patch} | cut -d\= -s -f 2 | cut -d\: -f 1)" + # If project has a patch, checkout patch, otherwise use distribution branch if [ "x${CHECKOUT}" != "x" ]; then echo "checking out ${CHECKOUT}" # TODO: Make this script accept "29645/6" as a shorthand for "45/29645/6". git fetch "https://git.opendaylight.org/gerrit/${PROJECT}" "refs/changes/$CHECKOUT" git checkout FETCH_HEAD + else - echo "checking out ${DISTRIBUTION_BRANCH_TO_BUILD}" - git checkout "${DISTRIBUTION_BRANCH_TO_BUILD}" + # If project with no patch = yangtools, download master branch + if [ "${PROJECT}" == "yangtools" ]; then + echo "checking out master" + git checkout master + else + echo "checking out ${DISTRIBUTION_BRANCH_TO_BUILD}" + git checkout "${DISTRIBUTION_BRANCH_TO_BUILD}" + fi fi # For patch=controller=61/29761/5:45/29645/6, this gives 45/29645/6 - PICK_SEGMENT="$(echo "${pure_patch}" | cut -d\: -s -f 2-)" + PICK_SEGMENT="$(echo "${patch}" | cut -d\: -s -f 2-)" IFS=':' read -ra PICKS <<< "${PICK_SEGMENT}" for pick in "${PICKS[@]}" do @@ -151,15 +143,10 @@ do git fetch "https://git.opendaylight.org/gerrit/${PROJECT}" "refs/changes/${pick}" git cherry-pick --ff --keep-redundant-commits FETCH_HEAD done - # Check whether the patch ends with 'r', and the patch isn't the project - # (to avoid releasing controller...) - if [ "${proto_patch: -1}" = "r" ] && [ "${proto_patch}" != "${PROJECT}" ]; then - # Here 'r' means release. Useful for testing Nitrogen Odlparent changes. - find . -name "*.xml" -print0 | xargs -0 sed -i 's/-SNAPSHOT//g' - fi cd "${BUILD_DIR}" done +# Finally add distribution if there is no int/dist patch if [ "${distribution_status}" == "not_included" ]; then echo "adding integration/distribution" PROJECTS+=(distribution) @@ -170,6 +157,36 @@ if [ "${distribution_status}" == "not_included" ]; then cd "${BUILD_DIR}" fi +# If there is a patch for odlparent or yangtools (MRI projects), adjust version to mdsal project: +# 1. Extract project version in patch +# 2. Extract project MSI version from mdsal project +# 3. Replace version in patch by MSI version +# Otherwise release the MRI project +if [[ -d "odlparent" ]]; then + if [[ -d "mdsal" ]]; then + # Extract patch and MSI used version + patch_version="$(xpath ./odlparent/odlparent-lite/pom.xml '/project/version/text()' 2> /dev/null)" + msi_version="$(xpath ./mdsal/pom.xml '/project/parent/version/text()' 2> /dev/null)" + # Replace version + find ./odlparent -name "*.xml" -print0 | xargs -0 sed -i "s/${patch_version}/${msi_version}/g" + else + # Release project + find ./odlparent -name "*.xml" -print0 | xargs -0 sed -i 's/-SNAPSHOT//g' + fi +fi +if [[ -d "yangtools" ]]; then + if [[ -d "mdsal" ]]; then + # Extract patch and MSI used version + patch_version="$(xpath ./yangtools/pom.xml '/project/version/text()' 2> /dev/null)" + msi_version="$(xpath ./mdsal/binding/yang-binding/pom.xml '/project/dependencyManagement/dependencies/dependency/version/text()' 2> /dev/null)" + # Replace version + find ./yangtools -name "*.xml" -print0 | xargs -0 sed -i "s/${patch_version}/${msi_version}/g" + else + # Release project + find ./yangtools -name "*.xml" -print0 | xargs -0 sed -i 's/-SNAPSHOT//g' + fi +fi + # Second phase: build everything for PROJECT_SHORTNAME in "${PROJECTS[@]}"; do diff --git a/jjb/iotdm/iotdm.yaml b/jjb/iotdm/iotdm.yaml index fd5890281..0d903164e 100644 --- a/jjb/iotdm/iotdm.yaml +++ b/jjb/iotdm/iotdm.yaml @@ -46,3 +46,9 @@ build-node: centos7-builder-2c-8g mvn-settings: 'iotdm-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: iotdm + description: 'List of iotdm jobs' + regex: '^iotdm-.*' + <<: *releng_view_common diff --git a/jjb/jsonrpc/jsonrpc.yaml b/jjb/jsonrpc/jsonrpc.yaml index 4b0311c70..109d7e919 100644 --- a/jjb/jsonrpc/jsonrpc.yaml +++ b/jjb/jsonrpc/jsonrpc.yaml @@ -44,3 +44,9 @@ branch: 'master' mvn-settings: 'jsonrpc-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: jsonrpc + description: 'List of jsonrpc jobs' + regex: '^jsonrpc-.*' + <<: *releng_view_common diff --git a/jjb/l2switch/l2switch.yaml b/jjb/l2switch/l2switch.yaml index ab0fc666c..57205f112 100644 --- a/jjb/l2switch/l2switch.yaml +++ b/jjb/l2switch/l2switch.yaml @@ -53,3 +53,9 @@ branch: 'master' mvn-settings: 'l2switch-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' + +- view: + name: l2switch + description: 'List of l2switch jobs' + regex: '^l2switch-.*' + <<: *releng_view_common diff --git a/jjb/lacp/lacp.yaml b/jjb/lacp/lacp.yaml index cdeed106f..aa257c0ff 100644 --- a/jjb/lacp/lacp.yaml +++ b/jjb/lacp/lacp.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'lacp-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: lacp + description: 'List of lacp jobs' + regex: '^lacp-.*' + <<: *releng_view_common diff --git a/jjb/lf-infra/lf-infra-jobs.yaml b/jjb/lf-infra/lf-infra-jobs.yaml index 82641eef3..65482ff29 100644 --- a/jjb/lf-infra/lf-infra-jobs.yaml +++ b/jjb/lf-infra/lf-infra-jobs.yaml @@ -131,3 +131,9 @@ git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT gerrit-server-name: LinuxFoundation + +- view: + name: lf-infra + description: 'List of lf-infra jobs' + regex: '^lf-infra-.*' + <<: *releng_view_common diff --git a/jjb/lfn/lfn.yaml b/jjb/lfn/lfn.yaml index d43a06778..74b9a140f 100644 --- a/jjb/lfn/lfn.yaml +++ b/jjb/lfn/lfn.yaml @@ -1,11 +1,11 @@ --- - project: - name: lf-infra-lfn-process + name: lfn-process jobs: - '{project-name}-rtd-jobs' - gerrit-tox-verify - project-name: lf-infra-lfn-process + project-name: lfn-process project: lfn/process project-pattern: lfn/process build-node: centos7-builder-2c-1g @@ -17,3 +17,8 @@ git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT gerrit-server-name: LinuxFoundation +- view: + name: lfn + description: 'List of LF Networking jobs' + regex: '^lfn-.*' + <<: *releng_view_common diff --git a/jjb/lispflowmapping/lispflowmapping.yaml b/jjb/lispflowmapping/lispflowmapping.yaml index a14c7ffc8..a927ee0b8 100644 --- a/jjb/lispflowmapping/lispflowmapping.yaml +++ b/jjb/lispflowmapping/lispflowmapping.yaml @@ -59,3 +59,9 @@ mvn-settings: 'lispflowmapping-settings' mvn-goals: 'clean deploy findbugs:findbugs javadoc:aggregate -DrepoBuild' mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m -Dmaven.compile.fork=true' + +- view: + name: lispflowmapping + description: 'List of lispflowmapping jobs' + regex: '^lispflowmapping-.*' + <<: *releng_view_common diff --git a/jjb/mdsal/mdsal.yaml b/jjb/mdsal/mdsal.yaml index ac1afdd5f..dcd347086 100644 --- a/jjb/mdsal/mdsal.yaml +++ b/jjb/mdsal/mdsal.yaml @@ -58,3 +58,9 @@ mvn-settings: 'mdsal-settings' mvn-goals: '-Dmaven.compile.fork=true clean deploy -Dintegrationtests' mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m' + +- view: + name: mdsal + description: 'List of mdsal jobs' + regex: '^mdsal-.*' + <<: *releng_view_common diff --git a/jjb/messaging4transport/messaging4transport.yaml b/jjb/messaging4transport/messaging4transport.yaml index f1cc04467..484a0368f 100644 --- a/jjb/messaging4transport/messaging4transport.yaml +++ b/jjb/messaging4transport/messaging4transport.yaml @@ -45,3 +45,9 @@ branch: 'master' mvn-settings: 'messaging4transport-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: messaging4transport + description: 'List of messaging4transport jobs' + regex: '^messaging4transport-.*' + <<: *releng_view_common diff --git a/jjb/natapp/natapp.yaml b/jjb/natapp/natapp.yaml index f42bc0c8a..c37bcce61 100644 --- a/jjb/natapp/natapp.yaml +++ b/jjb/natapp/natapp.yaml @@ -45,3 +45,9 @@ branch: 'master' mvn-settings: 'natapp-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: natapp + description: 'List of natapp jobs' + regex: '^natapp-.*' + <<: *releng_view_common diff --git a/jjb/nemo/nemo.yaml b/jjb/nemo/nemo.yaml index 97c35cdbe..890cdea8f 100644 --- a/jjb/nemo/nemo.yaml +++ b/jjb/nemo/nemo.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'nemo-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: nemo + description: 'List of nemo jobs' + regex: '^nemo-.*' + <<: *releng_view_common diff --git a/jjb/netconf/netconf.yaml b/jjb/netconf/netconf.yaml index 67246a2fd..54d9cbd21 100644 --- a/jjb/netconf/netconf.yaml +++ b/jjb/netconf/netconf.yaml @@ -52,3 +52,9 @@ mvn-settings: 'netconf-settings' mvn-goals: 'clean deploy -Pintegrationtests' mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' + +- view: + name: netconf + description: 'List of netconf jobs' + regex: '^netconf-.*' + <<: *releng_view_common diff --git a/jjb/netide/netide.yaml b/jjb/netide/netide.yaml index 8fbfacff1..24439555d 100644 --- a/jjb/netide/netide.yaml +++ b/jjb/netide/netide.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'netide-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: netide + description: 'List of netide jobs' + regex: '^netide-.*' + <<: *releng_view_common diff --git a/jjb/netvirt/netvirt-csit-hwvtep-openstack.yaml b/jjb/netvirt/netvirt-csit-hwvtep-openstack.yaml index 86cf45cc6..3346fe470 100644 --- a/jjb/netvirt/netvirt-csit-hwvtep-openstack.yaml +++ b/jjb/netvirt/netvirt-csit-hwvtep-openstack.yaml @@ -12,9 +12,9 @@ enable-openstack-services: 'placement-api,l2gw-plugin' enable-openstack-compute-services: 'placement-client' security-group-mode: 'stateful' - odl_system_flavor: odl-standard-8 - openstack_system_flavor: odl-standard-8 - openstack_system2_flavor: odl-standard-4 + odl_system_flavor: odl-highcpu-8 + openstack_system_flavor: odl-highcpu-8 + openstack_system2_flavor: odl-highcpu-4 tools_system_count: 2 tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20171208-1847 @@ -26,12 +26,12 @@ openstack_system2_count: 2 odl_system_count: 1 enable-haproxy: 'no' - install-features: 'odl-netvirt-openstack' + install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' - 3node: openstack_system2_count: 2 odl_system_count: 3 enable-haproxy: 'yes' - install-features: 'odl-jolokia,odl-netvirt-openstack' + install-features: 'odl-jolokia,odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' functionality: - upstream-stateful @@ -49,8 +49,8 @@ openstack-branch: 'stable/queens' odl-ml2-branch: 'stable/queens' odl-ml2-port-binding: 'pseudo-agentdb-binding' - openstack_system_image: '{openstack_system_image_pike}' - openstack_system2_image: '{openstack_system_image_pike}' + openstack_system_image: '{openstack_system_image_queens}' + openstack_system2_image: '{openstack_system_image_queens}' - project: name: netvirt-csit-hwvtep-openstack-integration-oxygen @@ -65,9 +65,9 @@ enable-openstack-services: 'placement-api,l2gw-plugin' enable-openstack-compute-services: 'placement-client' security-group-mode: 'stateful' - odl_system_flavor: odl-standard-8 - openstack_system_flavor: odl-standard-8 - openstack_system2_flavor: odl-standard-4 + odl_system_flavor: odl-highcpu-8 + openstack_system_flavor: odl-highcpu-8 + openstack_system2_flavor: odl-highcpu-4 tools_system_count: 2 tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20171208-1847 @@ -79,12 +79,12 @@ openstack_system2_count: 2 odl_system_count: 1 enable-haproxy: 'no' - install-features: 'odl-netvirt-openstack' + install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' - 3node: openstack_system2_count: 2 odl_system_count: 3 enable-haproxy: 'yes' - install-features: 'odl-jolokia,odl-netvirt-openstack' + install-features: 'odl-jolokia,odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' functionality: - upstream-stateful @@ -102,5 +102,5 @@ openstack-branch: 'stable/queens' odl-ml2-branch: 'stable/queens' odl-ml2-port-binding: 'pseudo-agentdb-binding' - openstack_system_image: '{openstack_system_image_pike}' - openstack_system2_image: '{openstack_system_image_pike}' + openstack_system_image: '{openstack_system_image_queens}' + openstack_system2_image: '{openstack_system_image_queens}' diff --git a/jjb/netvirt/netvirt-csit-multi-openstack-upgrade.yaml b/jjb/netvirt/netvirt-csit-multi-openstack-upgrade.yaml index 565bd6f18..6d4180823 100644 --- a/jjb/netvirt/netvirt-csit-multi-openstack-upgrade.yaml +++ b/jjb/netvirt/netvirt-csit-multi-openstack-upgrade.yaml @@ -12,16 +12,19 @@ enable-openstack-services: 'placement-api,l2gw-plugin' enable-openstack-compute-services: 'placement-client' security-group-mode: 'stateful' - odl_system_flavor: odl-standard-8 - openstack_system_flavor: odl-standard-8 - openstack_system2_flavor: odl-standard-4 + odl_system_flavor: odl-highcpu-8 + openstack_system_flavor: odl-highcpu-8 + openstack_system2_flavor: odl-highcpu-4 + os-cmb-cnt: 0 + os-ctl-cnt: 1 + os-cmp-cnt: 2 topology: - 1node: openstack_system2_count: 2 odl_system_count: 1 enable-haproxy: 'no' - install-features: 'odl-netvirt-openstack' + install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' functionality: - upgrade @@ -33,5 +36,5 @@ openstack-branch: 'stable/queens' odl-ml2-branch: 'stable/queens' odl-ml2-port-binding: 'pseudo-agentdb-binding' - openstack_system_image: '{openstack_system_image_pike}' - openstack_system2_image: '{openstack_system_image_pike}' + openstack_system_image: '{openstack_system_image_queens}' + openstack_system2_image: '{openstack_system_image_queens}' diff --git a/jjb/netvirt/netvirt-csit-multi-openstack.yaml b/jjb/netvirt/netvirt-csit-multi-openstack.yaml index a4e3c96e8..3ec9cb268 100644 --- a/jjb/netvirt/netvirt-csit-multi-openstack.yaml +++ b/jjb/netvirt/netvirt-csit-multi-openstack.yaml @@ -12,22 +12,25 @@ enable-openstack-services: 'placement-api,tempest' enable-openstack-compute-services: 'placement-client' security-group-mode: 'stateful' - odl_system_flavor: odl-standard-8 - openstack_system_flavor: odl-standard-8 - openstack_system2_flavor: odl-standard-4 + odl_system_flavor: odl-highcpu-8 + openstack_system_flavor: odl-highcpu-8 + openstack_system2_flavor: odl-highcpu-4 + os-cmb-cnt: 0 + os-ctl-cnt: 1 + os-cmp-cnt: 2 topology: - 1node: openstack_system2_count: 2 odl_system_count: 1 enable-haproxy: 'no' - install-features: 'odl-netvirt-openstack' + install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' robot-options: '-v FAIL_ON_EXCEPTIONS:True' - 3node: openstack_system2_count: 3 odl_system_count: 3 enable-haproxy: 'yes' - install-features: 'odl-jolokia,odl-netvirt-openstack' + install-features: 'odl-jolokia,odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' functionality: - upstream-stateful @@ -36,6 +39,8 @@ - upstream-stateful-snat-conntrack: odl-snat-mode: 'conntrack' - gate-stateful + - gate-stateful-itm-direct-tunnels: + enable-itm-direct-tunnels: 'true' - gate-stateful-snat-conntrack: odl-snat-mode: 'conntrack' - gate-minimal-cluster: @@ -47,10 +52,12 @@ - tempest-stateful: test-suites: 'openstack/tempest/tempest.robot' testplan: '{project}-{topology}-openstack-tempest.txt' + schedule: '{schedule-daily}' - tempest-stateful-snat-conntrack: test-suites: 'openstack/tempest/tempest.robot' testplan: '{project}-{topology}-openstack-tempest.txt' odl-snat-mode: 'conntrack' + schedule: '{schedule-daily}' - gate-tempest-stateful: test-suites: 'openstack/tempest/tempest.robot' testplan: '{project}-{topology}-openstack-tempest.txt' @@ -71,8 +78,8 @@ openstack-branch: 'stable/queens' odl-ml2-branch: 'stable/queens' odl-ml2-port-binding: 'pseudo-agentdb-binding' - openstack_system_image: '{openstack_system_image_pike}' - openstack_system2_image: '{openstack_system_image_pike}' + openstack_system_image: '{openstack_system_image_queens}' + openstack_system2_image: '{openstack_system_image_queens}' - project: name: netvirt-csit-openstack-integration-oxygen @@ -87,22 +94,25 @@ enable-openstack-services: 'placement-api,tempest' enable-openstack-compute-services: 'placement-client' security-group-mode: 'stateful' - odl_system_flavor: odl-standard-8 - openstack_system_flavor: odl-standard-8 - openstack_system2_flavor: odl-standard-4 + odl_system_flavor: odl-highcpu-8 + openstack_system_flavor: odl-highcpu-8 + openstack_system2_flavor: odl-highcpu-4 + os-cmb-cnt: 0 + os-ctl-cnt: 1 + os-cmp-cnt: 2 topology: - 1node: openstack_system2_count: 2 odl_system_count: 1 enable-haproxy: 'no' - install-features: 'odl-netvirt-openstack' + install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' robot-options: '-v FAIL_ON_EXCEPTIONS:True' - 3node: openstack_system2_count: 3 odl_system_count: 3 enable-haproxy: 'yes' - install-features: 'odl-jolokia,odl-netvirt-openstack' + install-features: 'odl-jolokia,odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch' functionality: - upstream-stateful @@ -113,12 +123,30 @@ - gate-stateful - gate-stateful-snat-conntrack: odl-snat-mode: 'conntrack' + - gate-stateful-itm-direct-tunnels: + enable-itm-direct-tunnels: 'true' - gate-minimal-cluster: testplan: '{project}-{topology}-minimal-openstack.txt' # Job for Test Driven Development with it's own testplan to run new/non-passing suites. scheduled manually. - gate-tdd-wip: testplan: '{project}-{topology}-tdd-wip-openstack.txt' schedule: '' + - tempest-stateful: + test-suites: 'openstack/tempest/tempest.robot' + testplan: '{project}-{topology}-openstack-tempest.txt' + schedule: '{schedule-daily}' + - tempest-stateful-snat-conntrack: + test-suites: 'openstack/tempest/tempest.robot' + testplan: '{project}-{topology}-openstack-tempest.txt' + odl-snat-mode: 'conntrack' + schedule: '{schedule-daily}' + - gate-tempest-stateful: + test-suites: 'openstack/tempest/tempest.robot' + testplan: '{project}-{topology}-openstack-tempest.txt' + - gate-tempest-stateful-snat-conntrack: + test-suites: 'openstack/tempest/tempest.robot' + testplan: '{project}-{topology}-openstack-tempest.txt' + odl-snat-mode: 'conntrack' openstack: - pike: @@ -132,8 +160,8 @@ openstack-branch: 'stable/queens' odl-ml2-branch: 'stable/queens' odl-ml2-port-binding: 'pseudo-agentdb-binding' - openstack_system_image: '{openstack_system_image_pike}' - openstack_system2_image: '{openstack_system_image_pike}' + openstack_system_image: '{openstack_system_image_queens}' + openstack_system2_image: '{openstack_system_image_queens}' - project: name: netvirt-csit-sfc-openstack-integration @@ -142,8 +170,11 @@ project: 'netvirt' security-group-mode: 'stateful' - odl_system_flavor: odl-standard-4 - openstack_system2_flavor: odl-standard-2 + odl_system_flavor: odl-highcpu-4 + openstack_system2_flavor: odl-highcpu-2 + os-cmb-cnt: 0 + os-ctl-cnt: 1 + os-cmp-cnt: 2 topology: - 1node: @@ -170,5 +201,5 @@ openstack-branch: 'stable/queens' odl-ml2-branch: 'stable/queens' odl-ml2-port-binding: 'pseudo-agentdb-binding' - openstack_system_image: '{openstack_system_image_pike}' - openstack_system2_image: '{openstack_system_image_pike}' + openstack_system_image: '{openstack_system_image_queens}' + openstack_system2_image: '{openstack_system_image_queens}' diff --git a/jjb/netvirt/netvirt-patch-test.yaml b/jjb/netvirt/netvirt-patch-test.yaml index fbfb903db..e9f0dfc97 100644 --- a/jjb/netvirt/netvirt-patch-test.yaml +++ b/jjb/netvirt/netvirt-patch-test.yaml @@ -19,43 +19,43 @@ feature: - current: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-gate-stateful-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-stateful-{stream} - cluster-current: csit-list: > - netvirt-csit-3node-openstack-{os-branch}-gate-stateful-{stream} + netvirt-csit-3node-{os-std-topo}-openstack-{os-branch}-gate-stateful-{stream} - cluster-minimal-current: csit-list: > - netvirt-csit-3node-openstack-{os-branch}-gate-minimal-cluster-{stream} + netvirt-csit-3node-{os-std-topo}-openstack-{os-branch}-gate-minimal-cluster-{stream} - snat-conntrack: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-gate-stateful-snat-conntrack-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-stateful-snat-conntrack-{stream} - cluster-snat-conntrack: csit-list: > - netvirt-csit-3node-openstack-{os-branch}-gate-stateful-snat-conntrack-{stream} + netvirt-csit-3node-{os-std-topo}-openstack-{os-branch}-gate-stateful-snat-conntrack-{stream} - l2gw: csit-list: > netvirt-csit-hwvtep-1node-openstack-{os-branch}-gate-stateful-{stream} - tdd-wip: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-gate-tdd-wip-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-tdd-wip-{stream} - coe: csit-list: > coe-csit-1node-container-networking-all-{stream} - itm-direct-tunnels: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-upstream-stateful-itm-direct-tunnels-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-stateful-itm-direct-tunnels-{stream} - upgrade: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-upgrade-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-upgrade-{stream} - tempest: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-gate-tempest-stateful-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-tempest-stateful-{stream} - cluster-tempest: csit-list: > - netvirt-csit-3node-openstack-{os-branch}-gate-tempest-stateful-{stream} + netvirt-csit-3node-{os-std-topo}-openstack-{os-branch}-gate-tempest-stateful-{stream} - tempest-snat-conntrack: csit-list: > - netvirt-csit-1node-openstack-{os-branch}-gate-tempest-stateful-snat-conntrack-{stream} + netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-tempest-stateful-snat-conntrack-{stream} - cluster-tempest-snat-conntrack: csit-list: > - netvirt-csit-3node-openstack-{os-branch}-gate-tempest-stateful-snat-conntrack-{stream} + netvirt-csit-3node-{os-std-topo}-openstack-{os-branch}-gate-tempest-stateful-snat-conntrack-{stream} diff --git a/jjb/netvirt/netvirt.yaml b/jjb/netvirt/netvirt.yaml index 4024faed8..2a3d122ea 100644 --- a/jjb/netvirt/netvirt.yaml +++ b/jjb/netvirt/netvirt.yaml @@ -62,3 +62,15 @@ branch: 'master' mvn-settings: 'netvirt-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: netvirt + description: 'List of netvirt jobs' + regex: '^netvirt-.*' + <<: *releng_view_common + +- view: + name: netvirt-csit + description: 'List of netvirt-csit jobs' + regex: 'netvirt-csit(?!(.*gate)|(.*hwvtep)).*' + <<: *integration_view_csit diff --git a/jjb/neutron/neutron.yaml b/jjb/neutron/neutron.yaml index 48bd2756b..de720cc6e 100644 --- a/jjb/neutron/neutron.yaml +++ b/jjb/neutron/neutron.yaml @@ -48,3 +48,9 @@ branch: 'master' mvn-settings: 'neutron-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: neutron + description: 'List of neutron jobs' + regex: '^neutron-.*' + <<: *releng_view_common diff --git a/jjb/next/next.yaml b/jjb/next/next.yaml index 86b6a16d8..42771d028 100644 --- a/jjb/next/next.yaml +++ b/jjb/next/next.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'next-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: next + description: 'List of next jobs' + regex: '^next-.*' + <<: *releng_view_common diff --git a/jjb/nic/nic.yaml b/jjb/nic/nic.yaml index 8bf2afef3..c11083876 100644 --- a/jjb/nic/nic.yaml +++ b/jjb/nic/nic.yaml @@ -46,3 +46,9 @@ build-node: centos7-builder-2c-8g mvn-settings: 'nic-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: nic + description: 'List of nic jobs' + regex: '^nic-.*' + <<: *releng_view_common diff --git a/jjb/ocpplugin/ocpplugin.yaml b/jjb/ocpplugin/ocpplugin.yaml index 496e31ec7..5f3c2313c 100644 --- a/jjb/ocpplugin/ocpplugin.yaml +++ b/jjb/ocpplugin/ocpplugin.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'ocpplugin-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: ocpplugin + description: 'List of ocpplugin jobs' + regex: '^ocpplugin-.*' + <<: *releng_view_common diff --git a/jjb/odlparent/odlparent.yaml b/jjb/odlparent/odlparent.yaml index 6b87b0719..cb942ae1d 100644 --- a/jjb/odlparent/odlparent.yaml +++ b/jjb/odlparent/odlparent.yaml @@ -129,3 +129,9 @@ branch: 'master' mvn-settings: 'odlparent-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: odlparent + description: 'List of odlparent jobs' + regex: '^odlparent-.*' + <<: *releng_view_common diff --git a/jjb/of-config/of-config.yaml b/jjb/of-config/of-config.yaml index b9366d2c9..322f2a585 100644 --- a/jjb/of-config/of-config.yaml +++ b/jjb/of-config/of-config.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'of-config-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: of-config + description: 'List of of-config jobs' + regex: '^of-config-.*' + <<: *releng_view_common diff --git a/jjb/ofextensions/circuitsw/circuitsw.yaml b/jjb/ofextensions/circuitsw/circuitsw.yaml index 4198831a9..bd0d28804 100644 --- a/jjb/ofextensions/circuitsw/circuitsw.yaml +++ b/jjb/ofextensions/circuitsw/circuitsw.yaml @@ -42,3 +42,9 @@ branch: 'master' mvn-settings: 'ofextensions-circuitsw-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: circuitsw + description: 'List of circuitsw jobs' + regex: '^circuitsw-.*' + <<: *releng_view_common diff --git a/jjb/openci/openci-odl-daily-jobs.yaml b/jjb/openci/openci-odl-daily-jobs.yaml index 1ef00f0f3..104c38882 100644 --- a/jjb/openci/openci-odl-daily-jobs.yaml +++ b/jjb/openci/openci-odl-daily-jobs.yaml @@ -101,3 +101,9 @@ echo $CI_MESSAGE echo "----------------------------------" echo " Promoted ODL Autorelease artifact as release candidate!" + +- view: + name: openci + description: 'List of openci jobs' + regex: '^openci-.*' + <<: *releng_view_common diff --git a/jjb/opendaylight-infra-stack.sh b/jjb/opendaylight-infra-stack.sh index af5d2fa13..972ec210a 100644 --- a/jjb/opendaylight-infra-stack.sh +++ b/jjb/opendaylight-infra-stack.sh @@ -18,7 +18,12 @@ pip install --upgrade "pip<10.0.0" setuptools pip install --upgrade cmd2==0.8.5 python-openstackclient python-heatclient pip freeze -cd /builder/openstack-hot || exit 1 +# TODO: Remove the if-statement once we have fully migrated to /opt/ciman +if [ -d "/opt/ciman" ]; then + cd /opt/ciman || exit 1 +else + cd /builder/openstack-hot || exit 1 +fi JOB_SUM=$(echo "$JOB_NAME" | sum | awk '{{ print $1 }}') VM_NAME="$JOB_SUM-$BUILD_NUMBER" diff --git a/jjb/openflowplugin/openflowplugin.yaml b/jjb/openflowplugin/openflowplugin.yaml index e591415ce..f4630fd14 100644 --- a/jjb/openflowplugin/openflowplugin.yaml +++ b/jjb/openflowplugin/openflowplugin.yaml @@ -75,3 +75,15 @@ mvn-settings: 'openflowplugin-settings' mvn-goals: 'clean deploy javadoc:aggregate' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: openflowplugin + description: 'List of openflowplugin jobs' + regex: '^openflowplugin-.*' + <<: *releng_view_common + +- view: + name: openflowplugin-oxygen + description: 'List of openflowplugin oxygen jobs' + regex: 'openflowplugin-.*-oxygen' + <<: *releng_view_common diff --git a/jjb/opflex/opflex.yaml b/jjb/opflex/opflex.yaml index c3c7a6699..aef8a0869 100644 --- a/jjb/opflex/opflex.yaml +++ b/jjb/opflex/opflex.yaml @@ -115,3 +115,9 @@ email-recipients: '{email-recipients}' email-prefix: '[opflex]' - lf-infra-publish + +- view: + name: opflex + description: 'List of opflex jobs' + regex: '^opflex-.*' + <<: *releng_view_common diff --git a/jjb/ovil/ovil.yaml b/jjb/ovil/ovil.yaml index 6e96ffac5..d25238db6 100644 --- a/jjb/ovil/ovil.yaml +++ b/jjb/ovil/ovil.yaml @@ -46,3 +46,9 @@ branch: 'master' mvn-settings: 'ovil-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: ovil + description: 'List of ovil jobs' + regex: '^ovil-.*' + <<: *releng_view_common diff --git a/jjb/ovsdb/ovsdb.yaml b/jjb/ovsdb/ovsdb.yaml index 7fcc646ad..149e76ade 100644 --- a/jjb/ovsdb/ovsdb.yaml +++ b/jjb/ovsdb/ovsdb.yaml @@ -43,3 +43,9 @@ # Used by the release job staging-profile-id: a68b188166958 + +- view: + name: ovsdb + description: 'List of ovsdb jobs' + regex: '^ovsdb-.*' + <<: *releng_view_common diff --git a/jjb/p4plugin/p4plugin.yaml b/jjb/p4plugin/p4plugin.yaml index 05c04d967..39e0d8a2d 100644 --- a/jjb/p4plugin/p4plugin.yaml +++ b/jjb/p4plugin/p4plugin.yaml @@ -46,3 +46,9 @@ branch: 'master' mvn-settings: 'p4plugin-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: p4plugin + description: 'List of p4plugin jobs' + regex: '^p4plugin-.*' + <<: *releng_view_common diff --git a/jjb/packaging/build-rpm.sh b/jjb/packaging/build-rpm.sh index 3911cc15a..4f2f0d620 100644 --- a/jjb/packaging/build-rpm.sh +++ b/jjb/packaging/build-rpm.sh @@ -48,16 +48,25 @@ fi direct \ --download_url "$DOWNLOAD_URL" -# Publish RPMs to Nexus if in production Jenkins, else host on sandbox Jenkins -if [ "$SILO" == "sandbox" ]; then - echo "Not uploading RPMs to Nexus because running in sandbox" -elif [ "$SILO" == "releng" ]; then +# Always allow push to scratch repos, only push to CD repos in RelEng Jenkins +if [ "$DEPLOY_TO_REPO" == "opendaylight-epel-7-x86_64-devel" ]; then # Move RPMs (SRPM and noarch) to dir of files that will be uploaded to Nexus UPLOAD_FILES_PATH="$WORKSPACE/upload_files" mkdir -p "$UPLOAD_FILES_PATH" cp "$HOME/rpmbuild/RPMS/noarch/"*.rpm "$_" cp "$HOME/rpmbuild/SRPMS/"*.rpm "$_" else - echo "Unknown Jenkins silo: $SILO" - exit 1 + # Publish RPMs to CD repos if in production Jenkins, not in sandbox Jenkins + if [ "$SILO" == "sandbox" ]; then + echo "Not uploading RPMs to Nexus because running in sandbox" + elif [ "$SILO" == "releng" ]; then + # Move RPMs (SRPM+noarch) to dir of files that will be uploaded to Nexus + UPLOAD_FILES_PATH="$WORKSPACE/upload_files" + mkdir -p "$UPLOAD_FILES_PATH" + cp "$HOME/rpmbuild/RPMS/noarch/"*.rpm "$_" + cp "$HOME/rpmbuild/SRPMS/"*.rpm "$_" + else + echo "Unknown Jenkins silo: $SILO" + exit 1 + fi fi diff --git a/jjb/packaging/packaging.yaml b/jjb/packaging/packaging.yaml index aa2b85a09..4d1c2b34a 100644 --- a/jjb/packaging/packaging.yaml +++ b/jjb/packaging/packaging.yaml @@ -77,6 +77,10 @@ name: CHANGELOG_EMAIL default: 'jenkins-donotreply@opendaylight.org' description: 'Email of person who defined RPM' + - string: + name: DEPLOY_TO_REPO + default: 'opendaylight-{stream}-epel-7-x86_64-devel' + description: 'Repository to deploy resulting package to' scm: - integration-gerrit-scm: @@ -95,7 +99,7 @@ global-settings-file: 'global-settings' settings-file: 'packaging-settings' mvn-version: '{mvn-version}' - repo-id: 'opendaylight-{stream}-epel-7-x86_64-devel' + repo-id: '$DEPLOY_TO_REPO' group-id: '{group-id}' upload-files-dir: '{upload-files-dir}' maven-repo-url: '{maven-repo-url}' @@ -224,7 +228,7 @@ # NB: This will need to be updated as old builds expire - inject: # yamllint disable-line rule:line-length - properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180620.055735-63.zip' + properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180626.171605-65.zip' - shell: !include-raw-escape: build-rpm.sh - install-test-uninstall-rpm @@ -235,20 +239,11 @@ - install-test-uninstall-rpm triggers: - - gerrit: - server-name: '{gerrit-server-name}' - trigger-on: - - comment-added-contains-event: - comment-contains-value: 'rpm-verify' - projects: - - project-compare-type: ANT - project-pattern: '{project}' - branches: - - branch-compare-type: ANT - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'packages/**' + - gerrit-trigger-patch-submitted: + gerrit-server-name: '{gerrit-server-name}' + project: '{project}' + branch: '{branch}' + files: 'packages/**' publishers: - lf-infra-publish @@ -299,7 +294,7 @@ # NB: This will need to be updated as old builds expire - inject: # yamllint disable-line rule:line-length - properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.8.3-SNAPSHOT/karaf-0.8.3-20180620.173319-5.zip' + properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.8.3-SNAPSHOT/karaf-0.8.3-20180627.184938-10.zip' - shell: !include-raw-escape: build-rpm.sh - install-test-uninstall-rpm @@ -321,7 +316,7 @@ # NB: This will need to be updated as old builds expire - inject: # yamllint disable-line rule:line-length - properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180620.055735-63.zip' + properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180626.171605-65.zip' - shell: !include-raw-escape: build-rpm.sh - install-test-uninstall-rpm @@ -567,3 +562,9 @@ publishers: - lf-infra-publish + +- view: + name: packaging + description: 'List of packaging, ansible and puppet jobs' + regex: '^packaging.*|ansible.*|puppet.*' + <<: *releng_view_common diff --git a/jjb/packetcable/packetcable.yaml b/jjb/packetcable/packetcable.yaml index ebf860f78..67d37c5a5 100644 --- a/jjb/packetcable/packetcable.yaml +++ b/jjb/packetcable/packetcable.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'packetcable-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: packetcable + description: 'List of packetcable jobs' + regex: '^packetcable-.*' + <<: *releng_view_common diff --git a/jjb/persistence/persistence.yaml b/jjb/persistence/persistence.yaml index 4d6d1ff38..ec7f7e56c 100644 --- a/jjb/persistence/persistence.yaml +++ b/jjb/persistence/persistence.yaml @@ -44,3 +44,9 @@ branch: 'master' mvn-settings: 'persistence-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: persistence + description: 'List of persistence jobs' + regex: '^persistence-.*' + <<: *releng_view_common diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index 6487231cb..2e1499868 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -208,7 +208,7 @@ exclude-no-code-change: false - draft-published-event - comment-added-contains-event: - comment-contains-value: 'recheck$' + comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$' projects: - project-compare-type: ANT project-pattern: '{project}' diff --git a/jjb/releng-packer-jobs.yaml b/jjb/releng-packer-jobs.yaml index f79f8a552..a2d1fd44b 100644 --- a/jjb/releng-packer-jobs.yaml +++ b/jjb/releng-packer-jobs.yaml @@ -42,23 +42,6 @@ templates: devstack platforms: centos-7 -- project: - name: packer-devstack-pre-pip-ocata-jobs - jobs: - - gerrit-packer-merge - - project: releng/builder - project-name: builder - branch: master - archive-artifacts: '**/*.log' - - build-node: centos7-builder-2c-1g - build-timeout: 75 - cron: '00 H 1 * *' - - templates: devstack-pre-pip-ocata - platforms: centos-7 - - project: name: packer-devstack-pre-pip-pike-jobs jobs: diff --git a/jjb/releng-views.yaml b/jjb/releng-views.yaml index bee471bf5..c63614ba5 100644 --- a/jjb/releng-views.yaml +++ b/jjb/releng-views.yaml @@ -99,7 +99,8 @@ - view: name: Distribution-Jobs - description: 'List of Distribution jobs (test, check, merge, deploy, offline, verify)' + description: > + List of Distribution jobs (test, check, merge, deploy, offline, verify) regex: '^.*-distribution-(?!(test|check|merge|deploy|offline|verify)).*' <<: *releng_view_common @@ -109,26 +110,11 @@ regex: '.*-gate-.*' <<: *releng_view_common -# Note: column plugins implementations requires JJB 2.1 to be released. - view: name: Integration description: 'List of Integration jobs' regex: '.*-integration-.*' - view-type: list - filter-executors: false - filter-queue: false - columns: - - status - - weather - - job - - last-success - - last-failure - - last-duration - - build-button - - jacoco - - find-bugs - - robot-list - recurse: false + <<: *releng_view_common - view: name: Merge-Jobs @@ -178,494 +164,8 @@ regex: '^(?!.*-csit).*-verify-.*' <<: *releng_view_common -- view: - name: aaa - description: 'List of aaa jobs' - regex: '^aaa-.*' - <<: *releng_view_common - -- view: - name: alto - description: 'List of alto jobs' - regex: '^alto-.*' - <<: *releng_view_common - -- view: - name: archetypes - regex: '^archetypes-.*' - description: 'List of archetypes jobs' - <<: *releng_view_common - -- view: - name: atrium - description: 'List of atrium jobs' - regex: '^atrium-.*' - <<: *releng_view_common - -- view: - name: autorelease - description: 'List of autorelease jobs' - regex: '^autorelease-.*' - <<: *releng_view_common - -- view: - name: bgpcep - description: 'List of bgpcep jobs' - regex: '^bgpcep-.*' - <<: *releng_view_common - -- view: - name: bier - description: 'List of bier jobs' - regex: '^bier-.*' - <<: *releng_view_common - - view: name: builder description: 'List of builder jobs' - regex: '^(builder|lf-infra)-.*' - <<: *releng_view_common - -- view: - name: capwap - description: 'List of capwap jobs' - regex: '^capwap-.*' - <<: *releng_view_common - -- view: - name: cardinal - description: 'List of cardinal jobs' - regex: '^cardinal-.*' - <<: *releng_view_common - -- view: - name: centinel - description: 'List of centinel jobs' - regex: '^centinel-.*' - <<: *releng_view_common - -- view: - name: circuitsw - description: 'List of circuitsw jobs' - regex: '^circuitsw-.*' - <<: *releng_view_common - -- view: - name: coe - description: 'List of coe jobs' - regex: '^coe-.*' - <<: *releng_view_common - -- view: - name: controller - description: 'List of controller jobs' - regex: '^controller-.*' - <<: *releng_view_common - -- view: - name: coretutorials - description: 'List of coretutorials jobs' - regex: '^coretutorials-.*' - <<: *releng_view_common - -- view: - name: daexim - description: 'List of daexim jobs' - regex: '^daexim-.*' - <<: *releng_view_common - -- view: - name: didm - description: 'List of didm jobs' - regex: '^didm-.*' - <<: *releng_view_common - -- view: - name: distribution - description: 'List of distribution jobs' - regex: '^(integration-)?distribution-.*' - <<: *releng_view_common - -- view: - name: dlux - description: 'List of dlux jobs' - regex: '^dlux-.*' - <<: *releng_view_common - -- view: - name: dluxapps - description: 'List of dluxapps jobs' - regex: '^dluxapps-.*' - <<: *releng_view_common - -- view: - name: docs - description: 'List of docs jobs' - regex: '^docs-.*' - <<: *releng_view_common - -- view: - name: eman - description: 'List of eman jobs' - regex: '^eman-.*' - <<: *releng_view_common - -- view: - name: epc - description: 'List of epc jobs' - regex: '^epc-.*' - <<: *releng_view_common - -- view: - name: faas - description: 'List of faas jobs' - regex: '^faas-.*' - <<: *releng_view_common - -- view: - name: federation - description: 'List of federation jobs' - regex: '^federation-.*' - <<: *releng_view_common - -- view: - name: fpc - description: 'List of fpc jobs' - regex: '^fpc-.*' - <<: *releng_view_common - -- view: - name: genius - description: 'List of genius jobs' - regex: '^genius-.*' - <<: *releng_view_common - -- view: - name: gnt - description: 'List of gnt jobs' - regex: '^gnt-.*' - <<: *releng_view_common - -- view: - name: groupbasedpolicy - description: 'List of groupbasedpolicy jobs' - regex: '^groupbasedpolicy-.*' - <<: *releng_view_common - -- view: - name: infrautils - description: 'List of infrautils jobs' - regex: '^infrautils-.*' - <<: *releng_view_common - -- view: - name: integration - description: 'List of integration jobs' - regex: '^integration-.*' - <<: *releng_view_common - -- view: - name: iotdm - description: 'List of iotdm jobs' - regex: '^iotdm-.*' - <<: *releng_view_common - -- view: - name: jsonrpc - description: 'List of jsonrpc jobs' - regex: '^jsonrpc-.*' - <<: *releng_view_common - -- view: - name: kafkaproducer - description: 'List of kafkaproducer jobs' - regex: '^kafkaproducer-.*' - <<: *releng_view_common - -- view: - name: l2switch - description: 'List of l2switch jobs' - regex: '^l2switch-.*' - <<: *releng_view_common - -- view: - name: lacp - description: 'List of lacp jobs' - regex: '^lacp-.*' - <<: *releng_view_common - -- view: - name: lispflowmapping - description: 'List of lispflowmapping jobs' - regex: '^lispflowmapping-.*' - <<: *releng_view_common - -- view: - name: mdsal - description: 'List of mdsal jobs' - regex: '^mdsal-.*' - <<: *releng_view_common - -- view: - name: messaging4transport - description: 'List of messaging4transport jobs' - regex: '^messaging4transport-.*' - <<: *releng_view_common - -- view: - name: natapp - description: 'List of natapp jobs' - regex: '^natapp-.*' - <<: *releng_view_common - -- view: - name: nemo - description: 'List of nemo jobs' - regex: '^nemo-.*' - <<: *releng_view_common - -- view: - name: netconf - description: 'List of netconf jobs' - regex: '^netconf-.*' - <<: *releng_view_common - -- view: - name: netide - description: 'List of netide jobs' - regex: '^netide-.*' - <<: *releng_view_common - -- view: - name: netvirt - description: 'List of netvirt jobs' - regex: '^netvirt-.*' - <<: *releng_view_common - -- view: - name: netvirt-csit - description: 'List of netvirt-csit jobs' - regex: 'netvirt-csit(?!(.*gate)|(.*hwvtep)).*' - <<: *integration_view_csit - -- view: - name: neutron - description: 'List of neutron jobs' - regex: '^neutron-.*' - <<: *releng_view_common - -- view: - name: next - description: 'List of next jobs' - regex: '^next-.*' - <<: *releng_view_common - -- view: - name: nic - description: 'List of nic jobs' - regex: '^nic-.*' - <<: *releng_view_common - -- view: - name: ocpplugin - description: 'List of ocpplugin jobs' - regex: '^ocpplugin-.*' - <<: *releng_view_common - -- view: - name: odlparent - description: 'List of odlparent jobs' - regex: '^odlparent-.*' - <<: *releng_view_common - -- view: - name: of-config - description: 'List of of-config jobs' - regex: '^of-config-.*' - <<: *releng_view_common - -- view: - name: openci - description: 'List of openci jobs' - regex: '^openci-.*' - <<: *releng_view_common - -- view: - name: openflowplugin - description: 'List of openflowplugin jobs' - regex: '^openflowplugin-.*' - <<: *releng_view_common - -- view: - name: openflowplugin-oxygen - description: 'List of openflowplugin oxygen jobs' - regex: 'openflowplugin-.*-oxygen' - <<: *releng_view_common - -- view: - name: opflex - description: 'List of opflex jobs' - regex: '^opflex-.*' - <<: *releng_view_common - -- view: - name: ovil - description: 'List of ovil jobs' - regex: '^ovil-.*' - <<: *releng_view_common - -- view: - name: ovsdb - description: 'List of ovsdb jobs' - regex: '^ovsdb-.*' - <<: *releng_view_common - -- view: - name: p4plugin - description: 'List of p4plugin jobs' - regex: '^p4plugin-.*' - <<: *releng_view_common - -- view: - name: packaging - description: 'List of packaging, ansible and puppet jobs' - regex: '^packaging.*|ansible.*|puppet.*' - <<: *releng_view_common - -- view: - name: packer - description: 'List of packer jobs' - regex: '^builder-.*packer.*' - <<: *releng_view_common - -- view: - name: packetcable - description: 'List of packetcable jobs' - regex: '^packetcable-.*' - <<: *releng_view_common - -- view: - name: persistence - description: 'List of persistence jobs' - regex: '^persistence-.*' - <<: *releng_view_common - -- view: - name: reservation - description: 'List of reservation jobs' - regex: '^reservation-.*' - <<: *releng_view_common - -- view: - name: sdninterfaceapp - description: 'List of sdninterfaceapp jobs' - regex: '^sdninterfaceapp-.*' - <<: *releng_view_common - -- view: - name: sfc - description: 'List of sfc jobs' - regex: '^sfc-.*' - <<: *releng_view_common - -- view: - name: snbi - description: 'List of snbi jobs' - regex: '^snbi-.*' - <<: *releng_view_common - -- view: - name: snmp - description: 'List of snmp jobs' - regex: '^snmp-.*' - <<: *releng_view_common - -- view: - name: snmp4sdn - description: 'List of snmp4sdn jobs' - regex: '^snmp4sdn-.*' - <<: *releng_view_common - -- view: - name: sxp - description: 'List of sxp jobs' - regex: '^sxp-.*' - <<: *releng_view_common - -- view: - name: systemmetrics - description: 'List of systemmetrics jobs' - regex: '^systemmetrics-.*' - <<: *releng_view_common - -- view: - name: telemetry - description: 'List of telemetry jobs' - regex: '^telemetry-.*' - <<: *releng_view_common - -- view: - name: topoprocessing - description: 'List of topoprocessing jobs' - regex: '^topoprocessing-.*' - <<: *releng_view_common - -- view: - name: transportpce - description: 'List of transportpce jobs' - regex: '^transportpce-.*' - <<: *releng_view_common - -- view: - name: tsdr - description: 'List of tsdr jobs' - regex: '^tsdr-.*' - <<: *releng_view_common - -- view: - name: ttp - description: 'List of ttp jobs' - regex: '^ttp-.*' - <<: *releng_view_common - -- view: - name: unimgr - description: 'List of unimgr jobs' - regex: '^unimgr-.*' - <<: *releng_view_common - -- view: - name: usc - description: 'List of usc jobs' - regex: '^usc-.*' - <<: *releng_view_common - -- view: - name: uscplugin - description: 'List of uscplugin jobs' - regex: '^usecplugin-.*' - <<: *releng_view_common - -- view: - name: vbd - description: 'List of vbd jobs' - regex: '^vbd-.*' - <<: *releng_view_common - -- view: - name: yang-push - description: 'List of yang-push jobs' - regex: '^yang-push-.*' - <<: *releng_view_common - -- view: - name: yangide - description: 'List of yangide jobs' - regex: '^yangide-.*' - <<: *releng_view_common - -- view: - name: yangtools - description: 'List of yangtools jobs' - regex: '^yangtools-.*' + regex: '^builder-.*' <<: *releng_view_common diff --git a/jjb/reservation/reservation.yaml b/jjb/reservation/reservation.yaml index 33c6313e2..3239c60ba 100644 --- a/jjb/reservation/reservation.yaml +++ b/jjb/reservation/reservation.yaml @@ -42,3 +42,9 @@ branch: 'master' mvn-settings: 'reservation-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: reservation + description: 'List of reservation jobs' + regex: '^reservation-.*' + <<: *releng_view_common diff --git a/jjb/sdninterfaceapp/sdninterfaceapp.yaml b/jjb/sdninterfaceapp/sdninterfaceapp.yaml index 664877e84..bc5124e5f 100644 --- a/jjb/sdninterfaceapp/sdninterfaceapp.yaml +++ b/jjb/sdninterfaceapp/sdninterfaceapp.yaml @@ -46,3 +46,9 @@ build-node: centos7-builder-2c-8g mvn-settings: 'sdninterfaceapp-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: sdninterfaceapp + description: 'List of sdninterfaceapp jobs' + regex: '^sdninterfaceapp-.*' + <<: *releng_view_common diff --git a/jjb/sfc/sfc-patch-test.yaml b/jjb/sfc/sfc-patch-test.yaml index 2ee117d46..b2abc7dfc 100644 --- a/jjb/sfc/sfc-patch-test.yaml +++ b/jjb/sfc/sfc-patch-test.yaml @@ -11,8 +11,10 @@ stream: - fluorine: branch: 'master' + os-branch: 'queens' - oxygen: branch: 'stable/oxygen' + os-branch: 'queens' feature: - basic: @@ -22,3 +24,7 @@ - full: csit-list: > sfc-csit-3node-docker-full-deploy-all-{stream} + + - netvirt: + csit-list: > + netvirt-csit-1node-openstack-{os-branch}-sfc-{stream} diff --git a/jjb/sfc/sfc.yaml b/jjb/sfc/sfc.yaml index f0fb8ca71..2b1c073b7 100644 --- a/jjb/sfc/sfc.yaml +++ b/jjb/sfc/sfc.yaml @@ -58,3 +58,9 @@ branch: 'master' mvn-settings: 'sfc-settings' mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' + +- view: + name: sfc + description: 'List of sfc jobs' + regex: '^sfc-.*' + <<: *releng_view_common diff --git a/jjb/snbi/snbi.yaml b/jjb/snbi/snbi.yaml index 84a9ca9fe..1faecb9f5 100644 --- a/jjb/snbi/snbi.yaml +++ b/jjb/snbi/snbi.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'snbi-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: snbi + description: 'List of snbi jobs' + regex: '^snbi-.*' + <<: *releng_view_common diff --git a/jjb/snmp/snmp.yaml b/jjb/snmp/snmp.yaml index c959329d8..0ec71847e 100644 --- a/jjb/snmp/snmp.yaml +++ b/jjb/snmp/snmp.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'snmp-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: snmp + description: 'List of snmp jobs' + regex: '^snmp-.*' + <<: *releng_view_common diff --git a/jjb/snmp4sdn/snmp4sdn.yaml b/jjb/snmp4sdn/snmp4sdn.yaml index 87431891b..3da5fb41f 100644 --- a/jjb/snmp4sdn/snmp4sdn.yaml +++ b/jjb/snmp4sdn/snmp4sdn.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'snmp4sdn-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: snmp4sdn + description: 'List of snmp4sdn jobs' + regex: '^snmp4sdn-.*' + <<: *releng_view_common diff --git a/jjb/sxp/sxp.yaml b/jjb/sxp/sxp.yaml index e8b6c02b5..0d64f56ae 100644 --- a/jjb/sxp/sxp.yaml +++ b/jjb/sxp/sxp.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'sxp-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: sxp + description: 'List of sxp jobs' + regex: '^sxp-.*' + <<: *releng_view_common diff --git a/jjb/systemmetrics/systemmetrics.yaml b/jjb/systemmetrics/systemmetrics.yaml index d3bd28873..0adb0ca98 100644 --- a/jjb/systemmetrics/systemmetrics.yaml +++ b/jjb/systemmetrics/systemmetrics.yaml @@ -26,3 +26,9 @@ branch: 'master' mvn-settings: 'systemmetrics-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: systemmetrics + description: 'List of systemmetrics jobs' + regex: '^systemmetrics-.*' + <<: *releng_view_common diff --git a/jjb/telemetry/telemetry.yaml b/jjb/telemetry/telemetry.yaml index c28c14e24..81e8d30c2 100644 --- a/jjb/telemetry/telemetry.yaml +++ b/jjb/telemetry/telemetry.yaml @@ -35,3 +35,9 @@ mvn-settings: 'telemetry-settings' mvn-goals: 'clean install' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: telemetry + description: 'List of telemetry jobs' + regex: '^telemetry-.*' + <<: *releng_view_common diff --git a/jjb/topoprocessing/topoprocessing.yaml b/jjb/topoprocessing/topoprocessing.yaml index 8ee0a78fb..28faf07c0 100644 --- a/jjb/topoprocessing/topoprocessing.yaml +++ b/jjb/topoprocessing/topoprocessing.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'topoprocessing-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: topoprocessing + description: 'List of topoprocessing jobs' + regex: '^topoprocessing-.*' + <<: *releng_view_common diff --git a/jjb/transportpce/transportpce.yaml b/jjb/transportpce/transportpce.yaml index d1ab65f8d..c73709f04 100644 --- a/jjb/transportpce/transportpce.yaml +++ b/jjb/transportpce/transportpce.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'transportpce-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: transportpce + description: 'List of transportpce jobs' + regex: '^transportpce-.*' + <<: *releng_view_common diff --git a/jjb/tsdr/tsdr.yaml b/jjb/tsdr/tsdr.yaml index 564849dd8..6b5dede2e 100644 --- a/jjb/tsdr/tsdr.yaml +++ b/jjb/tsdr/tsdr.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'tsdr-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: tsdr + description: 'List of tsdr jobs' + regex: '^tsdr-.*' + <<: *releng_view_common diff --git a/jjb/ttp/ttp.yaml b/jjb/ttp/ttp.yaml index b52b0245c..1b3deeb8d 100644 --- a/jjb/ttp/ttp.yaml +++ b/jjb/ttp/ttp.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'ttp-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: ttp + description: 'List of ttp jobs' + regex: '^ttp-.*' + <<: *releng_view_common diff --git a/jjb/unimgr/unimgr.yaml b/jjb/unimgr/unimgr.yaml index 4c63ee1e6..28d6dd776 100644 --- a/jjb/unimgr/unimgr.yaml +++ b/jjb/unimgr/unimgr.yaml @@ -45,3 +45,9 @@ branch: 'master' mvn-settings: 'unimgr-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: unimgr + description: 'List of unimgr jobs' + regex: '^unimgr-.*' + <<: *releng_view_common diff --git a/jjb/usc/usc.yaml b/jjb/usc/usc.yaml index f7dfeb8c5..32a2ee35e 100644 --- a/jjb/usc/usc.yaml +++ b/jjb/usc/usc.yaml @@ -45,3 +45,9 @@ branch: 'master' mvn-settings: 'usc-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: usc + description: 'List of usc jobs' + regex: '^usc-.*' + <<: *releng_view_common diff --git a/jjb/usecplugin/usecplugin.yaml b/jjb/usecplugin/usecplugin.yaml index 1b017719b..ce250f832 100644 --- a/jjb/usecplugin/usecplugin.yaml +++ b/jjb/usecplugin/usecplugin.yaml @@ -43,3 +43,9 @@ project-name: 'usecplugin' mvn-settings: 'usecplugin-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: usecplugin + description: 'List of usecplugin jobs' + regex: '^usecplugin-.*' + <<: *releng_view_common diff --git a/jjb/yang-push/yang-push.yaml b/jjb/yang-push/yang-push.yaml index 5083bbfae..ca5d56edd 100644 --- a/jjb/yang-push/yang-push.yaml +++ b/jjb/yang-push/yang-push.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'yang-push-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: yang-push + description: 'List of yang-push jobs' + regex: '^yang-push-.*' + <<: *releng_view_common diff --git a/jjb/yangide/yangide.yaml b/jjb/yangide/yangide.yaml index be65fd219..18be81167 100644 --- a/jjb/yangide/yangide.yaml +++ b/jjb/yangide/yangide.yaml @@ -43,3 +43,9 @@ branch: 'master' mvn-settings: 'yangide-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: yangide + description: 'List of yangide jobs' + regex: '^yangide-.*' + <<: *releng_view_common diff --git a/jjb/yangtools/yangtools.yaml b/jjb/yangtools/yangtools.yaml index 0e5ccb848..bd7950a49 100644 --- a/jjb/yangtools/yangtools.yaml +++ b/jjb/yangtools/yangtools.yaml @@ -36,3 +36,9 @@ branch: 'master' mvn-settings: 'yangtools-settings' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m' + +- view: + name: yangtools + description: 'List of yangtools jobs' + regex: '^yangtools-.*' + <<: *releng_view_common diff --git a/packer/provision/devstack-pre-pip.sh b/packer/provision/devstack-pre-pip.sh index 21c2a7a07..3e129f80c 100644 --- a/packer/provision/devstack-pre-pip.sh +++ b/packer/provision/devstack-pre-pip.sh @@ -27,8 +27,13 @@ branch=${os_branch} # strip the "stable" off of the branch branch_name=$(cut -d'/' -f2 <<< "${branch}") -wget https://bootstrap.pypa.io/get-pip.py -python get-pip.py +# Do not upgrade pip to v10. v10 does not allow uninstalling +# distutils installed packages. This fails the openstack pip installs +# below when it attempts to uninstall packages. +# devstack patch that is trying to get pip 10 working: +# https://review.openstack.org/#/c/561597/ +# wget https://bootstrap.pypa.io/get-pip.py +# python get-pip.py mkdir tmp cd tmp @@ -49,8 +54,16 @@ done echo '---> Installing openvswitch from relevant openstack branch' yum install -y "centos-release-openstack-${branch_name}" -yum install -y --nogpgcheck openvswitch - +# install 2.8.2 for queens. +# 2.9.0 is the current version in openstack-queens, but it is buggy. +# Remove this when https://review.rdoproject.org/r/#/c/13839/ merges and 2.9.2 is in the repo. +yum repolist +yum --showduplicates list openvswitch +if [ "${branch}" == "stable/queens" ]; then + yum install -y --nogpgcheck openvswitch-2.8.2-1.el7 +else + yum install -y --nogpgcheck openvswitch +fi cd "$OLDPWD" rm -fr tmp diff --git a/packer/provision/local-builder.yaml b/packer/provision/local-builder.yaml index 462005323..149060c53 100644 --- a/packer/provision/local-builder.yaml +++ b/packer/provision/local-builder.yaml @@ -70,23 +70,6 @@ src: '/tmp/hbase-{{hbase_version}}.tar.gz' dest: /tmp/Hbase remote_src: true - - name: Install Quagga - block: - - name: Fetch Quagga git repo - git: - repo: https://github.com/6WIND/zrpcd.git - dest: /tmp/build_quagga/zrpcd - version: master - - name: Set compile script executable - file: - path: /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh - mode: 0755 - - name: Compile Quagga - shell: /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -d -b -t - args: - chdir: /tmp/build_quagga/zrpcd - executable: /bin/bash - become: true post_tasks: - name: System Reseal diff --git a/packer/provision/mininet-ovs-2.5.sh b/packer/provision/mininet-ovs-2.5.sh index c2ecaa759..7cbab296a 100644 --- a/packer/provision/mininet-ovs-2.5.sh +++ b/packer/provision/mininet-ovs-2.5.sh @@ -50,16 +50,3 @@ apt-get install vlan # Install netaddr package which is needed by some custom mininet topologies apt-get install python-netaddr - -# Check out quagga , compile and install for router functionalities -echo "Installing the Quagga..." -mkdir -p /tmp/build_quagga -cd /tmp/build_quagga -git clone https://github.com/6WIND/zrpcd.git -cd zrpcd -git checkout 20170731 -chmod a+x /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -/tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -d -b -t - -# Removing the build_quagga folder -rm -rf /tmp/build_quagga/ diff --git a/packer/provision/mininet-ovs-2.6.sh b/packer/provision/mininet-ovs-2.6.sh index 5b599d39a..6673762bc 100644 --- a/packer/provision/mininet-ovs-2.6.sh +++ b/packer/provision/mininet-ovs-2.6.sh @@ -66,16 +66,3 @@ apt-get install vlan # Install netaddr package which is needed by some custom mininet topologies apt-get install python-netaddr - -# Check out quagga , compile and install for router functionalities -echo "Installing the Quagga..." -mkdir -p /tmp/build_quagga -cd /tmp/build_quagga -git clone https://github.com/6WIND/zrpcd.git -cd zrpcd -git checkout 20170731 -chmod a+x /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -/tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -d -b -t - -# Removing the build_quagga folder -rm -rf /tmp/build_quagga/ diff --git a/packer/provision/mininet-ovs-2.8.yaml b/packer/provision/mininet-ovs-2.8.yaml index f07daa8a1..441a9d1b1 100644 --- a/packer/provision/mininet-ovs-2.8.yaml +++ b/packer/provision/mininet-ovs-2.8.yaml @@ -132,24 +132,6 @@ apt: name=vlan state=present become: true - - name: Install Quagga - block: - - name: Fetch Quagga git repo - git: - repo: https://github.com/6WIND/zrpcd.git - dest: /tmp/build_quagga/zrpcd - version: 20170731 - - name: Set compile script executable - file: - path: /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh - mode: 0755 - - name: Compile Quagga - shell: /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -d -b -t - args: - chdir: /tmp/build_quagga/zrpcd - executable: /bin/bash - become: true - post_tasks: - name: System Reseal script: ../common-packer/provision/system-reseal.sh diff --git a/packer/templates/devstack-pre-pip-ocata.json b/packer/templates/devstack-pre-pip-ocata.json deleted file mode 100644 index 418b2e19e..000000000 --- a/packer/templates/devstack-pre-pip-ocata.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "variables": { - "base_image": null, - "distro": null, - "cloud_auth_url": null, - "cloud_user": null, - "cloud_pass": null, - "cloud_network": null, - "cloud_tenant": null, - "cloud_user_data": null, - "ssh_user": null, - "ssh_proxy_host": "" - }, - "builders": [ - { - "type": "openstack", - "identity_endpoint": "{{user `cloud_auth_url`}}", - "domain_name": "Default", - "tenant_name": "{{user `cloud_tenant`}}", - "username": "{{user `cloud_user`}}", - "password": "{{user `cloud_pass`}}", - "region": "ca-ymq-1", - "availability_zone": "ca-ymq-2", - "ssh_username": "{{user `ssh_user`}}", - "ssh_proxy_host": "{{user `ssh_proxy_host`}}", - "image_name": "ZZCI - {{user `distro`}} - devstack-ocata - {{isotime \"20060102-150405.000\"}}", - "instance_name": "{{user `distro`}}-devstack-ocata-{{uuid}}", - "source_image_name": "{{user `base_image`}}", - "flavor": "v1-standard-1", - "networks": [ - "{{user `cloud_network`}}" - ], - "user_data_file": "{{user `cloud_user_data`}}", - "metadata": { - "ci_managed": "yes" - } - } - ], - "provisioners": [ - { - "type": "shell", - "environment_vars": [ - "os_branch=stable/ocata" - ], - "scripts": [ - "provision/baseline.sh", - "provision/devstack-pre-pip.sh", - "provision/system_reseal_local_env.sh", - "provision/system_reseal.sh" - ], - "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi" - } - ] -} diff --git a/packer/templates/mininet-ovs-2.8.json b/packer/templates/mininet-ovs-2.8.json index 1f668dbe9..3807026b1 100644 --- a/packer/templates/mininet-ovs-2.8.json +++ b/packer/templates/mininet-ovs-2.8.json @@ -46,6 +46,10 @@ ], "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi" }, + { + "type": "shell-local", + "command": "./common-packer/ansible-galaxy.sh {{user `ansible_roles_path`}}" + }, { "type": "ansible", "playbook_file": "provision/mininet-ovs-2.8.yaml", diff --git a/packer/templates/robot.json b/packer/templates/robot.json index cff9a0e1c..d0f61e78d 100644 --- a/packer/templates/robot.json +++ b/packer/templates/robot.json @@ -46,6 +46,10 @@ ], "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi" }, + { + "type": "shell-local", + "command": "./common-packer/ansible-galaxy.sh {{user `ansible_roles_path`}}" + }, { "type": "ansible", "playbook_file": "provision/robot.yaml", diff --git a/tox.ini b/tox.ini index ad3eb3188..6ee52ef32 100644 --- a/tox.ini +++ b/tox.ini @@ -23,11 +23,11 @@ commands = sphinx-build -b html -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs [testenv:pep8] deps = flake8 -commands = flake8 scripts/ +commands = flake8 scripts/ *.py [testenv:prefix] -commands = ./check_prefix.sh +commands = python {toxinidir}/check_prefix.py [testenv:robot] -commands = ./check_robot.sh - +basepython = python3 +commands = python {toxinidir}/check_robot.py