From 31f14276ceca4e4a62ca76238d635ab30af09b48 Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:08:20 +0900 Subject: [PATCH 1/9] Update CI settings --- .travis.scripts/install_deps.sh | 15 +++++++++++++++ .travis.scripts/load_cache.sh | 10 +--------- .travis.scripts/save_cache.sh | 16 ++++++---------- .travis.scripts/setup_docker.sh | 12 ------------ .travis.scripts/test.sh | 4 +--- .travis.yml | 13 +++++++------ Dockerfile | 19 ------------------- Dockerfile.indigo | 30 ++++++++++++++++-------------- Dockerfile.kinetic | 20 ++++++++++++++++++++ 9 files changed, 66 insertions(+), 73 deletions(-) create mode 100755 .travis.scripts/install_deps.sh delete mode 100755 .travis.scripts/setup_docker.sh delete mode 100644 Dockerfile create mode 100644 Dockerfile.kinetic diff --git a/.travis.scripts/install_deps.sh b/.travis.scripts/install_deps.sh new file mode 100755 index 0000000..3b5e422 --- /dev/null +++ b/.travis.scripts/install_deps.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -o errexit +set -o verbose + +source /opt/ros/${ROS_DISTRO}/setup.bash +source /catkin_ws/devel/setup.bash + +cd /catkin_ws + +apt-get -qq update +apt-get install libxml2-utils +rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y +apt-get clean +rm -rf /var/lib/apt/lists/* diff --git a/.travis.scripts/load_cache.sh b/.travis.scripts/load_cache.sh index f2bc21c..4024e5b 100755 --- a/.travis.scripts/load_cache.sh +++ b/.travis.scripts/load_cache.sh @@ -3,12 +3,4 @@ set -o errexit set -o verbose -sudo apt-get -qq update -sudo apt-get install -y liblz4-tool - -echo ${DOCKER_CACHE_FILE} - -if [ -f ${DOCKER_CACHE_FILE} ]; then - lz4 -dc ${DOCKER_CACHE_FILE} | docker load || true -fi - +docker pull ${DOCKER_CACHE_REGISTRY}:${ROS_DISTRO_TARGET} || true diff --git a/.travis.scripts/save_cache.sh b/.travis.scripts/save_cache.sh index d413ceb..34a71e4 100755 --- a/.travis.scripts/save_cache.sh +++ b/.travis.scripts/save_cache.sh @@ -3,13 +3,9 @@ set -o errexit set -o verbose -if [[ ${TRAVIS_BRANCH} == "master" ]] && [[ ${TRAVIS_PULL_REQUEST} == "false" ]]; -then - mkdir -p $(dirname ${DOCKER_CACHE_FILE}) - docker save $(echo ${DOCKER_CACHE_TARGETS} | xargs -n1 docker history -q | grep -v '' | sort | uniq) | lz4 -zcf - > ${DOCKER_CACHE_FILE} - - echo "------------" - ls -lh $(dirname ${DOCKER_CACHE_FILE}) - echo "------------" -fi - +#if [[ ${TRAVIS_BRANCH} == "master" ]] && [[ ${TRAVIS_PULL_REQUEST} == "false" ]]; +#then + docker tag ${DOCKER_CACHE_TARGET}:${ROS_DISTRO_TARGET} ${DOCKER_CACHE_REGISTRY}:${ROS_DISTRO_TARGET} + docker login -u ${DOCKER_HUB_USER} -p ${DOCKER_HUB_TOKEN} + docker push ${DOCKER_CACHE_REGISTRY}:${ROS_DISTRO_TARGET} +#fi diff --git a/.travis.scripts/setup_docker.sh b/.travis.scripts/setup_docker.sh deleted file mode 100755 index c04ca6c..0000000 --- a/.travis.scripts/setup_docker.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o verbose - -echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s overlay2"' \ - | sudo tee /etc/default/docker > /dev/null -sudo service docker restart - -sleep 5 -docker info - diff --git a/.travis.scripts/test.sh b/.travis.scripts/test.sh index e9ca528..c4eeb84 100755 --- a/.travis.scripts/test.sh +++ b/.travis.scripts/test.sh @@ -5,8 +5,7 @@ set -o verbose scriptdir=`dirname "${0}"` -wget -q -P /tmp https://raw.githubusercontent.com/at-wat/gh-pr-comment/master/gh-pr-comment.sh -source /tmp/gh-pr-comment.sh +pip install gh-pr-comment source /opt/ros/${ROS_DISTRO}/setup.bash @@ -62,4 +61,3 @@ gh-pr-comment "PASSED on ${ROS_DISTRO}" "All tests passed$result_text" cd .. rm -rf /catkin_ws || true - diff --git a/.travis.yml b/.travis.yml index 9925a67..1a9367a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,20 +7,21 @@ cache: env: global: - PACKAGE_NAME=ypspur_ros - - DOCKER_CACHE_FILE=/home/travis/docker/cache.tar.lz4 - - DOCKER_CACHE_TARGETS="${PACKAGE_NAME}:latest ${PACKAGE_NAME}:indigo" + - DOCKER_CACHE_TARGET=ypspurros + - DOCKER_CACHE_REGISTRY=atwat/ros-ypspurros-cache + matrix: + - ROS_DISTRO_TARGET=kinetic + - ROS_DISTRO_TARGET=indigo branches: only: - master before_install: - - .travis.scripts/setup_docker.sh - .travis.scripts/load_cache.sh install: true script: - - docker build -t ${PACKAGE_NAME}:latest --pull=true ${TRAVIS_BUILD_DIR} --build-arg TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} --build-arg TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG} --build-arg TRAVIS_BOT_GITHUB_TOKEN=${TRAVIS_BOT_GITHUB_TOKEN} --build-arg PACKAGE_NAME=${PACKAGE_NAME} - - docker build -t ${PACKAGE_NAME}:indigo -f Dockerfile.indigo --pull=true ${TRAVIS_BUILD_DIR} --build-arg TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} --build-arg TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG} --build-arg TRAVIS_BOT_GITHUB_TOKEN=${TRAVIS_BOT_GITHUB_TOKEN} --build-arg PACKAGE_NAME=${PACKAGE_NAME} + - docker build --cache-from ${DOCKER_CACHE_REGISTRY}:${ROS_DISTRO_TARGET} -t ${DOCKER_CACHE_TARGET}:${ROS_DISTRO_TARGET} -f Dockerfile.${ROS_DISTRO_TARGET} --pull=true ${TRAVIS_BUILD_DIR} + - docker run --rm -it -e TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} -e TRAVIS_PULL_REQUEST_SLUG=${TRAVIS_PULL_REQUEST_SLUG} -e TRAVIS_BOT_GITHUB_TOKEN=${TRAVIS_BOT_GITHUB_TOKEN} ${DOCKER_CACHE_TARGET}:${ROS_DISTRO_TARGET} /catkin_ws/src/${PACKAGE_NAME}/.travis.scripts/test.sh - .travis.scripts/save_cache.sh - diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 8d59fae..0000000 --- a/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM ros:kinetic - -RUN apt-get -qq update && \ - apt-get install -y --no-install-recommends sudo wget curl && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -ARG TRAVIS_PULL_REQUEST=false -ARG TRAVIS_REPO_SLUG="" -ARG TRAVIS_BOT_GITHUB_TOKEN="" -ARG PACKAGE_NAME="" - -ENV TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST -ENV TRAVIS_REPO_SLUG=$TRAVIS_REPO_SLUG -ENV TRAVIS_BOT_GITHUB_TOKEN=$TRAVIS_BOT_GITHUB_TOKEN -ENV PACKAGE_NAME=$PACKAGE_NAME - -COPY ./ /catkin_ws/src/${PACKAGE_NAME} -RUN /catkin_ws/src/${PACKAGE_NAME}/.travis.scripts/test.sh diff --git a/Dockerfile.indigo b/Dockerfile.indigo index a506d82..ed64654 100644 --- a/Dockerfile.indigo +++ b/Dockerfile.indigo @@ -1,19 +1,21 @@ FROM ros:indigo -RUN apt-get -qq update && \ - apt-get install -y --no-install-recommends sudo wget curl build-essential && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* +RUN apt-get -qq update \ + && apt-get install -y --no-install-recommends \ + build-essential \ + curl \ + sudo \ + wget \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* -ARG TRAVIS_PULL_REQUEST=false -ARG TRAVIS_REPO_SLUG="" -ARG TRAVIS_BOT_GITHUB_TOKEN="" -ARG PACKAGE_NAME="" +RUN rosdep update \ + && mkdir -p /catkin_ws/src \ + && cd /catkin_ws/src \ + && bash -c ". /opt/ros/${ROS_DISTRO}/setup.bash && catkin_init_workspace && cd .. && catkin_make" -ENV TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST -ENV TRAVIS_REPO_SLUG=$TRAVIS_REPO_SLUG -ENV TRAVIS_BOT_GITHUB_TOKEN=$TRAVIS_BOT_GITHUB_TOKEN -ENV PACKAGE_NAME=$PACKAGE_NAME +COPY ./.travis.scripts/install_deps.sh /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh +COPY ./package.xml /catkin_ws/src/ypspur_ros/package.xml +RUN /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh -COPY ./ /catkin_ws/src/${PACKAGE_NAME} -RUN /catkin_ws/src/${PACKAGE_NAME}/.travis.scripts/test.sh +COPY ./ /catkin_ws/src/ypspur_ros diff --git a/Dockerfile.kinetic b/Dockerfile.kinetic new file mode 100644 index 0000000..05d29b3 --- /dev/null +++ b/Dockerfile.kinetic @@ -0,0 +1,20 @@ +FROM ros:kinetic + +RUN apt-get -qq update \ + && apt-get install -y --no-install-recommends \ + curl \ + sudo \ + wget \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN rosdep update \ + && mkdir -p /catkin_ws/src \ + && cd /catkin_ws/src \ + && bash -c ". /opt/ros/${ROS_DISTRO}/setup.bash && catkin_init_workspace && cd .. && catkin_make" + +COPY ./.travis.scripts/install_deps.sh /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh +COPY ./package.xml /catkin_ws/src/ypspur_ros/package.xml +RUN /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh + +COPY ./ /catkin_ws/src/ypspur_ros From 77571edddd2f9d7abf9843dcfdf1409836e42669 Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:10:15 +0900 Subject: [PATCH 2/9] Remove unused apt package --- .travis.scripts/install_deps.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.scripts/install_deps.sh b/.travis.scripts/install_deps.sh index 3b5e422..538614c 100755 --- a/.travis.scripts/install_deps.sh +++ b/.travis.scripts/install_deps.sh @@ -9,7 +9,6 @@ source /catkin_ws/devel/setup.bash cd /catkin_ws apt-get -qq update -apt-get install libxml2-utils rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y apt-get clean rm -rf /var/lib/apt/lists/* From ee2d552c343fcd0507f6ebc11df0e7e2090cfb8c Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:19:40 +0900 Subject: [PATCH 3/9] Skip dep to ypspur --- .travis.scripts/rosdepkeys.skip | 1 + 1 file changed, 1 insertion(+) create mode 100644 .travis.scripts/rosdepkeys.skip diff --git a/.travis.scripts/rosdepkeys.skip b/.travis.scripts/rosdepkeys.skip new file mode 100644 index 0000000..a910f1a --- /dev/null +++ b/.travis.scripts/rosdepkeys.skip @@ -0,0 +1 @@ +ypspur From f0caf24948568c8672b2a2923b68310eb6e66bce Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:27:15 +0900 Subject: [PATCH 4/9] Fix skipkeys --- .travis.scripts/install_deps.sh | 10 +++++++++- .travis.scripts/rosdepkeys.skip | 2 +- Dockerfile.indigo | 2 +- Dockerfile.kinetic | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.travis.scripts/install_deps.sh b/.travis.scripts/install_deps.sh index 538614c..e2f0716 100755 --- a/.travis.scripts/install_deps.sh +++ b/.travis.scripts/install_deps.sh @@ -8,7 +8,15 @@ source /catkin_ws/devel/setup.bash cd /catkin_ws +SKIP_KEYS= +if [ -f $scriptdir/rosdepkeys.skip ]; +then + SKIP_KEYS="--skip-keys=\"$(cat $scriptdir/rosdepkeys.skip | tr '\n' ' ' | sed 's/\s*$//g')\"" +fi + +echo $SKIP_KEYS + apt-get -qq update -rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y +rosdep install --from-paths src --ignore-src $SKIP_KEYS --rosdistro=${ROS_DISTRO} -y apt-get clean rm -rf /var/lib/apt/lists/* diff --git a/.travis.scripts/rosdepkeys.skip b/.travis.scripts/rosdepkeys.skip index a910f1a..18019f1 100644 --- a/.travis.scripts/rosdepkeys.skip +++ b/.travis.scripts/rosdepkeys.skip @@ -1 +1 @@ -ypspur +ypspur ros-kinetic-ypspur ros-indigo-ypspur diff --git a/Dockerfile.indigo b/Dockerfile.indigo index ed64654..1d73608 100644 --- a/Dockerfile.indigo +++ b/Dockerfile.indigo @@ -14,7 +14,7 @@ RUN rosdep update \ && cd /catkin_ws/src \ && bash -c ". /opt/ros/${ROS_DISTRO}/setup.bash && catkin_init_workspace && cd .. && catkin_make" -COPY ./.travis.scripts/install_deps.sh /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh +COPY ./.travis.scripts /catkin_ws/src/ypspur_ros/.travis.scripts COPY ./package.xml /catkin_ws/src/ypspur_ros/package.xml RUN /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh diff --git a/Dockerfile.kinetic b/Dockerfile.kinetic index 05d29b3..73cf0d2 100644 --- a/Dockerfile.kinetic +++ b/Dockerfile.kinetic @@ -13,7 +13,7 @@ RUN rosdep update \ && cd /catkin_ws/src \ && bash -c ". /opt/ros/${ROS_DISTRO}/setup.bash && catkin_init_workspace && cd .. && catkin_make" -COPY ./.travis.scripts/install_deps.sh /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh +COPY ./.travis.scripts /catkin_ws/src/ypspur_ros/.travis.scripts COPY ./package.xml /catkin_ws/src/ypspur_ros/package.xml RUN /catkin_ws/src/ypspur_ros/.travis.scripts/install_deps.sh From 3c45b2055e25cdfc1a61df272381a31963c8346a Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:42:27 +0900 Subject: [PATCH 5/9] Fix skipkeys --- .travis.scripts/install_deps.sh | 2 ++ .travis.scripts/rosdepkeys.skip | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.scripts/install_deps.sh b/.travis.scripts/install_deps.sh index e2f0716..be088d9 100755 --- a/.travis.scripts/install_deps.sh +++ b/.travis.scripts/install_deps.sh @@ -3,6 +3,8 @@ set -o errexit set -o verbose +scriptdir=`dirname "${0}"` + source /opt/ros/${ROS_DISTRO}/setup.bash source /catkin_ws/devel/setup.bash diff --git a/.travis.scripts/rosdepkeys.skip b/.travis.scripts/rosdepkeys.skip index 18019f1..f1f1b3f 100644 --- a/.travis.scripts/rosdepkeys.skip +++ b/.travis.scripts/rosdepkeys.skip @@ -1 +1,3 @@ -ypspur ros-kinetic-ypspur ros-indigo-ypspur +ypspur +ros-kinetic-ypspur +ros-indigo-ypspur From 492b41d28c211c7d9fa8b10b926e21e68f6a41bf Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:47:08 +0900 Subject: [PATCH 6/9] Fix rosdep install --- .travis.scripts/install_deps.sh | 2 +- .travis.scripts/test.sh | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.scripts/install_deps.sh b/.travis.scripts/install_deps.sh index be088d9..ae0cd24 100755 --- a/.travis.scripts/install_deps.sh +++ b/.travis.scripts/install_deps.sh @@ -19,6 +19,6 @@ fi echo $SKIP_KEYS apt-get -qq update -rosdep install --from-paths src --ignore-src $SKIP_KEYS --rosdistro=${ROS_DISTRO} -y +eval rosdep install --from-paths src --ignore-src $SKIP_KEYS --rosdistro=${ROS_DISTRO} -y apt-get clean rm -rf /var/lib/apt/lists/* diff --git a/.travis.scripts/test.sh b/.travis.scripts/test.sh index c4eeb84..228f43c 100755 --- a/.travis.scripts/test.sh +++ b/.travis.scripts/test.sh @@ -24,10 +24,10 @@ fi echo $SKIP_KEYS -apt-get -qq update && \ -apt-get install libxml2-utils && \ -rosdep install --from-paths src --ignore-src $SKIP_KEYS --rosdistro=${ROS_DISTRO} -y && \ -apt-get clean && \ +apt-get -qq update +apt-get install libxml2-utils +eval rosdep install --from-paths src --ignore-src $SKIP_KEYS --rosdistro=${ROS_DISTRO} -y +apt-get clean rm -rf /var/lib/apt/lists/* CMI_OPTION="--install-space /opt/ros/${ROS_DISTRO} --install" From a5965cd77eae3f513b4cc2e66f0fea28ba716b8f Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:51:30 +0900 Subject: [PATCH 7/9] Install pip --- Dockerfile.indigo | 1 + Dockerfile.kinetic | 1 + 2 files changed, 2 insertions(+) diff --git a/Dockerfile.indigo b/Dockerfile.indigo index 1d73608..a2ccb17 100644 --- a/Dockerfile.indigo +++ b/Dockerfile.indigo @@ -4,6 +4,7 @@ RUN apt-get -qq update \ && apt-get install -y --no-install-recommends \ build-essential \ curl \ + python-pip \ sudo \ wget \ && apt-get clean \ diff --git a/Dockerfile.kinetic b/Dockerfile.kinetic index 73cf0d2..308fdaa 100644 --- a/Dockerfile.kinetic +++ b/Dockerfile.kinetic @@ -3,6 +3,7 @@ FROM ros:kinetic RUN apt-get -qq update \ && apt-get install -y --no-install-recommends \ curl \ + python-pip \ sudo \ wget \ && apt-get clean \ From 5ba33438581c1a5f562c089680845774ca091c3c Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Tue, 17 Apr 2018 23:57:52 +0900 Subject: [PATCH 8/9] Fix env var --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1a9367a..52695b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,5 +23,5 @@ install: true script: - docker build --cache-from ${DOCKER_CACHE_REGISTRY}:${ROS_DISTRO_TARGET} -t ${DOCKER_CACHE_TARGET}:${ROS_DISTRO_TARGET} -f Dockerfile.${ROS_DISTRO_TARGET} --pull=true ${TRAVIS_BUILD_DIR} - - docker run --rm -it -e TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} -e TRAVIS_PULL_REQUEST_SLUG=${TRAVIS_PULL_REQUEST_SLUG} -e TRAVIS_BOT_GITHUB_TOKEN=${TRAVIS_BOT_GITHUB_TOKEN} ${DOCKER_CACHE_TARGET}:${ROS_DISTRO_TARGET} /catkin_ws/src/${PACKAGE_NAME}/.travis.scripts/test.sh + - docker run --rm -it -e TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} -e TRAVIS_PULL_REQUEST_SLUG=${TRAVIS_PULL_REQUEST_SLUG} -e TRAVIS_BOT_GITHUB_TOKEN=${TRAVIS_BOT_GITHUB_TOKEN} -e PACKAGE_NAME=${PACKAGE_NAME} ${DOCKER_CACHE_TARGET}:${ROS_DISTRO_TARGET} /catkin_ws/src/${PACKAGE_NAME}/.travis.scripts/test.sh - .travis.scripts/save_cache.sh From 017e9e3efbd48021e2c8b021861146e8945aa6de Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Wed, 18 Apr 2018 00:03:41 +0900 Subject: [PATCH 9/9] Cache only on master --- .travis.scripts/save_cache.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.scripts/save_cache.sh b/.travis.scripts/save_cache.sh index 34a71e4..1e46fd4 100755 --- a/.travis.scripts/save_cache.sh +++ b/.travis.scripts/save_cache.sh @@ -3,9 +3,9 @@ set -o errexit set -o verbose -#if [[ ${TRAVIS_BRANCH} == "master" ]] && [[ ${TRAVIS_PULL_REQUEST} == "false" ]]; -#then +if [[ ${TRAVIS_BRANCH} == "master" ]] && [[ ${TRAVIS_PULL_REQUEST} == "false" ]]; +then docker tag ${DOCKER_CACHE_TARGET}:${ROS_DISTRO_TARGET} ${DOCKER_CACHE_REGISTRY}:${ROS_DISTRO_TARGET} docker login -u ${DOCKER_HUB_USER} -p ${DOCKER_HUB_TOKEN} docker push ${DOCKER_CACHE_REGISTRY}:${ROS_DISTRO_TARGET} -#fi +fi