Commit ddac4758 authored by Emmanuel Promayon's avatar Emmanuel Promayon
Browse files

New upstream version 4.1.2

parent a791f2c9
Loading
Loading
Loading
Loading

.gitlab/before.sh

0 → 100755
+77 −0
Original line number Diff line number Diff line
#!/bin/bash


if [ "$OS" == "win7" ]; then
    # there is no docker on windows
    CONTAINER_ID=0
else
    CONTAINER_ID=$(cat /proc/self/cgroup | head -n 1 | cut -d '/' -f3)
fi

# default stage is coverage
if [[ "$CAMITK_CI_STAGE" == "" ]]; then 
    CAMITK_CI_STAGE="$STAGE_COVERAGE";
fi

# default mode is Continuous for develop, Experimental for any other branches
if [[ "$CAMITK_CI_MODE" == "" ]]; then 
    if [[ "$CI_COMMIT_REF_NAME" == "develop" ]]; then 
        CAMITK_CI_MODE="Continuous"; 
    else 
        CAMITK_CI_MODE="Experimental"; 
    fi
fi

# Check git commit message
MESSAGE_CHECK=$(git log -n 1 | grep --quiet --extended-regexp '/check' && echo "true" || echo "false")
MESSAGE_CONFIGURE=$(git log -n 1 | grep --quiet --extended-regexp '/configure' && echo "true" || echo "false")
MESSAGE_BUILD=$(git log -n 1 | grep --quiet --extended-regexp '/build' && echo "true" || echo "false")
MESSAGE_TEST=$(git log -n 1 | grep --quiet --extended-regexp '/test' && echo "true" || echo "false")
MESSAGE_COVERAGE=$(git log -n 1 | grep --quiet --extended-regexp '/coverage' && echo "true" || echo "false")

# store variables in a local file
TRIGGER_FILE=/tmp/trigger-stage.txt
rm -f $TRIGGER_FILE
echo "Triggered stages:" > $TRIGGER_FILE

# check MESSAGE variables and CAMITK_CI_STAGE value
if [[ "$MESSAGE_CHECK" == "true" || "$CAMITK_CI_STAGE" -ge $STAGE_CHECK ]]; then 
    echo "TRIGGER_STAGE_CHECK" >> $TRIGGER_FILE
fi

if [[ "$MESSAGE_CONFIGURE" == "true" || "$CAMITK_CI_STAGE" -ge $STAGE_CONFIGURE ]]; then 
    echo "TRIGGER_STAGE_CONFIGURE" >> $TRIGGER_FILE
fi

if [[ "$MESSAGE_BUILD" == "true" || "$CAMITK_CI_STAGE" -ge $STAGE_BUILD ]]; then
    echo "TRIGGER_STAGE_BUILD" >> $TRIGGER_FILE
fi

if [[ "$MESSAGE_TEST" == "true" || "$CAMITK_CI_STAGE" -ge $STAGE_TEST ]]; then
    echo "TRIGGER_STAGE_TEST" >> $TRIGGER_FILE
fi

if [[ "$MESSAGE_COVERAGE" == "true" || "$CAMITK_CI_STAGE" -ge $STAGE_COVERAGE ]]; then
    echo "TRIGGER_STAGE_COVERAGE" >> $TRIGGER_FILE
fi


# output all information to report file
echo "Docker container id....... $CONTAINER_ID" > /tmp/report.txt
echo "Job....................... $CI_JOB_NAME" >> /tmp/report.txt
echo "Build Directory........... $PROJECT_BUILD_DIR" >> /tmp/report.txt
echo "Log Directory............. $PROJECT_LOG_DIR" >> /tmp/report.txt
echo "Branch.................... $CI_COMMIT_REF_NAME" >> /tmp/report.txt
echo "CAMITK_CI_MODE............ $CAMITK_CI_MODE" >> /tmp/report.txt
echo "CAMITK_CI_STAGE........... $CAMITK_CI_STAGE" >> /tmp/report.txt

# cleanup log directory
if [ -d ${PROJECT_LOG_DIR} ] ; then 
    rm -rf ${PROJECT_LOG_DIR};
fi
mkdir -p ${PROJECT_LOG_DIR}

# show report
cat /tmp/report.txt
cp -f $TRIGGER_FILE ${PROJECT_LOG_DIR}
cat ${PROJECT_LOG_DIR}/trigger-stage.txt

.gitlab/build.sh

0 → 100755
+37 −0
Original line number Diff line number Diff line
#!/bin/bash
# Uncomment next line to print each bash command before it is executed
#set -x

echo "Job $CI_JOB_NAME"

if ! grep -q TRIGGER_STAGE_BUILD "${PROJECT_LOG_DIR}/trigger-stage.txt"; then
    echo "Job skipped as /build flag not in commit message and CAMITK_CI_STAGE < $STAGE_CONFIGURE"; 
    exit 1;
fi

echo "===== build ====="

if [ "$OS" == "win7" ]; then
    # there is no xvfb on windows
    ctest   -VV \
            -DCTEST_SITE="$CDASH_SITE" \
            -DCI_MODE="$CAMITK_CI_MODE" \
            -DCI_ID="P $CI_PIPELINE_ID - J $CI_BUILD_ID" \
            -DCI_BRANCH="$CI_COMMIT_REF_NAME" \
            -DCI_BUILD_SETTINGS="$COMPILER_CONFIG" \
            -DCTEST_SOURCE_DIRECTORY="$PROJECT_SOURCE_DIR" \
            -DCTEST_BINARY_DIRECTORY="$PROJECT_BUILD_DIR" \
            -S $PROJECT_SOURCE_DIR/sdk/cmake/ctest/ci-build.cmake > >(tee ${PROJECT_LOG_DIR}/build.log | grep --line-buffered -e "- Building" -e "Compiler errors" -e "Compiler warnings") 2>&1
else
    # on Linux, xvfb is required to run the tests
    xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" \
    ctest   -VV \
            -DCTEST_SITE="$CDASH_SITE" \
            -DCI_MODE="$CAMITK_CI_MODE" \
            -DCI_ID="P $CI_PIPELINE_ID - J $CI_BUILD_ID" \
            -DCI_BRANCH="$CI_COMMIT_REF_NAME" \
            -DCI_BUILD_SETTINGS="$COMPILER_CONFIG" \
            -DCTEST_SOURCE_DIRECTORY="$PROJECT_SOURCE_DIR" \
            -DCTEST_BINARY_DIRECTORY="$PROJECT_BUILD_DIR" \
            -S $PROJECT_SOURCE_DIR/sdk/cmake/ctest/ci-build.cmake > >(tee ${PROJECT_LOG_DIR}/build.log | grep --line-buffered -e "\[100%] Built target") 2>&1
fi

.gitlab/check.sh

0 → 100755
+11 −0
Original line number Diff line number Diff line
#!/bin/bash

echo "Job $CI_JOB_NAME"

if [ "$TRIGGER_STAGE_CHECK" == "false" ]; then 
    echo "Job skipped as /check flag not in commit message and CAMITK_CI_STAGE < $STAGE_CHECK"; 
    exit 1; 
fi

pwd
printenv

.gitlab/configure.sh

0 → 100755
+45 −0
Original line number Diff line number Diff line
#!/bin/bash
# Uncomment next line to print each bash command before it is executed
#set -x

echo "Job $CI_JOB_NAME"

if ! grep -q TRIGGER_STAGE_CONFIGURE "${PROJECT_LOG_DIR}/trigger-stage.txt"; then
    echo "Job skipped as /configure flag not in commit message and CAMITK_CI_STAGE < $STAGE_CONFIGURE"; 
    exit 1;
fi

echo "===== configure ====="

# Clean build directory
# note: cannot build outside the source tree otherwise artifacts cannot be collected
if [ "$CAMITK_CI_MODE" == "Nightly" ]; then 
    rm -rf ${PROJECT_BUILD_DIR}; 
    echo "Nightly Build, start from scratch"; 
fi

if [ "$OS" == "win7" ]; then
    # there is no xvfb on windows
    ctest   -VV \
            -DCTEST_SITE="$CDASH_SITE" \
            -DCI_MODE="$CAMITK_CI_MODE" \
            -DCI_ID="P $CI_PIPELINE_ID - J $CI_BUILD_ID" \
            -DCI_BRANCH="$CI_COMMIT_REF_NAME" \
            -DCI_BUILD_SETTINGS="$COMPILER_CONFIG" \
            -DCTEST_SOURCE_DIRECTORY="$PROJECT_SOURCE_DIR" \
            -DCTEST_BINARY_DIRECTORY="$PROJECT_BUILD_DIR" \
            -S $PROJECT_SOURCE_DIR/sdk/cmake/ctest/ci-configure.cmake > >(tee ${PROJECT_LOG_DIR}/configure.log) 2>&1
else
    # on Linux, xvfb is required to run the tests
    xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" \
        ctest   -VV \
            -DCTEST_SITE="$CDASH_SITE" \
            -DCI_MODE="$CAMITK_CI_MODE" \
            -DCI_ID="P $CI_PIPELINE_ID - J $CI_BUILD_ID" \
            -DCI_BRANCH="$CI_COMMIT_REF_NAME" \
            -DCI_BUILD_SETTINGS="$COMPILER_CONFIG" \
            -DCTEST_SOURCE_DIRECTORY="$PROJECT_SOURCE_DIR" \
            -DCTEST_BINARY_DIRECTORY="$PROJECT_BUILD_DIR" \
            -S $PROJECT_SOURCE_DIR/sdk/cmake/ctest/ci-configure.cmake > >(tee ${PROJECT_LOG_DIR}/configure.log) 2>&1

fi

.gitlab/coverage.sh

0 → 100755
+30 −0
Original line number Diff line number Diff line
#!/bin/bash

echo "Job $CI_JOB_NAME"

if ! grep -q TRIGGER_STAGE_COVERAGE "${PROJECT_LOG_DIR}/trigger-stage.txt"; then
    echo "Job skipped as /coverage flag not in commit message and CAMITK_CI_STAGE < $STAGE_CONFIGURE"; 
    exit 1;
fi

echo "===== coverage ====="

# coverage for some reason seems to always exit with non-zero code. Force exit 0
xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" \
    ctest   -VV \
            -DCTEST_SITE="$CDASH_SITE" \
            -DCI_MODE="$CAMITK_CI_MODE" \
            -DCI_ID="P $CI_PIPELINE_ID - J $CI_BUILD_ID" \
            -DCI_BRANCH="$CI_COMMIT_REF_NAME" \
            -DCI_BUILD_SETTINGS="$COMPILER_CONFIG" \
            -DCTEST_SOURCE_DIRECTORY="$PROJECT_SOURCE_DIR" \
            -DCTEST_BINARY_DIRECTORY="$PROJECT_BUILD_DIR" \
            -S $PROJECT_SOURCE_DIR/sdk/cmake/ctest/ci-coverage.cmake > >(tee ${PROJECT_LOG_DIR}/coverage.log | grep --line-buffered -e "   produced s") 2>&1 && echo "[OK] $?" || echo "[FAIL] $?"

# move file to a the log directory (so that it can be uploaded as an artifact)
echo "Copy html coverage report to ${PROJECT_LOG_DIR}"
cp -pR ${PROJECT_BUILD_DIR}/camitk-ce-test-coverage ${PROJECT_LOG_DIR}

echo "Coverage report"
grep "  lines" ${PROJECT_LOG_DIR}/coverage.log
grep "  functions" ${PROJECT_LOG_DIR}/coverage.log
Loading