180 lines
4.8 KiB
YAML
180 lines
4.8 KiB
YAML
stages:
|
|
- build
|
|
- test
|
|
- packaging
|
|
|
|
before_script:
|
|
- uname -a
|
|
- locale
|
|
- whoami
|
|
- rm -rf build/
|
|
- mkdir build/
|
|
- cd build
|
|
|
|
variables:
|
|
COMPILER: "g++"
|
|
BUILD_TYPE: "Debug"
|
|
BOTAN: "-DWITH_BOTAN=1"
|
|
UDNS: "-DWITH_UDNS=1"
|
|
SYSTEMD: "-DWITH_SYSTEMD=1"
|
|
LIBIDN: "-DWITH_LIBIDN=1"
|
|
LITESQL: "-DWITH_LITESQL=1"
|
|
.template:basic_build: &basic_build
|
|
stage: build
|
|
tags:
|
|
- docker
|
|
image: docker.louiz.org/biboumi-test-fedora:latest
|
|
script:
|
|
- "echo Running cmake with the following parameters: -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${UDNS} ${SYSTEMD} ${LIBIDN} ${LITESQL}"
|
|
- cmake .. -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${UDNS} ${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:
|
|
UDNS: "-DWITHOUT_UDNS=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"
|
|
UDNS: "-DWITHOUT_UDNS=1"
|
|
<<: *basic_build
|
|
|
|
build:6:
|
|
variables:
|
|
BOTAN: "-DWITHOUT_BOTAN=1"
|
|
UDNS: "-DWITHOUT_UDNS=1"
|
|
<<: *basic_build
|
|
|
|
build:6:
|
|
variables:
|
|
LIBIDN: "-DWITHOUT_LIBIDN=1"
|
|
UDNS: "-DWITHOUT_UDNS=1"
|
|
<<: *basic_build
|
|
|
|
.template:basic_test: &basic_test
|
|
stage: test
|
|
tags:
|
|
- docker
|
|
script:
|
|
- cmake .. -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${UDNS} ${SYSTEMD} ${LIBIDN} ${LITESQL}
|
|
- make biboumi -j$(nproc || echo 1)
|
|
- make coverage_check -j$(nproc || echo 1)
|
|
- make coverage_e2e -j$(nproc || echo 1)
|
|
- make coverage
|
|
- bash <(curl -s https://codecov.io/bash) -X gcov -X coveragepy -f ./coverage_e2e.info -F integration
|
|
- bash <(curl -s https://codecov.io/bash) -X gcov -X coveragepy -f ./coverage_test_suite.info -F unittests
|
|
artifacts:
|
|
paths:
|
|
- build/coverage_test_suite/
|
|
- build/coverage_e2e/
|
|
- build/coverage_total/
|
|
when: always
|
|
name: $CI_PROJECT_NAME-test-$CI_BUILD_ID
|
|
|
|
test:debian:
|
|
image: docker.louiz.org/biboumi-test-debian:latest
|
|
<<: *basic_test
|
|
|
|
test:fedora:
|
|
image: docker.louiz.org/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} ${UDNS} ${SYSTEMD} ${LIBIDN} ${LITESQL}
|
|
- make biboumi
|
|
- make check
|
|
- make e2e
|
|
|
|
test:coverity:
|
|
stage: test
|
|
only:
|
|
- master@louiz/biboumi
|
|
tags:
|
|
- docker
|
|
image: docker.louiz.org/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: docker.louiz.org/biboumi-test-fedora:latest
|
|
allow_failure: true
|
|
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
|
|
|
|
packaging:rpm:
|
|
stage: packaging
|
|
only:
|
|
- master@louiz/biboumi
|
|
tags:
|
|
- docker
|
|
image: docker.louiz.org/biboumi-test-fedora:latest
|
|
script:
|
|
- cmake .. -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${BOTAN} ${UDNS} ${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
|
|
|
|
packaging:deb:
|
|
stage: packaging
|
|
only:
|
|
- master@louiz/biboumi
|
|
- debian@louiz/biboumi
|
|
tags:
|
|
- docker
|
|
image: docker.louiz.org/packaging-debian:latest
|
|
before_script: []
|
|
script:
|
|
- git checkout debian
|
|
- git merge --no-commit --no-ff master
|
|
- mk-build-deps
|
|
- apt install -y ./biboumi-build-deps*.deb
|
|
- debuild -b -us -uc
|
|
artifacts:
|
|
paths:
|
|
- ../*.deb
|
|
name: $CI_PROJECT_NAME-deb-$CI_BUILD_ID
|