1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-20 03:51:18 +00:00
conky/.gitlab-ci.yml
2021-03-03 15:39:02 -05:00

524 lines
11 KiB
YAML

---
stages:
- base
- dependencies
- build
- test
- check
variables:
DOCKER_DRIVER: overlay2
DOCKER_BUILDKIT: 1
.docker_base_builder: &docker_base_builder
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
- unknown_failure
- api_failure
stage: base
image: docker:stable
only:
changes:
- tests/dockerfiles/*
services:
- docker:dind
before_script:
- set -- $CI_JOB_NAME
- export DISTRO=$2
- "echo \"Distro: ${DISTRO}\nDocker base: ${DOCKER_BASE_IMAGE}\""
- export DOCKER_HOST="${DOCKER_HOST:-tcp://localhost:2375/}"
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
script:
- cd tests/dockerfiles
- >
docker build . -f Dockerfile.$DISTRO-base
--build-arg BUILDKIT_INLINE_CACHE=1
--cache-from $CI_REGISTRY_IMAGE/builder/$DISTRO-base:latest
--tag $CI_REGISTRY_IMAGE/builder/$DISTRO-base:latest
- docker push $CI_REGISTRY_IMAGE/builder/$DISTRO-base:latest
builder ubuntu base:
<<: *docker_base_builder
variables:
DOCKER_BASE_IMAGE: ubuntu:focal
builder fedora-31 base:
<<: *docker_base_builder
variables:
DOCKER_BASE_IMAGE: fedora:31
builder fedora-32 base:
<<: *docker_base_builder
variables:
DOCKER_BASE_IMAGE: fedora:32
builder fedora-33 base:
<<: *docker_base_builder
variables:
DOCKER_BASE_IMAGE: fedora:33
builder archlinux base:
<<: *docker_base_builder
variables:
DOCKER_BASE_IMAGE: archlinux:base
builder alpine base:
<<: *docker_base_builder
variables:
DOCKER_BASE_IMAGE: alpine:latest
.docker_builder: &docker_builder
<<: *docker_base_builder
stage: dependencies
script:
- set -- $CI_JOB_NAME
- export DISTRO=$2
- export COMPILER=$3
- "echo \"Distro: ${DISTRO}\nCompiler: ${COMPILER}\""
- cd tests/dockerfiles
- >
docker build . -f Dockerfile.$DISTRO-$COMPILER
--build-arg IMAGE=$CI_REGISTRY_IMAGE
--build-arg BUILDKIT_INLINE_CACHE=1
--cache-from $CI_REGISTRY_IMAGE/builder/$DISTRO-$COMPILER:latest
--tag $CI_REGISTRY_IMAGE/builder/$DISTRO-$COMPILER:latest
- docker push ${CI_REGISTRY_IMAGE}/builder/$DISTRO-$COMPILER:latest
builder ubuntu clang-9: *docker_builder
builder ubuntu clang-10: *docker_builder
builder ubuntu clang-11: *docker_builder
builder ubuntu gcc-7: *docker_builder
builder ubuntu gcc-8: *docker_builder
builder ubuntu gcc-9: *docker_builder
builder ubuntu gcc-10: *docker_builder
builder fedora-31 clang-8: *docker_builder
builder fedora-32 clang-10: *docker_builder
builder fedora-33 clang-11: *docker_builder
builder archlinux clang: *docker_builder
builder archlinux gcc: *docker_builder
builder alpine gcc: *docker_builder
# builder alpine clang: *docker_builder
.build_stages: &build_stages
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
- unknown_failure
- api_failure
image: $CI_REGISTRY_IMAGE/builder/$DISTRO-$COMPILER:latest
stage: build
script:
- "echo \"Distro: ${DISTRO}\nCompiler: ${COMPILER}\nCC: $CC\nCXX: $CXX\""
- mkdir -p build
- cd build
- >
cmake
-DBUILD_AUDACIOUS=$BUILD_AUDACIOUS
-DBUILD_HTTP=ON
-DBUILD_ICAL=$BUILD_ICAL
-DBUILD_ICONV=ON
-DBUILD_IRC=$BUILD_IRC
-DBUILD_JOURNAL=$BUILD_JOURNAL
-DBUILD_LUA_CAIRO=$BUILD_LUA_CAIRO
-DBUILD_LUA_IMLIB2=ON
-DBUILD_LUA_RSVG=$BUILD_LUA_RSVG
-DBUILD_MYSQL=$BUILD_MYSQL
-DBUILD_NVIDIA=$BUILD_NVIDIA
-DBUILD_PULSEAUDIO=$BUILD_PULSEAUDIO
-DBUILD_RSS=$BUILD_RSS
-DBUILD_XMMS2=$BUILD_XMMS2
-DCMAKE_EXE_LINKER_FLAGS=$LINKER_FLAGS
-DMAINTAINER_MODE=ON
..
- make -j4
.build_variables: &build_variables
BUILD_AUDACIOUS: "ON"
BUILD_ICAL: "ON"
BUILD_IRC: "ON"
BUILD_JOURNAL: "ON"
BUILD_LUA_CAIRO: "ON"
BUILD_LUA_RSVG: "ON"
BUILD_MYSQL: "ON"
BUILD_NVIDIA: "ON"
BUILD_PULSEAUDIO: "ON"
BUILD_RSS: "ON"
BUILD_XMMS2: "ON"
LINKER_FLAGS: ""
ubuntu clang-9:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: ubuntu
COMPILER: clang-9
CC: clang-9
CXX: clang++-9
ubuntu clang-10:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: ubuntu
COMPILER: clang-10
CC: clang-10
CXX: clang++-10
ubuntu clang-11:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: ubuntu
COMPILER: clang-11
CC: clang-11
CXX: clang++-11
ubuntu gcc-7:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: ubuntu
COMPILER: gcc-7
CC: gcc-7
CXX: g++-7
ubuntu gcc-8:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: ubuntu
COMPILER: gcc-8
CC: gcc-8
CXX: g++-8
ubuntu gcc-9:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: ubuntu
COMPILER: gcc-9
CC: gcc-9
CXX: g++-9
ubuntu gcc-10:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: ubuntu
COMPILER: gcc-10
CC: gcc-10
CXX: g++-10
fedora-31 clang-8:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: fedora-31
COMPILER: clang-8
CC: clang
CXX: clang++
BUILD_AUDACIOUS: "OFF"
fedora-32 clang-10:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: fedora-32
COMPILER: clang-10
CC: clang
CXX: clang++
BUILD_AUDACIOUS: "OFF"
fedora-33 clang-11:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: fedora-33
COMPILER: clang-11
CC: clang
CXX: clang++
BUILD_AUDACIOUS: "OFF"
archlinux clang:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: archlinux
COMPILER: clang
CC: clang
CXX: clang++
BUILD_AUDACIOUS: "OFF"
BUILD_XMMS2: "OFF"
archlinux gcc:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: archlinux
COMPILER: gcc
CC: gcc
CXX: g++
BUILD_AUDACIOUS: "OFF"
BUILD_XMMS2: "OFF"
alpine gcc:
<<: *build_stages
variables:
<<: *build_variables
DISTRO: alpine
COMPILER: gcc
CC: gcc
CXX: g++
BUILD_AUDACIOUS: "OFF"
BUILD_ICAL: "OFF"
BUILD_IRC: "OFF"
BUILD_JOURNAL: "OFF"
BUILD_LUA_CAIRO: "OFF"
BUILD_LUA_RSVG: "OFF"
BUILD_MYSQL: "OFF"
BUILD_NVIDIA: "OFF"
BUILD_PULSEAUDIO: "OFF"
BUILD_RSS: "OFF"
BUILD_XMMS2: "OFF"
# alpine clang:
# <<: *build_stages
# variables:
# <<: *build_variables
# DISTRO: alpine
# COMPILER: clang
# CC: clang
# CXX: clang++
# BUILD_AUDACIOUS: "OFF"
# BUILD_ICAL: "OFF"
# BUILD_IRC: "OFF"
# BUILD_JOURNAL: "OFF"
# BUILD_LUA_CAIRO: "OFF"
# BUILD_LUA_RSVG: "OFF"
# BUILD_MYSQL: "OFF"
# BUILD_NVIDIA: "OFF"
# BUILD_PULSEAUDIO: "OFF"
# BUILD_RSS: "OFF"
# BUILD_XMMS2: "OFF"
.test_stages: &test_stages
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
- unknown_failure
- api_failure
image: $CI_REGISTRY_IMAGE/builder/$DISTRO-$COMPILER:latest
stage: test
.test_run: &test_run
script:
- "echo \"Distro: ${DISTRO}\nCompiler: ${COMPILER}\nCC: $CC\nCXX: $CXX\""
- mkdir -p build
- cd build
- |
cmake \
-DBUILD_TESTS=ON \
-DMAINTAINER_MODE=ON \
..
- make -j4
- make -j4 test
- if [ "$COMPILER" == "clang-11" ] ; then make -j4 test-conky-coverage-txt ; fi
- if [ "$COMPILER" == "clang-11" ] ; then make -j4 test-conky-coverage-html ; fi
- if [ "$COMPILER" == "clang-11" ] ; then lcov-summary test-conky-coverage-html.info.cleaned ; fi
- make -j4
- make -j4 install
- conky -v
- find . -iname '*.gcda' -delete
- |
cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DRELEASE=ON \
..
- make -j4
- make -j4 install
- conky -v
coverage: '/Total Coverage:\s+(\d+\.\d+)%/'
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME-coverage-report"
paths:
- build/test-conky-coverage-html/
test ubuntu clang-9:
<<: *test_stages
<<: *test_run
variables:
DISTRO: ubuntu
COMPILER: clang-9
CC: clang-9
CXX: clang++-9
test ubuntu clang-10:
<<: *test_stages
<<: *test_run
variables:
DISTRO: ubuntu
COMPILER: clang-10
CC: clang-10
CXX: clang++-10
test ubuntu clang-11:
<<: *test_stages
<<: *test_run
variables:
DISTRO: ubuntu
COMPILER: clang-11
CC: clang-11
CXX: clang++-11
test ubuntu gcc-7:
<<: *test_stages
<<: *test_run
variables:
DISTRO: ubuntu
COMPILER: gcc-7
CC: gcc-7
CXX: g++-7
test ubuntu gcc-8:
<<: *test_stages
<<: *test_run
variables:
DISTRO: ubuntu
COMPILER: gcc-8
CC: gcc-8
CXX: g++-8
test ubuntu gcc-9:
<<: *test_stages
<<: *test_run
variables:
DISTRO: ubuntu
COMPILER: gcc-9
CC: gcc-9
CXX: g++-9
test ubuntu gcc-10:
<<: *test_stages
<<: *test_run
variables:
DISTRO: ubuntu
COMPILER: gcc-10
CC: gcc-10
CXX: g++-10
test fedora-31 clang-8:
<<: *test_stages
<<: *test_run
variables:
DISTRO: fedora-31
COMPILER: clang-8
CC: clang
CXX: clang++
test fedora-32 clang-10:
<<: *test_stages
<<: *test_run
variables:
DISTRO: fedora-32
COMPILER: clang-10
CC: clang
CXX: clang++
test fedora-33 clang-11:
<<: *test_stages
<<: *test_run
variables:
DISTRO: fedora-33
COMPILER: clang-11
CC: clang
CXX: clang++
test archlinux clang:
<<: *test_stages
<<: *test_run
variables:
DISTRO: archlinux
COMPILER: clang
CC: clang
CXX: clang++
test archlinux gcc:
<<: *test_stages
<<: *test_run
variables:
DISTRO: archlinux
COMPILER: gcc
CC: gcc
CXX: g++
test alpine gcc:
<<: *test_stages
<<: *test_run
variables:
DISTRO: alpine
COMPILER: gcc
CC: gcc
CXX: g++
# test alpine clang:
# <<: *test_stages
# <<: *test_run
# variables:
# DISTRO: alpine
# COMPILER: clang
# CC: clang
# CXX: clang++
.check_stages: &check_stages
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
- unknown_failure
- api_failure
image: $CI_REGISTRY_IMAGE/builder/$DISTRO-$COMPILER:latest
stage: check
check clang-tidy:
<<: *check_stages
variables:
COMPILER: clang-11
DISTRO: ubuntu
CC: clang-11
CXX: clang++-11
script:
- mkdir -p build
- cd build
- >
cmake
-DMAINTAINER_MODE=ON
-DCHECK_CODE_QUALITY=ON
..
- make -j4
- make -j4 check-clang-tidy
check clang-format:
<<: *check_stages
variables:
COMPILER: clang-11
DISTRO: ubuntu
CC: clang-11
CXX: clang++-11
script:
- mkdir -p build
- cd build
- >
cmake
-DMAINTAINER_MODE=ON
-DCHECK_CODE_QUALITY=ON
..
- make -j4 check-clang-format