From 0ac580cf0f61f3264d641b48736c7672b2751e2f Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Fri, 31 Jul 2020 11:50:21 +0900 Subject: [PATCH] Fallback message if unable to get git revision (#142) Fix http://build.ros.org/job/Nbin_uF64__ypspur__ubuntu_focal_amd64__binary/5/ Uses `-C ` when calling `git rev-parse` Set failure message when unable to get a git revision Co-authored-by: Shane Loretz --- .dockerignore | 1 - .test.Dockerfile | 9 ++++-- .travis.yml | 5 ++++ cmake/modules/GetGitRevision.cmake | 44 ++++++++++++++++++------------ 4 files changed, 38 insertions(+), 21 deletions(-) delete mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 6b8710a..0000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/.test.Dockerfile b/.test.Dockerfile index 623d79b..afb359c 100644 --- a/.test.Dockerfile +++ b/.test.Dockerfile @@ -4,7 +4,11 @@ FROM ubuntu:${UBUNTU_VERSION} ENV DEBIAN_FRONTEND=noninteractive RUN apt-get -qq update \ - && apt-get install -y --no-install-recommends build-essential cmake libgtest-dev + && apt-get install -y --no-install-recommends \ + build-essential \ + cmake \ + git \ + libgtest-dev # don't clean apt-cache to reuse later ENV CTEST_OUTPUT_ON_FAILURE=1 @@ -29,6 +33,7 @@ RUN apt-get install -y --no-install-recommends libreadline-dev RUN mkdir -p /yp-spur/build-readline WORKDIR /yp-spur/build-readline -RUN cmake .. && make -j && make test && make install +RUN cmake .. && make -j && make test && make install && ldconfig # check that ypspur-interpreter is built with readline RUN ldd ypspur-interpreter | grep libreadline.so +RUN ypspur-coordinator --version diff --git a/.travis.yml b/.travis.yml index 13c8c84..568368b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,9 +19,14 @@ env: - USE_DOCKER=true UBUNTU_VERSION=xenial - USE_DOCKER=true UBUNTU_VERSION=bionic - USE_DOCKER=true UBUNTU_VERSION=focal + - USE_DOCKER=true UBUNTU_VERSION=focal WITHOUT_GIT=true - USE_MINGW=true before_install: + - | + if [ x${WITHOUT_GIT} == xtrue ]; then + mv .git .git2 + fi - | if [ x${USE_MINGW} == xtrue ]; then sudo apt-get update -y -qq diff --git a/cmake/modules/GetGitRevision.cmake b/cmake/modules/GetGitRevision.cmake index c4771e9..652e5f7 100644 --- a/cmake/modules/GetGitRevision.cmake +++ b/cmake/modules/GetGitRevision.cmake @@ -2,25 +2,33 @@ function(get_git_revision) - find_program(GIT - NAMES git - ) + find_program(GIT + NAMES git + ) - if(NOT GIT) - set(GIT_REVISION_SHORT "Snapshot" PARENT_SCOPE) - set(GIT_REVISION "Failed to get git revision." PARENT_SCOPE) - endif(NOT GIT) + if(NOT GIT) + set(GIT_REVISION_SHORT "Snapshot" PARENT_SCOPE) + set(GIT_REVISION "Failed to get git revision." PARENT_SCOPE) + else() + exec_program(${GIT} -C "${CMAKE_CURRENT_SOURCE_DIR}" + ARGS "rev-parse HEAD" + OUTPUT_VARIABLE REVISION + RETURN_VALUE rev_parse_ret + ) + exec_program(${GIT} -C "${CMAKE_CURRENT_SOURCE_DIR}" + ARGS "rev-parse --short HEAD" + OUTPUT_VARIABLE REVISION_SHORT + RETURN_VALUE rev_parse_short_ret + ) - exec_program(${GIT} ${CMAKE_CURRENT_SOURCE_DIR} - ARGS "rev-parse HEAD" - OUTPUT_VARIABLE REVISION - ) - exec_program(${GIT} ${CMAKE_CURRENT_SOURCE_DIR} - ARGS "rev-parse --short HEAD" - OUTPUT_VARIABLE REVISION_SHORT - ) - - set(GIT_REVISION_SHORT ${REVISION_SHORT} PARENT_SCOPE) - set(GIT_REVISION ${REVISION} PARENT_SCOPE) + message(WARNING "${rev_parse_ret} ${rev_parse_short_ret}") + if((NOT ${rev_parse_ret} EQUAL "0") OR (NOT ${rev_parse_short_ret} EQUAL "0")) + set(GIT_REVISION_SHORT "Snapshot" PARENT_SCOPE) + set(GIT_REVISION "Failed to get git revision." PARENT_SCOPE) + else() + set(GIT_REVISION_SHORT ${REVISION_SHORT} PARENT_SCOPE) + set(GIT_REVISION ${REVISION} PARENT_SCOPE) + endif() + endif() endfunction(get_git_revision)