Skip to content
Commits on Source (15)
#!/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
#!/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
#!/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
#!/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
#!/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
#
# To check this script syntax: https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/ci/lint
#
# ------------------------
# Triggering the pipeline
# ------------------------
#
# There are two ways to run the pipeline:
# - call the REST web API using "curl"
# - add special flags to the commit messages
#
# When called from the API, the following variables may be set:
# CAMITK_CI_MODE Continuous integration mode: can be Nightly, Continuous or Experimental (default is Experimental)
# CAMITK_CI_STAGE Stage to perform, see stage enum values below (default is 0, no job will be performed).
# If CAMITK_CI_STAGE is passed as a variable, all the jobs that correspond to the given CAMITK_CI_STAGE
# value (i.e., all the stage that have a lower or equal values) are performed.
#
# If a special flag (/check, /configure, /build, /test or /coverage) is present in the commit message
# then the corresponding job is performed, otherwise it is skipped unless
# the CAMITK_CI_STAGE is given. In this case all the jobs that correspond to the given CAMITK_CI_STAGE
# value (i.e., all the stage that have a lower or equal values) are performed.
#
# --------------------------------------------------------
# .gitlab-ci.yml specification and implementation details
# --------------------------------------------------------
#
# This script declares different jobs for
# - different stages (check, configure, ...)
# - different OS (debian stable, ubuntu LTS, ...)
#
# For all the stages from configure to coverage, everything is submitted to the cdash dashboard
# thanks to the sdk/cmake/ctest/ci-*.cmake macros
# The jobs will appear on the dashboard as
# - Site "[Gitlab Runner] name of the OS"
# - Build name "compiler-arch-buildtype string SPACE name of the branch SPACE git abbreviated hash"
#
# ${PROJECT_BUILD_DIR} should be mounted on the container.
#
# As the job log might exceed the limit fixed by gitlab (500k lines), all log are recorded in a specific log/stage-name.log file
# When the log should not exceed the limit (as in the configure stage for instance), the log is also redirected to stdout
# so that the job results can be checked as it is running.
# In any case, the job is available as an artifact and can be downloaded for 7 days.
# For the coverage stage, the artifact also contains the lcov generated web site.
#
# In order to reuse yaml code, three coding convention are used for YAML anchors:
# ".define_os" is used to define specific OS configuration
# ".define_script" is used to define specific script parts for a job and can be reused for different OS
# ".define_config" is used to define other specific parts for a job and can be reused for different job and different OS
#
# Nightly build clear the build/ directory automatically.
#
variables:
# project name
PROJECT_NAME: "$CI_PROJECT_NAME"
# path to CamiTK code source directory
PROJECT_SOURCE_DIR: "$CI_PROJECT_DIR"
# Stage enum to pass to the web API call
STAGE_NONE: 0 # no job to run
STAGE_CHECK: 10 # "/check" in commit message
STAGE_CONFIGURE: 20 # "/configure" in commit message
STAGE_BUILD: 30 # "/build" in commit message
STAGE_TEST: 40 # "/test" in commit message
STAGE_COVERAGE: 50 # "/coverage" in commit message
STAGE_STATIC_ANALYSIS: 60
STAGE_PACKAGE: 70
STAGE_DEPLOY: 80
# When using dind, it's wise to use the overlayfs driver for
# improved performance. See https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
DOCKER_DRIVER: overlay2
stages:
- check
- configure
- build
- test
- coverage
# -------------------------------------
# trigger config
# -------------------------------------
.define_config: &triggered_by_api_call
only:
- triggers
.define_config: &triggered_by_schedules
only:
- schedules
.define_config: &triggered_by_api_call_and_schedules
only:
- triggers
- schedules
# -------------------------------------
# before script and tag
# -------------------------------------
.define_config: &default_job_config
before_script:
# use Linux before script
- .gitlab/before.sh
# uncomment next line if you want ci scripts to only be triggered by specific api call
# <<: *triggered_by_api_call_and_schedules
# -------------------------------------
# scripts
# -------------------------------------
.define_script: &check_pipeline_script
stage: check
script:
# use Linux check script
- .gitlab/check.sh
.define_script: &configure_script
stage: configure
script:
# use Linux configure script
- .gitlab/configure.sh
.define_script: &build_script
stage: build
script:
# use Linux build script
- .gitlab/build.sh
.define_script: &test_script
stage: test
script:
# use Linux test script
- .gitlab/test.sh
.define_script: &coverage_script
stage: coverage
script:
# use Linux coverage script
- .gitlab/coverage.sh
# -------------------------------------
# artifacts config
# -------------------------------------
.define_config: &configure_artifacts
artifacts:
paths:
- ${PROJECT_LOG_DIR}/configure.log
when: always
expire_in: 7 days # 5 mins # see https://docs.gitlab.com/ce/ci/yaml/README.html#artifacts-expire_in
.define_config: &build_artifacts
artifacts:
paths:
- ${PROJECT_LOG_DIR}/build.log
when: always
expire_in: 7 days
.define_config: &test_artifacts
artifacts:
paths:
- ${PROJECT_LOG_DIR}/test.log
- ${PROJECT_LOG_DIR}/ci-test.log
when: always
expire_in: 7 days
.define_config: &coverage_artifacts
artifacts:
paths:
- ${PROJECT_LOG_DIR}/coverage.log
- ${PROJECT_LOG_DIR}/camitk-ce-test-coverage/
when: always
expire_in: 7 days
# -------------------------------------
# debian stable jobs
# -------------------------------------
.define_os: &debian_stable_image
# The default image "debian:stable" from docker.io does not have all the build toolchain and dependencies
# → use custom build local image: camitk/debian:stable-camitk
image: camitk/debian:stable-camitk
variables:
# OS Id
OS: "debian-stable"
# the name of the current machine
CDASH_SITE: "[Gitlab Runner] Debian stable"
# compiler-arch-buildtype string
COMPILER_CONFIG: "GCC-64bits-Debug"
# path to the intended build directory
PROJECT_BUILD_DIR: "/opt/build/${OS}-${CI_COMMIT_REF_SLUG}"
# path to the intended log directory (cannot be an absolute path)
PROJECT_LOG_DIR: "${OS}-${CI_COMMIT_REF_SLUG}/log"
tags:
- debian:stable
debian_stable_check:
<<: *debian_stable_image
<<: *default_job_config
<<: *check_pipeline_script
debian_stable_configure:
<<: *debian_stable_image
<<: *default_job_config
<<: *configure_artifacts
<<: *configure_script
debian_stable_build:
<<: *debian_stable_image
<<: *default_job_config
<<: *build_artifacts
<<: *build_script
debian_stable_test:
<<: *debian_stable_image
<<: *default_job_config
<<: *test_artifacts
<<: *test_script
debian_stable_coverage:
<<: *debian_stable_image
<<: *default_job_config
<<: *coverage_artifacts
<<: *coverage_script
coverage: '/ lines......: \d+\.\d+/'
# -------------------------------------
# ubuntu LTS jobs
# -------------------------------------
.define_os: &ubuntu_lts_image
# The default image "ubuntu:latest" from docker.io does not have all the build toolchain and dependencies
# → use custom build local image: camitk/ubuntu:lts-camitk
image: camitk/ubuntu:lts-camitk
variables:
# OS Id
OS: "ubuntu-lts"
# the name of the current machine
CDASH_SITE: "[Gitlab Runner] Ubuntu LTS"
# compiler-arch-buildtype string
COMPILER_CONFIG: "GCC-64bits-Debug"
# path to the intended build directory
PROJECT_BUILD_DIR: "/opt/build/${OS}-${CI_COMMIT_REF_SLUG}"
# path to the intended log directory (cannot be an absolute path)
PROJECT_LOG_DIR: "${OS}-${CI_COMMIT_REF_SLUG}/log"
# debug for now
#CI_DEBUG_TRACE: "true"
tags:
- ubuntu:lts
ubuntu_lts_check:
<<: *ubuntu_lts_image
<<: *default_job_config
<<: *check_pipeline_script
ubuntu_lts_configure:
<<: *ubuntu_lts_image
<<: *default_job_config
<<: *configure_artifacts
<<: *configure_script
ubuntu_lts_build:
<<: *ubuntu_lts_image
<<: *default_job_config
<<: *build_artifacts
<<: *build_script
ubuntu_lts_test:
<<: *ubuntu_lts_image
<<: *default_job_config
<<: *test_artifacts
<<: *test_script
ubuntu_lts_coverage:
<<: *ubuntu_lts_image
<<: *default_job_config
<<: *coverage_artifacts
<<: *coverage_script
# on Ubuntu:
coverage: '/ Percentage Coverage: \d+\.\d+/'
# -------------------------------------
# debian oldstable jobs
# -------------------------------------
.define_os: &debian_oldstable_image
# The default image "debian:oldstable" from docker.io does not have all the build toolchain and dependencies
# → use custom build local image: camitk/debian:oldstable-camitk
image: camitk/debian:oldstable-camitk
variables:
# OS Id
OS: "debian-oldstable"
# the name of the current machine
CDASH_SITE: "[Gitlab Runner] Debian old stable"
# compiler-arch-buildtype string
COMPILER_CONFIG: "GCC-64bits-Debug"
# path to the intended build directory
PROJECT_BUILD_DIR: "/opt/build/${OS}-${CI_COMMIT_REF_SLUG}"
# path to the intended log directory (cannot be an absolute path)
PROJECT_LOG_DIR: "${OS}-${CI_COMMIT_REF_SLUG}/log"
tags:
- debian:oldstable
debian_oldstable_check:
<<: *debian_oldstable_image
<<: *default_job_config
<<: *check_pipeline_script
debian_oldstable_configure:
<<: *debian_oldstable_image
<<: *default_job_config
<<: *configure_artifacts
<<: *configure_script
debian_oldstable_build:
<<: *debian_oldstable_image
<<: *default_job_config
<<: *build_artifacts
<<: *build_script
debian_oldstable_test:
<<: *debian_oldstable_image
<<: *default_job_config
<<: *test_artifacts
<<: *test_script
debian_oldstable_coverage:
<<: *debian_oldstable_image
<<: *default_job_config
<<: *coverage_artifacts
<<: *coverage_script
coverage: '/ lines......: \d+\.\d+/'
# -------------------------------------
# win7 jobs
# -------------------------------------
.define_os: &win7_config
# on windows the executor is just a shell (not a docker)
variables:
# OS Id
OS: "win7"
# the name of the current machine
CDASH_SITE: "[Gitlab Runner] Win7"
# compiler-arch-buildtype string (Ninja would be better instead of MSVC2015 to speed up compilation on VM)
COMPILER_CONFIG: "MSVC2015-64bits-Debug"
# path to the intended build directory
PROJECT_BUILD_DIR: "/c/dev/gitlab-runner/builds/${OS}-${CI_COMMIT_REF_SLUG}"
# path to the intended log directory (cannot be an absolute path)
PROJECT_LOG_DIR: "${OS}-${CI_COMMIT_REF_SLUG}/log"
tags:
- win7
win7_check:
<<: *win7_config
<<: *default_job_config
<<: *check_pipeline_script
win7_configure:
<<: *win7_config
<<: *default_job_config
<<: *configure_artifacts
<<: *configure_script
win7_build:
<<: *win7_config
<<: *default_job_config
<<: *build_artifacts
<<: *build_script
win7_test:
<<: *win7_config
<<: *default_job_config
<<: *test_artifacts
<<: *test_script
## About you
[Present yourself and your project you're working on with CamiTK]
## Overview
[Rewrite here a larger and more detailed restatement of your summary]
## Steps to Reproduce
[Write here the step - by - step process to reproduce the bug, including file to test (you can attach file on gitlab issue report system)]
## Actual VS Expected Result
[Write here the result of the step - by - step process and explain why it is not what you expected]
## Relevant logs and/or screenshots
[Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's very hard to read otherwise.]
## Interpretation & Possible fixes
[Write here your interpretation of this bug (If you can, link to the line of code that might be responsible for the problem)]
## CamiTK Version
[Copy/Paste the output of `camitk-config -b` CamiTK Version part ]
---
**please do not remove anything below this line**
/label ~Bug
## About you
[Present yourself and your project you're working on with CamiTK]
## Product
[Specify which part of framework is concerned]
## Overview
[Rewrite here a larger and more detailed restatement of your summary]
## Relevant logs and/or screenshots
[Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.]
[You can also attach a file (see link at the bottom corner)]
---
**please do not remove anything below this line**
/label ~"Feature Request"
| | |
|--|--|
| **As a** | [CamiTK developer/CEP developer/camitk-imp user...] |
| **I would like to** | [simple description of the technical feature] |
| **So that** | [simple description of what this feature brings to CamiTK] |
| **Epic/Topics** | [topic keywords or project epic] |
## Description / Overview
[enter your description or issue overview]
## Hints
[optional: enter a list of hints, urls or steps that can help solving this issue]
## Acceptance tests
[Please enter acceptance tests as TODOs. Acceptance test explains how to test that this issue is solved]
- [ ] [Test 1]
- [ ] [Test 2]
- [ ] [...]
## Track
One (or two) of:
/label ~"Track None"
/label ~"Track Code Maintainability"
/label ~"Track Continuous Integration"
/label ~"Track Debugging"
/label ~"Track Knowledge Management"
/label ~"Track Prototyping Experience"
/label ~"Track Technology Integration"
/label ~"Track User Support"
[or if known, add the corresponding track label]
## Misc
- Automatic subscription of issue creator:
/subscribe
**Do not forget to mark this issue as "confidential"** by checking the tick box below (if appropriate)
#!/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_TEST "${PROJECT_LOG_DIR}/trigger-stage.txt"; then
echo "Job skipped as /test flag not in commit message and CAMITK_CI_STAGE < $STAGE_CONFIGURE";
exit 1;
fi
echo "===== test ====="
if [[ "$osName" != "win7" ]]; then
echo "===== Configuring xvfb ====="
# Starts the server first (try to avoid unexpected and random "QXcbConnection: Could not connect to display :99")
# see also https://doc.qt.io/qt-5/embedded-linux.html#linuxfb
export DISPLAY=":98"
#-ac +extension GLX +render -noreset -v -fbdir $workingDir/ &> ${PROJECT_LOG_DIR}/test.log &
Xvfb $DISPLAY -screen 0 1600x1200x24 &> ${PROJECT_LOG_DIR}/test.log &
trap "kill $! || true" EXIT
sleep 10
export XAUTHORITY=/dev/null
fi
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" \
-DCI_PROJECT_LOG_DIRECTORY="$CI_PROJECT_DIR/$PROJECT_LOG_DIR" \
-DCTEST_SOURCE_DIRECTORY="$PROJECT_SOURCE_DIR" \
-DCTEST_BINARY_DIRECTORY="$PROJECT_BUILD_DIR" \
-S $PROJECT_SOURCE_DIR/sdk/cmake/ctest/ci-test.cmake > >(tee ${PROJECT_LOG_DIR}/test.log | grep --line-buffered -e "Test \#") 2>&1
# if [[ "$OS" != "win7" ]]; then
# # shutdown xvfb
# kill $xvfbPid
# fi
# as ctest return a strange 255 error, check the log
if grep --quiet "Fatal error" $CI_PROJECT_DIR/$PROJECT_LOG_DIR/ci-test.log; then
echo "Found fatal error in $CI_PROJECT_DIR/$PROJECT_LOG_DIR/ci-test.log"
exit 1
else
echo "OK"
fi
#--------------------------------------------
#
# CamiTK Open Source CEP Set
# CamiTK Community Edition CEP Set
#
#--------------------------------------------
cmake_minimum_required(VERSION 3.0)
project(camitkopensource)
project(camitkcommunityedition)
# Allow testing of the whole camitk-opensource project
# Allow testing of the whole camitk-communityedition project
include(CTest)
enable_testing()
# Specific to SDK: control the version (major, minor, default patch and )
set(CAMITK_PROJECT_NAME "CamiTK")
set(CAMITK_VERSION_MAJOR "4")
set(CAMITK_VERSION_MINOR "0")
set(CAMITK_VER_NICKNAME "red") # Red Amaranth American rose Auburn Burgundy Cardinal Carmine Carnelian Cerise Coquelicot
set(CAMITK_VERSION_PATCH "4") # patch version for packaging, change when appropriate
# The current version of CamiTK is defined in a separate file to avoid conflict/problem when merging
include(CamiTKVersion.cmake)
string(TOLOWER "${CAMITK_PROJECT_NAME}-${CAMITK_VERSION_MAJOR}.${CAMITK_VERSION_MINOR}" CAMITK_SHORT_VERSION_STRING)
# Specific to SDK: this is the SDK build
set(CAMITK_SDK_BUILD TRUE)
# Specific to the Community Edition: this is the Community Edition build
set(CAMITK_COMMUNITY_EDITION_BUILD TRUE)
#-- This is a CEP set...
set(CAMITK_EXTENSION_PROJECT_SET TRUE CACHE BOOL "Is this a CamiTK Extension Project Set?")
set(CAMITK_EXTENSION_PROJECT_SET_NAME "camitk-opensource" CACHE STRING "CEP Set Name")
set(CAMITK_EXTENSION_PROJECT_SET_NAME "camitk-communityedition" CACHE STRING "CEP Set Name")
# Configure CamiTK Opensource packaging.
# Configure CamiTK Community Edition packaging.
# Must be done before parsing extensions CMakeLists.txt files.
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/sdk/cmake/modules/macros)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/sdk/cmake/modules/macros ${CMAKE_CURRENT_SOURCE_DIR}/sdk/cmake/modules)
set(CAMITK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
include(camitk/packaging/CamiTKOpenSourcePackaging)
camitk_opensource_packaging()
include(camitk/packaging/CamiTKCommunityEditionPackaging)
camitk_communityedition_packaging()
# CamiTK 4.0 is C++11 compliant
# Configure include-what-you-use to check the current target
include(camitk/test/CamiTKIncludeWhatYouUse)
# CamiTK requires C++11
if(${CMAKE_VERSION} VERSION_LESS "3.1.3")
# On MSVC C++11 is the default
if(UNIX)
# CMAKE_CXX_STANDARD not available for cmake 3.0.2 (as in debian old stable)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()
else()
# All target after this declaration will be compile with c++11 policy
set(CMAKE_CXX_STANDARD 11)
endif()
# Specific to SDK: first compile the SDK (it looks like a CEP but is sooooo special...)
add_subdirectory(sdk)
# ...composed by the following CamiTK Extension Projects
# ...composed by the following CamiTK Extension Projects (optional)
add_subdirectory(imaging)
add_subdirectory(modeling)
# ... and tutorials that helps understand CamiTK (optional)
add_subdirectory(tutorials)
# Do we wrapp CamiTK for scripting it into Python using Shiboken and PySide ?
set(CAMITK_BINDING_PYTHON CACHE BOOL FALSE)
......@@ -51,4 +64,5 @@ if(CAMITK_BINDING_PYTHON)
add_subdirectory(python_sdk)
endif()
camitk_sub_project_validate(CEP_SET)
camitk_write_manifest_data(CEP_SET)
This diff is collapsed.
......@@ -2,12 +2,12 @@
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
## # The following are required to uses Dart and the Cdash dashboard
set(CTEST_PROJECT_NAME "camitkopensource")
set(CTEST_PROJECT_NAME "camitkcommunityedition")
set(CTEST_NIGHTLY_START_TIME "22:00:00 UTC")
set(CTEST_DROP_METHOD "https")
set(CTEST_DROP_SITE "cdash-timc.imag.fr")
set(CTEST_DROP_LOCATION "/submit.php?project=camitk-opensource")
set(CTEST_DROP_LOCATION "/submit.php?project=camitk-communityedition")
set(CTEST_DROP_SITE_CDASH TRUE)
## Disable CA certificates verification, until TIMC got valid certificate for this server
......
#Specific to SDK: control the version (major, minor, default patch and )
set(CAMITK_VERSION_MAJOR "4")
set(CAMITK_VERSION_MINOR "1")
set(CAMITK_VERSION_NICKNAME "burgundy") # Red Burgundy Amaranth Rose Auburn Cardinal Carmine Cerise Coquelicot Bordeaux
set(CAMITK_VERSION_PATCH "2") # patch version for packaging, change when appropriate
camitk (4.1.2-1) UNRELEASED; urgency=medium
* New upstream version 4.1.2
* control, rules, and autopkgtest updated for new release
* watch checks tag on upstream gilab
* fixed mispelling detected by lintian
-- Emmanuel Promayon <Emmanuel.Promayon@univ-grenoble-alpes.fr> Wed, 18 Jul 2018 13:37:31 +0000
camitk (4.0.4-2) unstable; urgency=medium
* Updated email address
......
......@@ -18,18 +18,17 @@ Build-Depends: debhelper (>= 10),
libgdcm2-dev,
libvtkgdcm2-dev,
xvfb,
xauth
Build-Depends-Indep: doxygen,
xauth,
doxygen,
graphviz
Standards-Version: 3.9.8
Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/camitk.git
Vcs-Git: https://anonscm.debian.org/git/debian-med/camitk.git
Homepage: http://camitk.imag.fr/
X-Homepage: https://forge.imag.fr/projects/camitk/
Testsuite: autopkgtest
Standards-Version: 4.1.5
Vcs-Browser: https://salsa.debian.org/med-team/camitk
Vcs-Git: https://salsa.debian.org/med-team/camitk.git
Homepage: https://camitk.imag.fr/
Package: libcamitk4
Architecture: any
Section: libs
Depends: libqtpropertybrowser4 (= ${binary:Version}),
${shlibs:Depends},
${misc:Depends}
......@@ -46,8 +45,8 @@ Architecture: any
Depends: libcamitk4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Replaces: libcamitk3, libcamitk4 (<< 4.0.3)
Breaks: libcamitk3, libcamitk4 (<< 4.0.3)
Replaces: libcamitk3, libcamitk4 (<< 4.1.2)
Breaks: libcamitk3, libcamitk4 (<< 4.1.2)
Description: Computer Assisted Medical Intervention Tool Kit - config
Helps researchers and clinicians to easily and rapidly collaborate in
order to prototype CAMI applications, that feature medical images,
......@@ -81,7 +80,7 @@ Depends: libcamitk4 (= ${binary:Version}),
Recommends: camitk-imp
Suggests: camitk-actionstatemachine
Breaks: libcamitk3-dev
Replaces: libcamitk3-dev, libcamitk4-dev
Replaces: libcamitk3-dev
Description: Computer Assisted Medical Intervention Tool Kit - development
Helps researchers and clinicians to easily and rapidly collaborate in
order to prototype CAMI applications, that feature medical images,
......@@ -92,7 +91,7 @@ Description: Computer Assisted Medical Intervention Tool Kit - development
extensions.
Package: libcamitk4-data
Architecture: all
Architecture: foreign
Section: doc
Depends: ${misc:Depends}
Description: Computer Assisted Medical Intervention Tool Kit - data
......@@ -103,7 +102,7 @@ Description: Computer Assisted Medical Intervention Tool Kit - data
This package contains the examples and test data for CamiTK.
Package: libcamitk4-doc
Architecture: all
Architecture: foreign
Section: doc
Depends: ${misc:Depends}
Description: Computer Assisted Medical Intervention Tool Kit - documentation
......@@ -151,6 +150,7 @@ Description: pipeline replay application for the CamiTK library
Package: libqtpropertybrowser4
Architecture: any
Section: libs
Depends: ${shlibs:Depends},
${misc:Depends}
Breaks: libqtpropertybrowser3
......@@ -169,7 +169,7 @@ Depends: libqtpropertybrowser4 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Breaks: libqtpropertybrowser3-dev
Replaces: libqtpropertybrowser3-dev, libqtpropertybrowser4-dev
Replaces: libqtpropertybrowser3-dev
Description: Qt Property Browser Library - development
A framework providing a set of graphical editors for
Qt properties similar to the one used in Qt Designer.
......
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: CamiTK
Upstream-Contact: Emmanuel Promayon <Emmanuel.Promayon@univ-grenoble-alpes.fr>,
Celine Fouard <Celine.Fouard@univ-grenoble-alpes.fr>
......
# W overrides for package-name-doesnt-match-sonames
# The produced lib given by
# objdump -p camitk-build/lib/libcamitkcore.so.4.0.0 | sed -n -e's/^[[:space:]]*SONAME[[:space:]]*//p' | sed -r -e's/([0-9])\.so\./\1-/; s/\.so(\.|$)//; y/_/-/; s/(.*)/\L&/'
# objdump -p camitk-build/lib/libcamitkcore.so.4.1.2 | sed -n -e's/^[[:space:]]*SONAME[[:space:]]*//p' | sed -r -e's/([0-9])\.so\./\1-/; s/\.so(\.|$)//; y/_/-/; s/(.*)/\L&/'
# is "libcamitkcore4"
# but the package is called libcamitk4 (as it is more than just the corelib)
# It is the same for libmonitoring4
......
This diff is collapsed.
From: Emmanuel Promayon <Emmanuel.Promayon@univ-grenoble-alpes.fr>
Date: Wed, 18 Jul 2018 12:28:59 +0200
Subject: FIXED spelling in examples
---
modeling/applications/pmltest/cube1-output-pmltest.pml | 2 +-
modeling/applications/pmltest/cube1.pml | 2 +-
modeling/applications/pmltest/cube2.pml | 2 +-
modeling/applications/pmltest/cube3.pml | 2 +-
modeling/applications/pmltest/cube4.pml | 2 +-
modeling/applications/pmltest/customProperty-example.pml | 2 +-
modeling/applications/pmltest/diaph.pml | 2 +-
modeling/applications/pmltest/human-trunk.pml | 2 +-
modeling/applications/pmltest/icosahedron.pml | 2 +-
modeling/applications/pmltest/visage.pml | 2 +-
modeling/components/pmlcomponent/testdata/diaphragm.pml | 2 +-
modeling/components/pmlcomponent/testdata/truthcube.pml | 2 +-
12 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/modeling/applications/pmltest/cube1-output-pmltest.pml b/modeling/applications/pmltest/cube1-output-pmltest.pml
index 413fe9f..fa2f6be 100644
--- a/modeling/applications/pmltest/cube1-output-pmltest.pml
+++ b/modeling/applications/pmltest/cube1-output-pmltest.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+/bin/bash: q: command not found
-->
<physicalModel name="cube 1" nrOfAtoms="8"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/cube1.pml b/modeling/applications/pmltest/cube1.pml
index 413fe9f..eef27fe 100644
--- a/modeling/applications/pmltest/cube1.pml
+++ b/modeling/applications/pmltest/cube1.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="cube 1" nrOfAtoms="8"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/cube2.pml b/modeling/applications/pmltest/cube2.pml
index 0bec57f..b35030b 100644
--- a/modeling/applications/pmltest/cube2.pml
+++ b/modeling/applications/pmltest/cube2.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="cube 2" nrOfAtoms="14"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/cube3.pml b/modeling/applications/pmltest/cube3.pml
index c9695eb..575c239 100644
--- a/modeling/applications/pmltest/cube3.pml
+++ b/modeling/applications/pmltest/cube3.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="simple cubic element" nrOfAtoms="8"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/cube4.pml b/modeling/applications/pmltest/cube4.pml
index 33e538f..f63c4b1 100644
--- a/modeling/applications/pmltest/cube4.pml
+++ b/modeling/applications/pmltest/cube4.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="cube 4" nrOfAtoms="8"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/customProperty-example.pml b/modeling/applications/pmltest/customProperty-example.pml
index 9182d1c..bc8568f 100644
--- a/modeling/applications/pmltest/customProperty-example.pml
+++ b/modeling/applications/pmltest/customProperty-example.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="custom physical properties test" nrOfAtoms="8"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/diaph.pml b/modeling/applications/pmltest/diaph.pml
index 05ca2c6..5885c6c 100644
--- a/modeling/applications/pmltest/diaph.pml
+++ b/modeling/applications/pmltest/diaph.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="Phymulob" nrOfAtoms="283"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/human-trunk.pml b/modeling/applications/pmltest/human-trunk.pml
index 23bff10..bd197d5 100644
--- a/modeling/applications/pmltest/human-trunk.pml
+++ b/modeling/applications/pmltest/human-trunk.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="F_02-sept.pdo" nrOfAtoms="252"
nrOfExclusiveComponents="29"
diff --git a/modeling/applications/pmltest/icosahedron.pml b/modeling/applications/pmltest/icosahedron.pml
index 583d042..75899e6 100644
--- a/modeling/applications/pmltest/icosahedron.pml
+++ b/modeling/applications/pmltest/icosahedron.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="Ico" nrOfAtoms="12"
nrOfExclusiveComponents="1"
diff --git a/modeling/applications/pmltest/visage.pml b/modeling/applications/pmltest/visage.pml
index 1263672..6fb5f9e 100644
--- a/modeling/applications/pmltest/visage.pml
+++ b/modeling/applications/pmltest/visage.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="Face mesh" nrOfAtoms="4215"
nrOfExclusiveComponents="1"
diff --git a/modeling/components/pmlcomponent/testdata/diaphragm.pml b/modeling/components/pmlcomponent/testdata/diaphragm.pml
index a0f1349..b3154aa 100644
--- a/modeling/components/pmlcomponent/testdata/diaphragm.pml
+++ b/modeling/components/pmlcomponent/testdata/diaphragm.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="Diaphragm model" nrOfAtoms="283"
nrOfExclusiveComponents="1"
diff --git a/modeling/components/pmlcomponent/testdata/truthcube.pml b/modeling/components/pmlcomponent/testdata/truthcube.pml
index e42d7fd..27e0345 100644
--- a/modeling/components/pmlcomponent/testdata/truthcube.pml
+++ b/modeling/components/pmlcomponent/testdata/truthcube.pml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- physical model (PML) is a generic representation for 3D physical model.
- PML supports not continous indexes and multiple non-exclusive labelling.
+ PML supports not continuous indexes and multiple non-exclusive labelling.
-->
<physicalModel name="truthcube" nrOfAtoms="729"
nrOfExclusiveComponents="3"