Trigger daily build of CICN packages 48/5948/8
authorMauro Sardara <msardara+fdio@cisco.com>
Thu, 30 Mar 2017 09:37:48 +0000 (11:37 +0200)
committerMauro Sardara <msardara+fdio@cisco.com>
Mon, 3 Apr 2017 12:05:35 +0000 (14:05 +0200)
Change-Id: If9653487e726a2cbe87d59958e1a3eff804c2f50
Signed-off-by: Mauro Sardara <msardara+fdio@cisco.com>
12 files changed:
jjb/cicn/build-package.sh
jjb/cicn/cicn.yaml
jjb/cicn/include-raw-cicn-http-server-build.sh
jjb/cicn/include-raw-cicn-libccnx-common-build.sh
jjb/cicn/include-raw-cicn-libccnx-portal-build.sh
jjb/cicn/include-raw-cicn-libccnx-transport-rta-build.sh
jjb/cicn/include-raw-cicn-libicnet-build.sh
jjb/cicn/include-raw-cicn-libparc-build.sh
jjb/cicn/include-raw-cicn-longbow-build.sh
jjb/cicn/include-raw-cicn-metis-build.sh
jjb/cicn/include-raw-cicn-viper-build.sh [new file with mode: 0644]
jjb/cicn/include-raw-cicn-vpp-plugin-build.sh [new file with mode: 0644]

index 289e9d8..48c1dd6 100644 (file)
@@ -3,28 +3,56 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-update_cmake_repo_trusty() {
-    sudo apt-get install -y --allow-unauthenticated software-properties-common
-    sudo add-apt-repository --yes ppa:george-edison55/cmake-3.x
-}
+apt_get=/usr/local/apt-get
+
+# Parameters:
+# $1 = Distribution [trusty / CentOS]
+#
+update_cmake_repo() {
+
+    DISTRIBUTION=$1
 
-update_cmake_repo_centos() {
-    sudo cat << EOF > cmake.repo
+    if [ "$DISTRIBUTION" == "trusty" ]; then
+        sudo ${apt_get} install -y --allow-unauthenticated software-properties-common
+        sudo add-apt-repository --yes ppa:george-edison55/cmake-3.x
+    elif [ "$DISTRIBUTION" == "CentOS" ]; then
+        sudo cat << EOF > cmake.repo
 [cmake-repo]
 name=Repo for cmake3
 baseurl=http://mirror.ghettoforge.org/distributions/gf/el/7/plus/x86_64/
 enabled=1
 gpgcheck=0
 EOF
-    sudo cat << EOF > jsoncpp.repo
+        sudo cat << EOF > jsoncpp.repo
 [jsoncp-repo]
 name=Repo for jsoncpp
 baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/
 enabled=1
 gpgcheck=0
 EOF
-    sudo mv cmake.repo /etc/yum.repos.d/cmake.repo
-    sudo mv jsoncpp.repo /etc/yum.repos.d/jsoncpp.repo
+        sudo mv cmake.repo /etc/yum.repos.d/cmake.repo
+        sudo mv jsoncpp.repo /etc/yum.repos.d/jsoncpp.repo
+    fi
+}
+
+# Parameters:
+# $1 = Distribution codename
+#
+update_qt_repo() {
+    DISTRIBUTION_CODENAME=$1
+
+    if [ "$DISTRIBUTION_CODENAME" != "trusty" ] && [ "$DISTRIBUTION_CODENAME" != "xenial" ]; then
+        echo "No valid distribution specified when calling 'update_qt_repo'. Exiting.."
+        exit -1
+    fi
+
+    sudo ${apt_get} install -y --allow-unauthenticated software-properties-common
+    sudo add-apt-repository --yes ppa:beineri/opt-qt571-$DISTRIBUTION_CODENAME
+
+    wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
+    sudo sh -c "echo 'deb http://archive.getdeb.net/ubuntu $DISTRIBUTION_CODENAME-getdeb apps' >> /etc/apt/sources.list.d/getdeb.list"
+
+    sudo ${apt_get} update
 }
 
 setup() {
@@ -41,14 +69,14 @@ setup() {
 
     if [ $DISTRIB_ID == "Ubuntu" ]; then
         if [ "$DISTRIB_CODENAME" == "trusty" ]; then
-            update_cmake_repo_trusty
+            update_cmake_repo $DISTRIB_CODENAME
         fi
 
         echo "deb ${REPO_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list
 
-        sudo apt-get update
+        sudo ${apt_get} update
     elif [ "$DISTRIB_ID" == "CentOS" ]; then
-        update_cmake_repo_centos
+        update_cmake_repo $DISTRIB_ID
         sudo cat << EOF > fdio-master.repo
 [fdio-master]
 name=fd.io master branch latest merge
@@ -77,6 +105,7 @@ build_package() {
         LIBICNET_DEPS="$LIBCCNX_PORTAL_DEPS libboost-system-dev"
         METIS_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
         HTTP_SERVER_DEPS="$LIBICNET_DEPS libicnet libboost-regex-dev libboost-filesystem-dev"
+        VPP_PLUGIN_DEPS="vpp-dev vpp-dpkg-dev"
 
         . /etc/lsb-release
         DEB=ON
@@ -122,7 +151,7 @@ build_package() {
     setup $DISTRIB_ID $DISTRIB_CODENAME
 
     if [ $DISTRIB_ID == "Ubuntu" ]; then
-        echo $BUILD_TOOLS ${!PACKAGE_DEPS} | xargs sudo apt-get install -y --allow-unauthenticated
+        echo $BUILD_TOOLS ${!PACKAGE_DEPS} | xargs sudo ${apt_get} install -y --allow-unauthenticated
     elif [ $DISTRIB_ID == "CentOS" ]; then
         echo $BUILD_TOOLS_GROUP | xargs sudo yum groupinstall -y --nogpgcheck || true
         echo $BUILD_TOOLS_SINGLE | xargs sudo yum install -y --nogpgcheck || true
index 99b5f43..78ec57f 100644 (file)
         - short
         - long
 
+- project:
+    name: cicn-vpp-plugin
+    jobs:
+        - 'cicn-vpp-plugin-merge-{stream}-{os}'
+    project: 'cicn'
+    os:
+        - ubuntu1404:
+            repo-os-part: 'ubuntu.trusty.main'
+        - ubuntu1604:
+            repo-os-part: 'ubuntu.xenial.main'
+    stream:
+        - master:
+            branch: 'cicn-plugin/master'
+            repo-stream-part: 'cicn.master'
+    type:
+        - short
+        - long
+
+- project:
+    name: cicn-viper
+    jobs:
+        - 'cicn-viper-merge-{stream}-{os}'
+    project: 'cicn'
+    os:
+        - ubuntu1404:
+            repo-os-part: 'ubuntu.trusty.main'
+        - ubuntu1604:
+            repo-os-part: 'ubuntu.xenial.main'
+    stream:
+        - master:
+            branch: 'viper/master'
+            repo-stream-part: 'cicn.master'
+    type:
+        - short
+        - long
+
 - job-template:
     name: 'cicn-longbow-merge-{stream}-{os}'
 
         - gerrit-trigger-patch-merged:
             name: '{project}'
             branch: '{branch}'
+        - timed: '@daily'
 
     builders:
         - maven-target:
             fingerprint: false
             only-if-success: true
             default-excludes: false
+        - fdio-infra-shiplogs:
+            maven-version: 'mvn33-new'
+
+- job-template:
+    name: 'cicn-vpp-plugin-merge-{stream}-{os}'
+
+    project-type: freestyle
+    node: '{os}-basebuild-4c-4g'
+
+    logrotate:
+        daysToKeep: '{build-days-to-keep}'
+        numToKeep: '{build-num-to-keep}'
+        artifactDaysToKeep: '{build-artifact-days-to-keep}'
+        artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - os-parameter:
+            os: '{os}'
+        - maven-project-parameter:
+            maven: 'mvn33-new'
+        - maven-exec:
+            maven-version: 'mvn33-new'
+        - repo-name-parameter:
+            repo-name: '{repo-stream-part}.{repo-os-part}'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: 'jenkins-gerrit-credentials'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - fdio-infra-wrappers:
+            build-timeout: '{build-timeout}'
+
+    triggers:
+        - gerrit-trigger-patch-merged:
+            name: '{project}'
+            branch: '{branch}'
+        - timed: '@daily'
+
+    builders:
+        - maven-target:
+            maven-version: 'mvn33-new'
+            goals: '--version'
+            settings: 'cicn-settings'
+            settings-type: cfp
+            global-settings: 'global-settings'
+            global-settings-type: cfp
+        - shell:
+            !include-raw-escape:
+                - build-package.sh
+                - include-raw-cicn-http-server-build.sh
+        - provide-maven-settings:
+            settings-file: 'cicn-vpp-plugin-settings'
+            global-settings-file: 'global-settings'
+        - shell:
+            !include-raw-escape:
+                - ../scripts/maven_push_functions.sh
+                - include-raw-cicn-maven-push.sh
+    publishers:
+        - archive:
+            artifacts: 'build/*.rpm,build/*.deb'
+            allow-empty: 'true'
+            fingerprint: false
+            only-if-success: true
+            default-excludes: false
+        - fdio-infra-shiplogs:
+            maven-version: 'mvn33-new'
+
+- job-template:
+    name: 'cicn-viper-merge-{stream}-{os}'
+
+    project-type: freestyle
+    node: '{os}-basebuild-4c-4g'
+
+    logrotate:
+        daysToKeep: '{build-days-to-keep}'
+        numToKeep: '{build-num-to-keep}'
+        artifactDaysToKeep: '{build-artifact-days-to-keep}'
+        artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - os-parameter:
+            os: '{os}'
+        - maven-project-parameter:
+            maven: 'mvn33-new'
+        - maven-exec:
+            maven-version: 'mvn33-new'
+        - repo-name-parameter:
+            repo-name: '{repo-stream-part}.{repo-os-part}'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: 'jenkins-gerrit-credentials'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - fdio-infra-wrappers:
+            build-timeout: '{build-timeout}'
+
+    triggers:
+        - gerrit-trigger-patch-merged:
+            name: '{project}'
+            branch: '{branch}'
+        - reverse:
+            jobs: 'cicn-libicnet-merge-{stream}-{os}'
+            result: 'failure'
+
+    builders:
+        - maven-target:
+            maven-version: 'mvn33-new'
+            goals: '--version'
+            settings: 'cicn-settings'
+            settings-type: cfp
+            global-settings: 'global-settings'
+            global-settings-type: cfp
+        - shell:
+            !include-raw-escape:
+                - build-package.sh
+                - include-raw-cicn-viper-build.sh
+        - provide-maven-settings:
+            settings-file: 'cicn-viper-settings'
+            global-settings-file: 'global-settings'
+        - shell:
+            !include-raw-escape:
+                - ../scripts/maven_push_functions.sh
+                - include-raw-cicn-maven-push.sh
+    publishers:
+        - archive:
+            artifacts: 'build/*.rpm,build/*.deb,libdash/build/*.rpm,libdash/build/*.deb'
+            allow-empty: 'true'
+            fingerprint: false
+            only-if-success: true
+            default-excludes: false
         - fdio-infra-shiplogs:
             maven-version: 'mvn33-new'
\ No newline at end of file
index 872b43d..873889f 100644 (file)
@@ -3,8 +3,6 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="HTTP_SERVER"
 PACKAGE_DEPS="HTTP_SERVER_DEPS"
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
index 02dcee7..195b5fc 100644 (file)
@@ -3,9 +3,7 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="LIBCCNX_COMMON"
 PACKAGE_DEPS="LIBCCNX_COMMON_DEPS"
 cd libccnx-common
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
index ad84030..6bd210a 100644 (file)
@@ -3,9 +3,7 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="LIBCCNX_PORTAL"
 PACKAGE_DEPS="LIBCCNX_PORTAL_DEPS"
 cd libccnx-portal
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
index 7786eba..eaa9be9 100644 (file)
@@ -3,9 +3,7 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="LIBCCNX_TRANSPORT_RTA"
 PACKAGE_DEPS="LIBCCNX_TRANSPORT_RTA_DEPS"
 cd libccnx-transport-rta
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
index c707a6c..3b752e7 100644 (file)
@@ -3,8 +3,6 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="LIBICNET"
 PACKAGE_DEPS="LIBICNET_DEPS"
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
index cfbc065..e77a3bc 100644 (file)
@@ -3,9 +3,7 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="LIBPARC"
 PACKAGE_DEPS="LIBPARC_DEPS"
 cd libparc
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
index c2b9e8d..b44f306 100644 (file)
@@ -3,9 +3,7 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="LONGBOW"
 PACKAGE_DEPS="LONGBOW_DEPS"
 cd longbow
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
index 77d3754..a8bd67a 100644 (file)
@@ -3,9 +3,7 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-source ./build-package.sh
-
 PACKAGE_NAME="METIS"
 PACKAGE_DEPS="METIS_DEPS"
 cd metis
-build_package $PACKAGE_NAME $PACKAGE_DEPS
\ No newline at end of file
+build_package $PACKAGE_NAME $PACKAGE_DEPS
diff --git a/jjb/cicn/include-raw-cicn-viper-build.sh b/jjb/cicn/include-raw-cicn-viper-build.sh
new file mode 100644 (file)
index 0000000..53eb708
--- /dev/null
@@ -0,0 +1,96 @@
+#!/bin/bash
+# basic build script example
+set -euo pipefail
+IFS=$'\n\t'
+
+apt_get=/usr/local/apt-get
+
+PACKAGE_NAME="VIPER"
+VIPER_DEPS_UBUNTU="zlib1g-dev git-core build-essential libxml2-dev libcurl4-openssl-dev \
+                   qt57base qt57svg qt57charts-no-lgpl qt57multimedia libqtav-dev libicnet \
+                   libavcodec-dev libavformat-dev libswscale-dev  libavresample-dev libqml-module-qtav \
+                   qt57quickcontrols qt57quickcontrols2 libxml2-dev"
+
+BUILD_TOOLS="build-essential cmake"
+
+ARCHITECTURE=`uname -m`
+
+# Figure out what system we are running on
+if [ -f /etc/lsb-release ];then
+
+    . /etc/lsb-release
+    DEB=ON
+    RPM=OFF
+
+    if [ "$ARCHITECTURE" == "x86_64" ]; then
+        ARCHITECTURE="amd64"
+    fi
+
+elif [ -f /etc/redhat-release ];then
+
+    sudo yum install -y redhat-lsb
+    DISTRIB_ID=`lsb_release -si`
+    DISTRIB_RELEASE=`lsb_release -sr`
+    DISTRIB_CODENAME=`lsb_release -sc`
+    DISTRIB_DESCRIPTION=`lsb_release -sd`
+
+    DEB=OFF
+    RPM=ON
+else
+    echo "ERROR: System configuration not recognized. Build failed"
+    exit -1
+fi
+
+echo ARCHITECTURE: $ARCHITECTURE
+echo DISTRIB_ID: $DISTRIB_ID
+echo DISTRIB_RELEASE: $DISTRIB_RELEASE
+echo DISTRIB_CODENAME: $DISTRIB_CODENAME
+echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION
+
+setup $DISTRIB_ID $DISTRIB_CODENAME
+
+# Install deps
+
+if [ $DISTRIB_ID == "Ubuntu" ]; then
+    update_qt_repo $DISTRIB_CODENAME
+    echo $BUILD_TOOLS $VIPER_DEPS_UBUNTU | xargs sudo ${apt_get} install -y --allow-unauthenticated
+else
+    echo "This package is currently supported only for ubuntu. Exiting.."
+    exit -1
+fi
+
+# Create links
+
+sudo ln -sf /usr/include/x86_64-linux-gnu/qt5/QtAV                                /opt/qt57/include/QtAV
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/av.prf                 /opt/qt57/mkspecs/features/av.prf
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/avwidgets.prf          /opt/qt57/mkspecs/features/avwidgets.prf
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_avwidgets.pri    /opt/qt57/mkspecs/modules/qt_lib_avwidgets.pri
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_av.pri           /opt/qt57/mkspecs/modules/qt_lib_av.pri
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.prl                                 /opt/qt57/lib/libQtAV.prl
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.prl                          /opt/qt57/lib/libQtAVWidgets.prl
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.so                           /opt/qt57/lib/libQt5AVWidgets.so
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AV.so                                 /opt/qt57/lib/libQt5AV.so
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.so                                  /opt/qt57/lib/libQtAV.so
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AVWidgets.so                          /opt/qt57/lib/libQtAVWidgets.so
+
+# Compile libdash
+
+
+build() {
+    mkdir -p build
+    cd build
+    rm -rf *
+    cmake -DCMAKE_INSTALL_PREFIX=/usr -DRPM_PACKAGE=$RPM -DDEB_PACKAGE=$DEB -DDISTRIBUTION=$DISTRIB_CODENAME -DARCHITECTURE=$ARCHITECTURE ..
+    make
+}
+
+# Build libdash
+pushd libdash
+build
+make package
+sudo make install
+popd
+
+# Build viper
+build
+make package
\ No newline at end of file
diff --git a/jjb/cicn/include-raw-cicn-vpp-plugin-build.sh b/jjb/cicn/include-raw-cicn-vpp-plugin-build.sh
new file mode 100644 (file)
index 0000000..c338c2c
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+# basic build script example
+set -euo pipefail
+IFS=$'\n\t'
+
+PACKAGE_NAME="VPP_PLUGIN"
+PACKAGE_DEPS="VPP_PLUGIN_DEPS"
+
+cd cicn-plugin
+
+build_package $PACKAGE_NAME $PACKAGE_DEPS