diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 791e8959fddaf9197d8fa91f40b4ba16656c241a..71db2da3307845c41f08030cb3a994329f180c1d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,32 +14,62 @@ stages: #========== Stage build ========== -.build: &build_template +.build: &build stage: build - before_script: - - apk add --no-cache bash build-base cmake python3 libexecinfo-dev cppunit-dev libxml2-dev tclap-dev readline-dev qt5-qtbase-dev graphviz-dev jsoncpp-dev ${EXTRA_PKGS} script: - - export CXX=${CXX} - CMake/generate.py -wm - mkdir release - cd release - cmake -DCMAKE_BUILD_TYPE=Release .. - make -j $(grep -c processor /proc/cpuinfo) + +.build:push: &build-push + <<: *build + image: alpine:3.8 + before_script: + - apk add --no-cache bash build-base cmake python3 libexecinfo-dev cppunit-dev libxml2-dev tclap-dev readline-dev qt5-qtbase-dev graphviz-dev jsoncpp-dev ${EXTRA_PKGS} + - export CXX=${CXX} artifacts: paths: - release/ - expire_in: 1 day + expire_in: 1 hour + +.build:compatibility: &build-compatibility + <<: *build + only: + variables: + - $SCHEDULED_COMPATIBILITY -build:gcc: - <<: *build_template +build:alpine:gcc: + <<: *build-push variables: CXX: g++ -build:clang: - <<: *build_template +build:alpine:clang: + <<: *build-push variables: - CXX: clang++ EXTRA_PKGS: clang + CXX: clang++ + +build:debian:stable: + <<: *build-compatibility + before_script: + - apt-get update + - apt-get install -y build-essential cmake make python3 libcppunit-dev libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev + image: amd64/debian:testing-slim + +build:debian:testing: + <<: *build-compatibility + before_script: + - apt-get update + - apt-get install -y build-essential cmake make python3 libcppunit-dev libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev + image: amd64/debian:testing-slim + +build:arch: + <<: *build-compatibility + before_script: + - pacman -Syu --noconfirm base-devel cmake make python cppunit libxml2 tclap readline qt5-base graphviz jsoncpp + image: archlinux/base:latest build:doc: stage: build @@ -57,7 +87,7 @@ build:doc: #========== Stage test ========== -.test: &test_template +.test: &test stage: test before_script: - apk add --no-cache bash bc coreutils python3 cmake make libexecinfo cppunit libxml2 tclap readline qt5-qtbase qt5-qtbase-x11 graphviz jsoncpp @@ -72,14 +102,14 @@ build:doc: - for test in $(ls tests.*.sh); do ./${test} release/bin $(grep -c processor /proc/cpuinfo) || exit 1; touch release/bin/log_tests.txt; cat release/bin/log_tests.txt; done test:gcc: - <<: *test_template + <<: *test dependencies: - - build:gcc + - build:alpine:gcc test:clang: - <<: *test_template + <<: *test dependencies: - - build:clang + - build:alpine:clang #========== Stage release ========= @@ -106,7 +136,10 @@ test:clang: docker:build-nightly: <<: *docker_template only: - - schedules + refs: + - schedules + variables: + - $NIGHTLY script: - docker build -t "$IMAGE_TAG_NIGHTLY" . - docker run "$IMAGE_TAG_NIGHTLY" /usr/bin/aql2 --help