Newer
Older
.template:only:merge: &only-merge
only:
- merge_requests
.template:only:master: &only-master
only:
refs:
- master
.template:only:tag: &only-tag
only:
- /^v.*$/
except:
- branches
#######################################################################################################################
# build + test
- mkdir -p build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -GNinja ..
- ninja
- DESTDIR="." ninja install
script:
- cd build
- ctest . --output-on-failure -j $(grep -c processor /proc/cpuinfo)
# -----------------------------------------------------------------------------
# .config:alpine: &distro_alpine
# <<: *only-merge
# image: alpine:3.11
#
# build:alpine:
# <<: *distro_alpine
# extends: .template:build
# before_script:
# - apk add --no-cache bash build-base cmake ninja python3 libexecinfo-dev libxml2-dev tclap-dev readline-dev qt5-qtbase-dev graphviz-dev jsoncpp-dev
#
# test:alpine:
# <<: *distro_alpine
# extends: .template:test
# dependencies:
# - build:alpine
# before_script:
# - apk add --no-cache bash bc coreutils python3 cmake libexecinfo libxml2 tclap readline qt5-qtbase qt5-qtbase-x11 graphviz jsoncpp
# -----------------------------------------------------------------------------
image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/infrastructure/ci-docker-images/alt-builder:latest
.build:builder:
<<: *distro_builder
extends: .template:build
.test:builder:
<<: *distro_builder
extends: .template:test
build:builder:clang-sanitizers:
CXXFLAGS: "-fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all" # -stdlib=libc++
test:builder:gcc:
extends: .test:builder
dependencies:
- build:builder:gcc
test:builder:clang-sanitizers:
- build:builder:clang-sanitizers
#######################################################################################################################
# doc
image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/infrastructure/ci-docker-images/alt-builder:latest
- apt-get update && apt-get install -y doxygen graphviz
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DWITH_DOCS=1 -GNinja ..
#######################################################################################################################
# static analysis
image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/infrastructure/ci-docker-images/alt-builder:latest
- cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. -GNinja
- popd
allow_failure: true # TODO: Remove
dependencies: []
# -----------------------------------------------------------------------------
static-analysis:cppcheck:
extends: .template:static-analysis
- cppcheck -q --enable=all --project=build/compile_commands.json --suppress="*:*/lib/*" --error-exitcode=1
static-analysis:clang-tidy:
extends: .template:static-analysis
variables:
CXX: clang++
- jq ".[].file" build/compile_commands.json | tr -d "\"" | grep -v "test-src" | xargs -n1 -P$(grep -c processor /proc/cpuinfo) clang-tidy -quiet -p build/
static-analysis:sources-check:
extends: .template:static-analysis
script:
- python3 extra/scripts/sources-check.py .
#######################################################################################################################
# notify
script:
- curl -X POST -F token="$TOKEN" -F ref=master $PARAMS https://gitlab.fit.cvut.cz/api/v4/projects/$PROJECT_ID/trigger/pipeline
# -----------------------------------------------------------------------------
variables:
TOKEN: "$TOKEN_TRIGGER_PYALIB"
PROJECT_ID: "11497"
notify:release:stable:
<<: *only-tag
extends: .template:notify
variables:
TOKEN: "$TOKEN_TRIGGER_RELEASE"
PROJECT_ID: "17683"
PARAMS: "-F variables[RELEASE_REF]=$CI_COMMIT_TAG -F variables[RELEASE_MODE]=stable"
notify:release:snapshot:
<<: *only-master
extends: .template:notify
variables:
TOKEN: "$TOKEN_TRIGGER_RELEASE"
PROJECT_ID: "17683"
PARAMS: "-F variables[RELEASE_REF]=$CI_COMMIT_SHA -F variables[RELEASE_MODE]=snapshot"