From 71db1850d9b61a4f2d946f71e95276518b34977a Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Thu, 30 Mar 2017 11:37:48 +0200 Subject: Trigger daily build of CICN packages Change-Id: If9653487e726a2cbe87d59958e1a3eff804c2f50 Signed-off-by: Mauro Sardara --- jjb/cicn/build-package.sh | 55 +++++-- jjb/cicn/cicn.yaml | 181 +++++++++++++++++++++ jjb/cicn/include-raw-cicn-http-server-build.sh | 4 +- jjb/cicn/include-raw-cicn-libccnx-common-build.sh | 4 +- jjb/cicn/include-raw-cicn-libccnx-portal-build.sh | 4 +- ...include-raw-cicn-libccnx-transport-rta-build.sh | 4 +- jjb/cicn/include-raw-cicn-libicnet-build.sh | 4 +- jjb/cicn/include-raw-cicn-libparc-build.sh | 4 +- jjb/cicn/include-raw-cicn-longbow-build.sh | 4 +- jjb/cicn/include-raw-cicn-metis-build.sh | 4 +- jjb/cicn/include-raw-cicn-viper-build.sh | 96 +++++++++++ jjb/cicn/include-raw-cicn-vpp-plugin-build.sh | 11 ++ 12 files changed, 338 insertions(+), 37 deletions(-) create mode 100644 jjb/cicn/include-raw-cicn-viper-build.sh create mode 100644 jjb/cicn/include-raw-cicn-vpp-plugin-build.sh diff --git a/jjb/cicn/build-package.sh b/jjb/cicn/build-package.sh index 289e9d85a..48c1dd658 100644 --- a/jjb/cicn/build-package.sh +++ b/jjb/cicn/build-package.sh @@ -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 diff --git a/jjb/cicn/cicn.yaml b/jjb/cicn/cicn.yaml index 99b5f4371..78ec57f9c 100644 --- a/jjb/cicn/cicn.yaml +++ b/jjb/cicn/cicn.yaml @@ -158,6 +158,42 @@ - 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}' @@ -198,6 +234,7 @@ - gerrit-trigger-patch-merged: name: '{project}' branch: '{branch}' + - timed: '@daily' builders: - maven-target: @@ -736,5 +773,149 @@ 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 diff --git a/jjb/cicn/include-raw-cicn-http-server-build.sh b/jjb/cicn/include-raw-cicn-http-server-build.sh index 872b43d4f..873889fda 100644 --- a/jjb/cicn/include-raw-cicn-http-server-build.sh +++ b/jjb/cicn/include-raw-cicn-http-server-build.sh @@ -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 diff --git a/jjb/cicn/include-raw-cicn-libccnx-common-build.sh b/jjb/cicn/include-raw-cicn-libccnx-common-build.sh index 02dcee7e0..195b5fce2 100644 --- a/jjb/cicn/include-raw-cicn-libccnx-common-build.sh +++ b/jjb/cicn/include-raw-cicn-libccnx-common-build.sh @@ -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 diff --git a/jjb/cicn/include-raw-cicn-libccnx-portal-build.sh b/jjb/cicn/include-raw-cicn-libccnx-portal-build.sh index ad840308e..6bd210a57 100644 --- a/jjb/cicn/include-raw-cicn-libccnx-portal-build.sh +++ b/jjb/cicn/include-raw-cicn-libccnx-portal-build.sh @@ -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 diff --git a/jjb/cicn/include-raw-cicn-libccnx-transport-rta-build.sh b/jjb/cicn/include-raw-cicn-libccnx-transport-rta-build.sh index 7786eba62..eaa9be9c5 100644 --- a/jjb/cicn/include-raw-cicn-libccnx-transport-rta-build.sh +++ b/jjb/cicn/include-raw-cicn-libccnx-transport-rta-build.sh @@ -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 diff --git a/jjb/cicn/include-raw-cicn-libicnet-build.sh b/jjb/cicn/include-raw-cicn-libicnet-build.sh index c707a6ca1..3b752e7a2 100644 --- a/jjb/cicn/include-raw-cicn-libicnet-build.sh +++ b/jjb/cicn/include-raw-cicn-libicnet-build.sh @@ -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 diff --git a/jjb/cicn/include-raw-cicn-libparc-build.sh b/jjb/cicn/include-raw-cicn-libparc-build.sh index cfbc065c9..e77a3bcf4 100644 --- a/jjb/cicn/include-raw-cicn-libparc-build.sh +++ b/jjb/cicn/include-raw-cicn-libparc-build.sh @@ -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 diff --git a/jjb/cicn/include-raw-cicn-longbow-build.sh b/jjb/cicn/include-raw-cicn-longbow-build.sh index c2b9e8d69..b44f30606 100644 --- a/jjb/cicn/include-raw-cicn-longbow-build.sh +++ b/jjb/cicn/include-raw-cicn-longbow-build.sh @@ -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 diff --git a/jjb/cicn/include-raw-cicn-metis-build.sh b/jjb/cicn/include-raw-cicn-metis-build.sh index 77d375491..a8bd67a5f 100644 --- a/jjb/cicn/include-raw-cicn-metis-build.sh +++ b/jjb/cicn/include-raw-cicn-metis-build.sh @@ -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 index 000000000..53eb70877 --- /dev/null +++ b/jjb/cicn/include-raw-cicn-viper-build.sh @@ -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 index 000000000..c338c2cf6 --- /dev/null +++ b/jjb/cicn/include-raw-cicn-vpp-plugin-build.sh @@ -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 -- cgit 1.2.3-korg