Files
biboumi/.gitlab-ci.yml
T
louiz’ dac2119777 CI: refactor, and enable some specific test only on the master project
Because some of the jobs (the one using ssh runners, freebsd and openbsd)
use runners that are only available on my own project and not forks (for
security reasons), and some other jobs (coverity and sonar-qube) use private
variables to be able to run.  So, all these jobs would fail if run on a fork
project.
2016-12-08 00:56:26 +01:00

166 lines
4.3 KiB
YAML

before_script:
- uname -a
- whoami
- rm -rf build/
- mkdir build/
- cd build
variables:
COMPILER: "g++"
BUILD_TYPE: "Debug"
BOTAN: "-DWITH_BOTAN=1"
CARES: "-DWITH_CARES=1"
SYSTEMD: "-DWITH_SYSTEMD=1"
LIBIDN: "-DWITH_LIBIDN=1"
LITESQL: "-DWITH_LITESQL=1"
.template:basic_build: &basic_build
stage: build
tags:
- docker
image: biboumi-test-fedora:latest
script:
- "echo Running cmake with the following parameters: -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${CARES} ${SYSTEMD} ${LIBIDN} ${LITESQL}"
- cmake .. -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${CARES} ${SYSTEMD} ${LIBIDN} ${LITESQL}
- make biboumi -j$(nproc || echo 1)
- make check -j$(nproc || echo 1)
build:1:
variables:
BOTAN: "-DWITHOUT_BOTAN=1"
<<: *basic_build
build:2:
variables:
CARES: "-DWITHOUT_CARES=1"
<<: *basic_build
build:3:
variables:
LITESQL: "-DWITHOUT_LITESQL=1"
<<: *basic_build
build:4:
variables:
LITESQL: "-DWITHOUT_LITESQL=1"
BOTAN: "-DWITHOUT_BOTAN=1"
<<: *basic_build
build:5:
variables:
LITESQL: "-DWITHOUT_LITESQL=1"
CARES: "-DWITHOUT_CARES=1"
<<: *basic_build
build:6:
variables:
BOTAN: "-DWITHOUT_BOTAN=1"
CARES: "-DWITHOUT_CARES=1"
<<: *basic_build
build:6:
variables:
LIBIDN: "-DWITHOUT_LIBIDN=1"
CARES: "-DWITHOUT_CARES=1"
<<: *basic_build
build:rpm:
stage: build
only:
- master@louiz/biboumi
tags:
- docker
image: biboumi-test-fedora:latest
script:
- cmake .. -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${CARES} ${SYSTEMD} ${LIBIDN} ${LITESQL}
- make rpm -j$(nproc || echo 1)
artifacts:
paths:
- build/rpmbuild/RPMS
- build/rpmbuild/SRPMS
when: always
name: $CI_PROJECT_NAME-rpm-$CI_BUILD_ID
.template:basic_test: &basic_test
stage: test
tags:
- docker
script:
- cmake .. -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${CARES} ${SYSTEMD} ${LIBIDN} ${LITESQL}
- make biboumi -j$(nproc || echo 1)
- make check
- make coverage
- mkdir tests_outputs && pushd tests_outputs && make coverage_e2e -j$(nproc || echo 1) -C .. && popd
artifacts:
paths:
- build/coverage/
- build/coverage_e2e/
- build/tests_outputs/
when: always
name: $CI_PROJECT_NAME-test-$CI_BUILD_ID
test:debian:
image: biboumi-test-debian:latest
<<: *basic_test
test:fedora:
image: biboumi-test-fedora:latest
<<: *basic_test
test:freebsd:
only:
- master@louiz/biboumi
tags:
- freebsd
variables:
SYSTEMD: "-DWITHOUT_SYSTEMD=1"
stage: test
script:
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${CARES} ${SYSTEMD} ${LIBIDN} ${LITESQL}
- make biboumi
- make check
- make e2e
test:openbsd:
stage: test
only:
- master@louiz/biboumi
tags:
- openbsd
variables:
COMPILER: "g++"
SYSTEMD: "-DWITHOUT_SYSTEMD=1"
script:
- cmake .. -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${CARES} ${SYSTEMD} ${LIBIDN} ${LITESQL}
- make biboumi
- make check
test:coverity:
stage: test
only:
- master@louiz/biboumi
tags:
- docker
image: biboumi-test-fedora:latest
allow_failure: true
when: manual
script:
- export PATH=$PATH:~/coverity/bin
- cmake .. -DWITHOUT_SYSTEMD=1
- cov-build --dir cov-int make biboumi test_suite -j$(nproc || echo 1)
- tar czvf biboumi_coverity.tgz cov-int
- curl --form token=$COVERITY_TOKEN --form email=louiz@louiz.org --form file=@biboumi_coverity.tgz --form version="$(git rev-parse --short HEAD)" --form description="Automatic submission by gitlab-ci" https://scan.coverity.com/builds?project=louiz%2Fbiboumi
test:sonar-qube:
stage: test
only:
- master@louiz/biboumi
tags:
- docker
image: biboumi-test-fedora:latest
script:
- cmake ..
- ~/sonar-scanner/bin/build-wrapper-linux-x86/build-wrapper-linux-x86-64 --out-dir ./bw-outputs make biboumi test_suite
- cd ..
- ~/sonar-scanner/bin/sonar-scanner -Dsonar.host.url=https://sonarqube.com -Dsonar.login=$SONAR_LOGIN -Dsonar.language=cpp -Dsonar.cfamily.build-wrapper-output=build/bw-outputs -Dsonar.sourceEncoding=UTF-8 -Dsonar.sources=src/,louloulibs/,tests/ -Dsonar.projectKey=biboumi -Dsonar.projectName=Biboumi -Dsonar.projectVersion=3.0