Merge "Add Archiving... log message to archives.log"
authorThanh Ha <thanh.ha@linuxfoundation.org>
Wed, 29 Mar 2017 00:35:06 +0000 (00:35 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 29 Mar 2017 00:35:06 +0000 (00:35 +0000)
14 files changed:
docs/jenkins.rst
jjb/autorelease/autorelease-projects.yaml
jjb/autorelease/autorelease-templates.yaml
jjb/autorelease/include-raw-autorelease-notify-build-failure.sh
jjb/bier/bier-csit-basic.yaml [new file with mode: 0644]
jjb/include-raw-deploy-archives.sh
jjb/releng-defaults.yaml
jjb/releng-jobs.yaml
jjb/sxp/sxp-csit-cluster-routing.yaml [new file with mode: 0644]
jjb/tsdr/tsdr-csit-elasticsearch.yaml
packer/provision/baseline.sh
packer/provision/java-builder.sh
packer/provision/mininet-ovs-2.5.sh
packer/provision/robot.sh

index 2629946d43a34e92882b0015f44457327a148fac..ef38654e8fe4c1e7d138e674daff647d5e6a828c 100644 (file)
@@ -203,10 +203,10 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          A CentOS 7 build minion. This system has OpenJDK 1.7 (Java7) and OpenJDK
-          1.8 (Java8) installed on it along with all the other components and
-          libraries needed for building any current OpenDaylight project. This is
-          the label that is used for all basic verify, merge and daily builds for
+          CentOS 7 build minion configured with OpenJDK 1.7 (Java7) and OpenJDK
+          1.8 (Java8) along with all the other components and libraries needed
+          for building any current OpenDaylight project. This is the label that
+          is used for all basic verify, merge and daily builds for
           projects.
         </td>
       </tr>
@@ -220,7 +220,7 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          A CentOS 7 minion that is configured with OpenJDK 1.7 (Java7), OpenJDK
+          CentOS 7 minion configured with OpenJDK 1.7 (Java7), OpenJDK
           1.8 (Java8) and all the current packages used by the integration
           project for doing robot driven jobs. If you are executing robot
           framework jobs then your job should be using this as the minion that
@@ -238,7 +238,7 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          Basic Ubuntu system with ovs 2.0.2 and mininet 2.1.0
+          Basic Ubuntu 14.04 (Trusty) system with ovs 2.0.2 and mininet 2.1.0
         </td>
       </tr>
 
@@ -250,7 +250,7 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          Basic Ubuntu system with ovs 2.3 and mininet 2.2.1
+          Ubuntu 14.04 (Trusty) system with ovs 2.3 and mininet 2.2.1
         </td>
       </tr>
 
@@ -262,7 +262,19 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          Basic Ubuntu system with ovs 2.5 and mininet 2.2.2
+          Ubuntu 14.04 (Trusty) system with ovs 2.5 and mininet 2.2.2
+        </td>
+      </tr>
+
+      <tr class="warning">
+        <td><b>Jenkins Labels</b><br/> ubuntu1604-mininet-ovs-25-2c-4g</td>
+        <td><b>Minion Template names</b><br/> ubuntu1604-mininet-ovs-25-2c-4g</td>
+        <td><b>Packer Template</b><br/> releng/builder/packer/templates/mininet-ovs-2.5.json</td>
+        <td><b>Spinup Script</b><br/> releng/builder/jenkins-scripts/mininet-ubuntu.sh</td>
+      </tr>
+      <tr>
+        <td colspan="4">
+          Ubuntu 16.04 (Xenial) system with ovs 2.5 and mininet 2.2.1
         </td>
       </tr>
 
@@ -274,7 +286,7 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          CentOS 7 system purpose built for doing OpenStack testing using
+          CentOS 7 system purpose built for doing OpenStack testing using
           DevStack. This minion is primarily targeted at the needs of the OVSDB
           project. It has OpenJDK 1.7 (aka Java7) and OpenJDK 1.8 (Java8) and
           other basic DevStack related bits installed.
@@ -289,7 +301,7 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          A CentOS 7 system that is configured with OpenJDK 1.7 (aka Java7),
+          CentOS 7 system configured with OpenJDK 1.7 (aka Java7),
           OpenJDK 1.8 (Java8) and Docker. This system was originally custom
           built for the test needs of the OVSDB project but other projects have
           expressed interest in using it.
@@ -304,9 +316,22 @@ Pool: ODLRPC
       </tr>
       <tr>
         <td colspan="4">
-          A basic Ubuntu node with latest OVS and docker installed. Used by Group Based Policy.
+          Ubuntu 14.04 (Trusty) node with latest OVS and docker installed. Used by Group Based Policy.
         </td>
       </tr>
+
+      <tr class="warning">
+        <td><b>Jenkins Labels</b><br/> ubuntu1604-gbp-2c-4g</td>
+        <td><b>Minion Template names</b><br/> ubuntu1604-gbp-2c-4g</td>
+        <td><b>Packer Template</b><br/> releng/builder/packer/templates/gbp.json</td>
+        <td><b>Spinup Script</b><br/> releng/builder/jenkins-scripts/ubuntu-docker-ovs.sh</td>
+      </tr>
+      <tr>
+        <td colspan="4">
+          Ubuntu 16.04 (Xenial) node with latest OVS and docker installed. Used by Group Based Policy.
+        </td>
+      </tr>
+
     </table>
 
 Pool: ODLPUB - HOT (Heat Orchestration Templates)
index 36e385a6c0621a7265eea6bcff7d87116a92c43a..fb85cf2ab3eb584aecfd0c15184b1579fe4fc3fb 100644 (file)
@@ -27,8 +27,7 @@
     archive-artifacts: >
         **/*.prop
         **/*.log
-        **/patches/*.bundle
-        **/patches/*.patch
+        patches/**
         patches.tar.gz
 
 ###
index 847b479a6eb5ecb87ea4f004ad440f0b4f2a8a25..269cf528cf1c284c9dd295f5ecab8503182f44f4 100644 (file)
           # way for downstream jobs to pull the latest version of this file
           # in their builds.
           artifacts: 'dependencies.log'
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[autorelease]'
       - trigger-parameterized-builds:
           - project: 'integration-distribution-test-{integration-test}'
             condition: UNSTABLE_OR_BETTER
             fail-on-missing: true
       - opendaylight-infra-shiplogs:
           maven-version: 'mvn33'
-
index be274985e8564df3ecd04c7bd3a91b35e945ad11..645b70456308dd4adb9977dd52598c2c9ed75352 100644 (file)
@@ -17,7 +17,9 @@ STREAM=${JOB_NAME#*-*e-}
 # get console logs
 wget -O "$CONSOLE_LOG" "${BUILD_URL}consoleText"
 
-# extract the failing project or artifactid
+# TODO: This section is still required since some of the projects use
+# description. Remove this section when the reactor info is more consistant.
+# extract failing project from reactor information
 REACTOR_INFO=$(awk '/Reactor Summary:/ { flag=1 }
           flag {
              if ( sub(/^\[(INFO)\]/,"") && sub(/FAILURE \[.*/,"") ) {
@@ -30,25 +32,59 @@ REACTOR_INFO=$(awk '/Reactor Summary:/ { flag=1 }
 
 # check for project format
 if [[ ${REACTOR_INFO} =~ .*::*.*::*. ]]; then
-    # extract project and artifactid from full format
+    # extract project and artifactId from full format
     ODL=$(echo "${REACTOR_INFO}" | awk -F'::' '{ gsub(/^[ \t]+|[ \t]+$/, "", $1); print $1 }')
-    PROJECT=$(echo "${REACTOR_INFO}" | awk -F'::' '{ gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2 }')
-    ARTIFACTID=$(echo "${REACTOR_INFO}" | awk -F'::' '{ gsub(/^[ \t]+|[ \t]+$/, "", $3); print $3 }')
+    PROJECT_=$(echo "${REACTOR_INFO}" | awk -F'::' '{ gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2 }')
+    NAME=$(echo "${REACTOR_INFO}" | awk -F'::' '{ gsub(/^[ \t]+|[ \t]+$/, "", $3); print $3 }')
 else
     # set ARTIFACTID to partial format
     ODL=""
-    PROJECT=""
-    ARTIFACTID=$(echo "${REACTOR_INFO}" | awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }')
+    PROJECT_=""
+    NAME=$(echo "${REACTOR_INFO}" | awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }')
+fi
+
+
+# determine ARTIFACT_ID for project mailing list
+ARTIFACT_ID=$(awk -F: '/\[ERROR\].*mvn <goals> -rf :/ { print $2}' $CONSOLE_LOG)
+
+# determine project mailing list using xpaths
+# if project.groupId:
+#     project.groupId is set and is not inherited
+# else if project.parent.groupId:
+#     project.groupId is not set but IS inherited from project.parent.groupId
+# else
+#     exclude project mailing list
+grouplist=()
+while IFS="" read -r p; do
+    GROUP=$(xmlstarlet sel\
+          -N "x=http://maven.apache.org/POM/4.0.0"\
+          -t -m "/x:project[x:artifactId='$ARTIFACT_ID']"\
+          --if "/x:project/x:groupId"\
+          -v "/x:project/x:groupId"\
+          --elif "/x:project/x:parent/x:groupId"\
+          -v "/x:project/x:parent/x:groupId"\
+          --else -o ""\
+          "$p" 2>/dev/null)
+    if [ ! -z "${GROUP}" ]; then
+        grouplist+=($(echo "${GROUP}" | awk -F'.' '{ print $3 }'))
+    fi
+done < <(find . -name "pom.xml")
+
+if [ "${#grouplist[@]}" -eq 1 ]; then
+    PROJECT="${grouplist[0]}"
+else
+    GROUPLIST="NOTE: The artifactId: $ARTIFACT_ID matches multiple groups: ${grouplist[*]}"
 fi
 
 # Construct email subject & body
 PROJECT_STRING=${PROJECT:+" from $PROJECT"}
-SUBJECT="[release] Autorelease $STREAM failed to build $ARTIFACTID$PROJECT_STRING"
+SUBJECT="[release] Autorelease $STREAM failed to build $ARTIFACT_ID$PROJECT_STRING"
 BODY="Attention ${PROJECT:-"OpenDaylight"}-devs,
 
-Autorelease $STREAM failed to build $ARTIFACTID$PROJECT_STRING in build
+Autorelease $STREAM failed to build $ARTIFACT_ID$PROJECT_STRING in build
 $BUILD_NUMBER. Attached is a snippet of the error message related to the
 failure that we were able to automatically parse as well as console logs.
+${PROJECT:+"$GROUPLIST"}
 
 Console Logs:
 https://logs.opendaylight.org/$SILO/$ARCHIVES_DIR
@@ -66,11 +102,11 @@ ODL releng/autorelease team
 BUILD_STATUS=$(awk '/\[INFO\] Remote staging finished/{flag=1;next}/Total time:/{flag=0}flag' $CONSOLE_LOG \
                    | grep '\] BUILD' | awk '{print $3}')
 
-if [ ! -z "${ARTIFACTID}" ] && [[ "${BUILD_STATUS}" != "SUCCESS" ]]; then
+if ([ ! -z "${NAME}" ] || [ ! -z "${ARTIFACT_ID}" ]) && [[ "${BUILD_STATUS}" != "SUCCESS" ]]; then
     # project search pattern should handle both scenarios
-    # 1. Full format:    ODL :: $PROJECT :: $ARTIFACTID
-    # 2. Partial format: Building $ARTIFACTID
-    sed -e "/\[INFO\] Building \(${ARTIFACTID} \|${ODL} :: ${PROJECT} :: ${ARTIFACTID} \)/,/Reactor Summary:/!d;//d" \
+    # 1. Full format:    ODL :: $PROJECT :: $ARTIFACT_ID
+    # 2. Partial format: Building $ARTIFACT_ID
+    sed -e "/\[INFO\] Building \(${NAME} \|${ARTIFACT_ID} \|${ODL} :: ${PROJECT_} :: ${NAME} \)/,/Reactor Summary:/!d;//d" \
           $CONSOLE_LOG > /tmp/error.txt
 
     if [ -n "${PROJECT}" ]; then
diff --git a/jjb/bier/bier-csit-basic.yaml b/jjb/bier/bier-csit-basic.yaml
new file mode 100644 (file)
index 0000000..afa92be
--- /dev/null
@@ -0,0 +1,30 @@
+---
+- project:
+    name: bier-csit-basic
+    jobs:
+      - '{project}-csit-1node-{functionality}-{install}-{stream}'
+      - '{project}-csit-verify-1node-{functionality}'
+
+    # The project name
+    project: 'bier'
+
+    # The functionality under test
+    functionality: 'basic'
+
+    # Project branches
+    stream:
+      - carbon:
+          branch: 'master'
+          jre: 'openjdk8'
+
+    install:
+      - only:
+          scope: 'only'
+      - all:
+          scope: 'all'
+
+    # Features to install
+    install-features: 'odl-bier-all'
+
+    # Robot custom options
+    robot-options: ''
index 67499f645c8b38204295bce1b3cb274ddece07d9..78594e1591fed3f09d1e4107243e2cdd60a68e34 100644 (file)
@@ -90,7 +90,7 @@ fi
 # Ignore logging if archives doesn't exist
 mv "$WORKSPACE/archives/" "$ARCHIVES_DIR" > /dev/null 2>&1
 touch "$ARCHIVES_DIR/_build-details.txt"
-echo "build-url: ${{BUILD_URL}}" >> "$ARCHIVES_DIR/_build-details.txt"
+echo "build-url: ${BUILD_URL}" >> "$ARCHIVES_DIR/_build-details.txt"
 env | grep -v PASSWORD > "$ARCHIVES_DIR/_build-enviroment-variables.txt"
 
 # capture system info
@@ -119,7 +119,7 @@ find "$ARCHIVES_DIR" -type f -print0 \
                 | cut -d: -f1 \
                 | xargs -d'\n' -r gzip
 # Compress Java heap dumps using xz
-find "$ARCHIVES_DIR" -type -f -name \*.hprof -print0 | xargs -0 xz
+find "$ARCHIVES_DIR" -type f -name \*.hprof -print0 | xargs -0 xz
 
 zip -r archives.zip "$JENKINS_HOSTNAME/" >> "$ARCHIVES_DIR/_archives.log"
 du -sh archives.zip
index 843129a33e57bc038c29a1b524949dd4056b51e1..84c61f8a2b78aab2a0d7f0b4440c86b809d22ddc 100644 (file)
         bgpcep-csit-3node-periodic-bgpclustering-all-carbon,
         bgpcep-csit-3node-periodic-bgpclustering-ha-only-carbon,
         bgpcep-csit-3node-periodic-bgpclustering-only-carbon,
+        bier-csit-1node-basic-all-carbon,
+        bier-csit-1node-basic-only-carbon,
         capwap-csit-1node-ac-all-carbon,
         capwap-csit-1node-ac-only-carbon,
         centinel-csit-1node-basic-all-carbon,
         sxp-csit-1node-topology-only-carbon,
         sxp-csit-3node-periodic-clustering-all-carbon,
         sxp-csit-3node-periodic-clustering-only-carbon,
+        sxp-csit-3node-periodic-routing-all-carbon,
+        sxp-csit-3node-periodic-routing-only-carbon,
         topoprocessing-csit-1node-topology-operations-all-carbon,
         topoprocessing-csit-1node-topology-operations-only-carbon,
         tsdr-csit-1node-cassandra-datastore-only-carbon,
         topoprocessing-csit-1node-topology-operations-all-boron,
         topoprocessing-csit-1node-topology-operations-only-boron,
         tsdr-csit-1node-cassandra-datastore-only-boron,
-        tsdr-csit-1node-elasticsearch-datastore-only-boron,
         tsdr-csit-1node-hbase-datastore-all-boron,
         tsdr-csit-1node-hbase-datastore-only-boron,
         tsdr-csit-1node-hsqldb-datastore-all-boron,
         topoprocessing-csit-1node-topology-operations-all-beryllium,
         topoprocessing-csit-1node-topology-operations-only-beryllium,
         tsdr-csit-1node-cassandra-datastore-only-beryllium,
-        tsdr-csit-1node-elasticsearch-datastore-only-beryllium,
         tsdr-csit-1node-hbase-datastore-all-beryllium,
         tsdr-csit-1node-hbase-datastore-only-beryllium,
         tsdr-csit-1node-hsqldb-datastore-all-beryllium,
index 0338f7871832a909d1fc4263215d00ec6fdfad87..25eb92acdd2a472f0acb72832d81f2dfcd2fec9a 100644 (file)
           virtualenv $WORKSPACE/venv
           source $WORKSPACE/venv/bin/activate
           pip install --upgrade pip
-          pip freeze
           pip install jenkins-job-builder
+          pip freeze
           jenkins-jobs -l DEBUG test --recursive -o archives/job_output jjb/
           gzip archives/job_output/*
       - releng-check-unicode
           virtualenv $WORKSPACE/venv
           source $WORKSPACE/venv/bin/activate
           pip install --upgrade pip
-          pip freeze
           pip install jenkins-job-builder
+          pip freeze
           jenkins-jobs --version
           jenkins-jobs update --recursive --delete-old --workers 4 jjb/
 
           virtualenv $WORKSPACE/venv
           source $WORKSPACE/venv/bin/activate
           pip install --upgrade pip
-          pip freeze
           pip install jenkins-job-builder
+          pip freeze
           jenkins-jobs --flush-cache update --recursive --workers 4 jjb/
 
     publishers:
diff --git a/jjb/sxp/sxp-csit-cluster-routing.yaml b/jjb/sxp/sxp-csit-cluster-routing.yaml
new file mode 100644 (file)
index 0000000..c32e756
--- /dev/null
@@ -0,0 +1,32 @@
+---
+- project:
+    name: sxp-csit-routing
+    jobs:
+      - '{project}-csit-3node-periodic-{functionality}-{install}-{stream}'
+
+    # The project name
+    project: 'sxp'
+
+    # The functionality under test
+    functionality: 'routing'
+
+    # Project branches
+    stream:
+      - carbon:
+          branch: 'master'
+          jre: 'openjdk8'
+
+    install:
+      - only:
+          scope: 'only'
+      - all:
+          scope: 'all'
+
+    # Features to install
+    install-features: 'odl-restconf,odl-sxp-controller,odl-sxp-route'
+
+    # Tools VMs:
+    tools_system_count: 2
+
+    # Robot custom options:
+    robot-options: ''
index dc41814f14b4fb5aa3d1a99e668dc28fc0050f0e..974b5594aa5fe4c91be7b362f01d81c2cda79ad9 100644 (file)
       - carbon:
           branch: 'master'
           jre: 'openjdk8'
-      - boron:
-          branch: 'stable/boron'
-          jre: 'openjdk8'
-      - beryllium:
-          branch: 'stable/beryllium'
-          jre: 'openjdk7'
 
     install:
       - only:
index 8a9971f78ec93db84515067a0603d175c89b33ad..5a97699467aab83610b1021ff219886edaee0f4d 100644 (file)
@@ -183,6 +183,7 @@ EOF
         do
             # shellcheck disable=SC2046
             if [ $(dpkg-query -W -f='${Status}' $pkg 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
+                apt-cache policy $pkg
                 apt-get install $pkg
             fi
         done
index 11f6bb08d017141d64a3ff279106a104df262cb9..9f3da56efa2ac25790cebdced4fbbd79bb52fdbc 100644 (file)
@@ -10,7 +10,7 @@ set -xeu -o pipefail
 yum install -y @development perl-{Digest-SHA,ExtUtils-MakeMaker} \
     ant {boost,gtest,json-c,libcurl,libxml2,libvirt,openssl}-devel \
     {readline,unixODBC}-devel yum-utils fedora-packager \
-    libxslt-devel crudini npm
+    libxslt-devel crudini
 
 # Install python3 and dependencies, needed for Coala linting at least
 yum install -y python34
@@ -73,5 +73,3 @@ unzip packer_0.12.2_linux_amd64.zip -d /usr/local/bin/
 # rename packer to avoid conflict with binary in cracklib
 mv /usr/local/bin/packer /usr/local/bin/packer.io
 
-# Needed for Coala linting, Markdown and Dockerfile bears in particular
-npm install remark-cli dockerfile_lint
index 1702c8fe2cd5b015b1bf03bd748f8843bef43393..5f392cf8a15c69c97839144fa0edd6bb26d0e19b 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -x
 
 # vim: sw=4 ts=4 sts=4 et tw=72 :
 
@@ -15,16 +15,15 @@ export DEBIAN_FRONTEND=noninteractive
 # ups
 echo 'PS1="[\u@\h \W]> "' >> /etc/skel/.bashrc
 
-# remove all force-yes with --allow*
 echo '---> Install OpenVSwitch 2.5.0'
-apt-get update -y --force-yes
-apt-get install -y --force-yes openvswitch-switch openvswitch-vtep
+apt-get update -m
+apt-get install openvswitch-switch openvswitch-vtep
 
 echo '---> Installing mininet'
-apt-get install -y --force-yes mininet
+apt-get install mininet
 
 echo '---> Installing build pre-requisites'
-apt-get install -y --force-yes build-essential snmp libsnmp-dev snmpd libpcap-dev \
+apt-get install build-essential snmp libsnmp-dev snmpd libpcap-dev \
 autoconf make automake libtool libconfig-dev libssl-dev libffi-dev libssl-doc pkg-config
 
 git clone https://github.com/intracom-telecom-sdn/mtcbench.git
@@ -38,13 +37,13 @@ make
 cp cbench /usr/local/bin/
 
 echo '---> Installing exabgp'
-apt-get install -y --force-yes exabgp
+apt-get install exabgp
 
 echo '---> All Python package installation should happen in virtualenv'
-apt-get install -y --force-yes python-virtualenv python-pip
+apt-get install python-virtualenv python-pip
 
 # Install vlan for vlan based tests in VTN suites
-apt-get install -y --force-yes -qq vlan
+apt-get install vlan
 
 # Install netaddr package which is needed by some custom mininet topologies
-apt-get install -y --force-yes -qq python-netaddr
+apt-get install python-netaddr
index 6eafe83e64627b810c5d1cda95878d77cb0b12cf..13bfa219ea3fe5a895d794f7ed26b207ce020b29 100644 (file)
@@ -8,7 +8,14 @@ set -xeu -o pipefail
 # Install minimal python requirements to get virtualenv going
 # Additional python dependencies should be installed via JJB configuration
 # inside project jobs using a virtualenv setup.
-yum install -y python-{devel,setuptools,virtualenv} @development
+yum install -y @development \
+    python-devel \
+    python-setuptools \
+    python-virtualenv
+
+# TODO: Move docker-py and netaddr to virtualenv in the csit jobs.
+yum install -y python-docker-py \
+    python-netaddr
 
 # Install dependencies for robotframework and robotframework-sshlibrary
 # installed elsewhere