Skip to content
This repository was archived by the owner on Jul 8, 2022. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 27 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,27 +32,48 @@ addons:
secure: ${SONAR_TOKEN}

before_install:
- cat /proc/cpuinfo
- lscpu
- bash -c 'echo "CPUs nproc: $(nproc)"'
- docker pull tangocs/mysql:9.2.2
- docker pull tangocs/tango-cs:latest
- git clone https://github.com/JoakimSoderberg/coveralls-cmake.git
- git clone -b v4.2.2 https://${CI_USER_TOKEN}@github.com/zeromq/cppzmq.git cppzmq
- git clone -b tango-9-lts https://${CI_USER_TOKEN}@github.com/tango-controls/tango-idl.git idl
- git clone -b Release_1.14 https://github.com/tango-controls/tango_admin.git
- wget https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip && unzip build-wrapper-linux-x86.zip

before_script:
- docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=root -d tangocs/mysql:9.2.2 --sql-mode=""
- CONTAINER=$(docker run --name tango_cs -e TANGO_HOST=127.0.0.1:10000 -e MYSQL_HOST=mysql_db:3306 -e MYSQL_USER=tango -e MYSQL_PASSWORD=tango -e MYSQL_DATABASE=tango --link mysql_db:mysql_db -d tangocs/tango-cs:latest)
- IPADDR=$(docker inspect -f '{{ .NetworkSettings.IPAddress }}' $CONTAINER)
- TANGO_HOST=${IPADDR}:10000
- docker build --build-arg APP_UID=$(id -u) --build-arg APP_GID=$(id -g) -t cpp_tango .travis/${OS_TYPE}
- docker run --name cpp_tango -e TANGO_HOST=${TANGO_HOST} -e BINTRAY_USER_NAME=tango-ci -e BINTRAY_API_KEY=${CI_BINTRAY_API_KEY} -e COVERALLS_REPO_TOKEN=${COVERALLS_REPO_TOKEN} --link tango_cs:tango_cs -v `pwd`:/home/tango/src -v `pwd`/idl:/home/tango/idl -v `pwd`/cppzmq:/home/tango/cppzmq -v `pwd`/coveralls-cmake:/home/tango/coveralls-cmake -v `pwd`/build-wrapper-linux-x86:/home/tango/build-wrapper-linux-x86 -dit cpp_tango
- >
docker build
--build-arg APP_UID=$(id -u)
--build-arg APP_GID=$(id -g)
-t cpp_tango
.travis/${OS_TYPE}
- >
docker run
--name cpp_tango
-e TANGO_HOST=${TANGO_HOST}
-e BINTRAY_USER_NAME=tango-ci
-e BINTRAY_API_KEY=${CI_BINTRAY_API_KEY}
-e COVERALLS_REPO_TOKEN=${COVERALLS_REPO_TOKEN}
-v `pwd`:/home/tango/src
-v `pwd`/idl:/home/tango/idl
-v `pwd`/cppzmq:/home/tango/cppzmq
-v `pwd`/tango_admin:/home/tango/tango_admin
-v `pwd`/coveralls-cmake:/home/tango/coveralls-cmake
-v `pwd`/build-wrapper-linux-x86:/home/tango/build-wrapper-linux-x86
-v /var/run/docker.sock:/var/run/docker.sock
-dit
cpp_tango
- .travis/install_tango_idl.sh
- .travis/install_cppzmq.sh
#work around gcov ignored by sonar
- sudo mkdir /home/tango && sudo mkdir /home/tango/src && sudo mount --bind `pwd` /home/tango/src

script:
- .travis/${OS_TYPE}/run.sh
- .travis/install_tango_admin.sh
- .travis/test.sh COVERALLS=OFF

after_success:
Expand All @@ -68,7 +89,3 @@ deploy:
after-script:
- docker stop cpp_tango
- docker rm cpp_tango
- docker stop tango_cs
- docker rm tango_cs
- docker stop mysql_db
- docker rm mysql_db
16 changes: 16 additions & 0 deletions .travis/debian7/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,26 @@ RUN /tmp/cmake-install.sh --skip-license --exclude-subdir

RUN apt-get install -y omniidl libomniorb4-dev libcos4-dev libomnithread3-dev libzmq3-dev

RUN apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
python-software-properties \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
&& add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian wheezy stable" \
&& sed -i -e '/^deb-src.*docker.*/d' /etc/apt/sources.list \
&& apt-get update \
&& apt-get install -y docker-ce

RUN groupadd -g "$APP_GID" tango

RUN useradd -u "$APP_UID" -g "$APP_GID" -ms /bin/bash tango

RUN usermod -a -G docker tango

ENV PKG_CONFIG_PATH=/home/tango/lib/pkgconfig

USER tango
Expand Down
14 changes: 14 additions & 0 deletions .travis/debian8/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,24 @@ RUN apt-get install -y curl lsb-release

RUN apt-get install -y omniidl libomniorb4-dev libcos4-dev libomnithread3-dev libzmq3-dev

RUN apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
&& add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian jessie stable" \
&& apt-get update \
&& apt-get install -y docker-ce

RUN groupadd -g "$APP_GID" tango

RUN useradd -u "$APP_UID" -g "$APP_GID" -ms /bin/bash tango

RUN usermod -a -G docker tango

ENV PKG_CONFIG_PATH=/home/tango/lib/pkgconfig

USER tango
Expand Down
5 changes: 3 additions & 2 deletions .travis/debian8/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ docker exec cpp_tango mkdir -p /home/tango/src/build
echo "Run cmake cppTango in $CMAKE_BUILD_TYPE mode"
echo "Using COVERALLS=$COVERALLS"

docker exec cpp_tango cmake -H/home/tango/src -B/home/tango/src/build -DCOVERALLS=$COVERALLS -DCOVERALLS_MODULE_PATH=/home/tango/coveralls-cmake/cmake -DCMAKE_VERBOSE_MAKEFILE=true -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE
docker exec cpp_tango cmake -H/home/tango/src -B/home/tango/src/build -DCOVERALLS=$COVERALLS -DCOVERALLS_MODULE_PATH=/home/tango/coveralls-cmake/cmake -DCMAKE_VERBOSE_MAKEFILE=true -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE \
-DCMAKE_CTEST_COMMAND="$([[ "$COVERALLS" == "ON" ]] && echo '/home/tango/src/.travis/run_ctest.sh' || echo 'ctest')"
if [ $? -ne "0" ]
then
exit -1
fi

docker exec cpp_tango /home/tango/build-wrapper-linux-x86/build-wrapper-linux-x86-64 --out-dir /home/tango/src/bw-output make -C /home/tango/src/build -j 2
docker exec cpp_tango /home/tango/build-wrapper-linux-x86/build-wrapper-linux-x86-64 --out-dir /home/tango/src/bw-output make -C /home/tango/src/build -j 2
14 changes: 14 additions & 0 deletions .travis/debian9/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,24 @@ RUN apt-get install -y curl lsb-release

RUN apt-get install -y omniidl libomniorb4-dev libcos4-dev libomnithread3-dev libzmq3-dev

RUN apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
&& add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" \
&& apt-get update \
&& apt-get install -y docker-ce

RUN groupadd -g "$APP_GID" tango

RUN useradd -u "$APP_UID" -g "$APP_GID" -ms /bin/bash tango

RUN usermod -a -G docker tango

ENV PKG_CONFIG_PATH=/home/tango/lib/pkgconfig

USER tango
Expand Down
26 changes: 26 additions & 0 deletions .travis/install_tango_admin.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env bash

echo "Install tango"
docker exec --user root cpp_tango make -C /home/tango/src/build install
if [ $? -ne 0 ]
then
exit 1
fi

admin_dir="/home/tango/tango_admin"

echo "Build tango_admin"
docker exec cpp_tango mkdir -p "${admin_dir}/build"
docker exec cpp_tango cmake -H"${admin_dir}" -B"${admin_dir}/build"
docker exec cpp_tango make -C "${admin_dir}/build"
if [ $? -ne 0 ]
then
exit 1
fi

echo "Install tango_admin"
docker exec --user root cpp_tango cp "${admin_dir}/build/tango_admin" /usr/local/bin
if [ $? -ne "0" ]
then
exit 1
fi
21 changes: 21 additions & 0 deletions .travis/run_ctest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env bash

build_dir="/home/tango/src/build"

if ! docker exec \
-w "${build_dir}" \
cpp_tango \
ctest \
-output-on-failure \
-j8
then
if ! docker exec \
-w "${build_dir}" \
cpp_tango ctest \
--output-on-failure \
--rerun-failed \
--repeat-until-fail 2
then
exit 1
fi
fi
41 changes: 17 additions & 24 deletions .travis/test.sh
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
#!/usr/bin/env bash

TEST_COMMAND="exec ctest --output-on-failure"
if [ $COVERALLS = "ON" ]
then
TEST_COMMAND="exec make coveralls"
fi
build_dir="/home/tango/src/build"

echo "PreTest"
docker exec cpp_tango /bin/sh -c 'cd /home/tango/src/build/cpp_test_suite/environment; exec ./pre_test.sh'
if [ $? -ne "0" ]
then
exit -1
fi
echo "Test"
echo "TEST_COMMAND=$TEST_COMMAND"
docker exec cpp_tango /bin/sh -c "cd /home/tango/src/build; $TEST_COMMAND"
if [ $? -ne "0" ]
then
exit -1
if [[ "$COVERALLS" == "ON" ]]; then
if ! docker exec \
-w "${build_dir}" \
cpp_tango \
make coveralls
then
exit 1
fi
else
if ! docker exec \
-w "${build_dir}" \
cpp_tango \
../.travis/run_ctest.sh
then
exit 1
fi
fi

echo "PostTest"
docker exec cpp_tango /bin/sh -c 'cd /home/tango/src/build/cpp_test_suite/environment; exec ./post_test.sh'
if [ $? -ne "0" ]
then
exit -1
fi
Loading