Commit af26de63 authored by Ondřej Surý's avatar Ondřej Surý

Merge branch '4-gitlab-ci.yml-improvement' into 'master'

Improve GitLab CI configuration

See merge request !3254
parents d7348a2b de1a637a
Pipeline #37017 failed with stages
in 72 minutes and 59 seconds
......@@ -15,7 +15,7 @@ variables:
BUILD_PARALLEL_JOBS: 6
TEST_PARALLEL_JOBS: 6
MAKE: make
MAKE_COMMAND: make
CONFIGURE: ./configure
CLANG: clang-9
SCAN_BUILD: scan-build-9
......@@ -182,11 +182,7 @@ stages:
script:
- autoreconf -fi
artifacts:
paths:
- aclocal.m4
- configure
- ltmain.sh
- m4/libtool.m4
untracked: true
expire_in: "1 day"
.configure: &configure |
......@@ -211,13 +207,12 @@ stages:
- test -n "${OOT_BUILD_WORKSPACE}" && mkdir "${OOT_BUILD_WORKSPACE}" && cd "${OOT_BUILD_WORKSPACE}"
script:
- *configure
- ${MAKE} -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
- ${MAKE_COMMAND} -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
- test -z "${RUN_MAKE_INSTALL}" || make install
- test -z "${RUN_MAKE_INSTALL}" || sh util/check-make-install
dependencies:
- autoreconf:sid:amd64
needs:
- autoreconf:sid:amd64
- job: autoreconf:sid:amd64
artifacts: true
artifacts:
untracked: true
expire_in: "1 day"
......@@ -245,9 +240,9 @@ stages:
x64'
- 'Set-Item -path "Env:CL" -value "/MP$([Math]::Truncate($BUILD_PARALLEL_JOBS/2))"'
- '& msbuild.exe /maxCpuCount:2 /t:Build /p:Configuration=$VSCONF bind9.sln'
dependencies: []
needs:
- autoreconf:sid:amd64
- job: autoreconf:sid:amd64
artifacts: false
artifacts:
untracked: true
expire_in: "1 day"
......@@ -390,6 +385,7 @@ misc:sid:amd64:
- xmllint --noout --nonet `git ls-files '*.xml' '*.docbook'`
- xmllint --noout --nonet --html `git ls-files '*.html'`
- sh util/check-win32util-configure
needs: []
artifacts:
paths:
- util/newcopyrights
......@@ -399,6 +395,7 @@ misc:sid:amd64:
💾:sid:amd64:
<<: *precheck_job
needs: []
script:
- if [ -r .clang-format ]; then "${CLANG_FORMAT}" -i -style=file $(git ls-files '*.c' '*.h'); fi
- if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
......@@ -406,13 +403,14 @@ misc:sid:amd64:
🐞:sid:amd64:
<<: *precheck_job
<<: *debian_buster_amd64_image
needs: []
script:
- util/check-cocci
- if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
tarball-create:sid:amd64:
<<: *debian_sid_amd64_image
stage: precheck
<<: *debian_sid_amd64_image
script:
- source version
- export BIND_DIRECTORY="bind-${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}"
......@@ -437,10 +435,9 @@ docs:sid:amd64:
- ./configure || cat config.log
- make -C doc/misc docbook
- make -C doc/arm Bv9ARM.html
dependencies:
- autoreconf:sid:amd64
needs:
- autoreconf:sid:amd64
- job: autoreconf:sid:amd64
artifacts: true
artifacts:
paths:
- doc/arm/
......@@ -449,7 +446,9 @@ docs:sid:amd64:
push:docs:sid:amd64:
<<: *debian_sid_amd64_image
stage: push
dependencies: []
needs:
- job: docs:sid:amd64
artifacts: false
script:
- curl -X POST -F token=$GITLAB_PAGES_DOCS_TRIGGER_TOKEN -F ref=master $GITLAB_PAGES_DOCS_TRIGGER_URL
only:
......@@ -469,16 +468,16 @@ gcc:alpine3.11:amd64:
system:gcc:alpine3.11:amd64:
<<: *alpine_3_11_amd64_image
<<: *system_test_job
dependencies:
- gcc:alpine3.11:amd64
needs: ["gcc:alpine3.11:amd64"]
needs:
- job: gcc:alpine3.11:amd64
artifacts: true
unit:gcc:alpine3.11:amd64:
<<: *alpine_3_11_amd64_image
<<: *unit_test_job
dependencies:
- gcc:alpine3.11:amd64
needs: ["gcc:alpine3.11:amd64"]
needs:
- job: gcc:alpine3.11:amd64
artifacts: true
# Jobs for regular GCC builds on CentOS 6 (amd64)
......@@ -493,16 +492,16 @@ gcc:centos6:amd64:
system:gcc:centos6:amd64:
<<: *centos_centos6_amd64_image
<<: *system_test_job
dependencies:
- gcc:centos6:amd64
needs: ["gcc:centos6:amd64"]
needs:
- job: gcc:centos6:amd64
artifacts: true
unit:gcc:centos6:amd64:
<<: *centos_centos6_amd64_image
<<: *unit_test_job
dependencies:
- gcc:centos6:amd64
needs: ["gcc:centos6:amd64"]
needs:
- job: gcc:centos6:amd64
artifacts: true
# Jobs for regular GCC builds on CentOS 7 (amd64)
......@@ -517,16 +516,16 @@ gcc:centos7:amd64:
system:gcc:centos7:amd64:
<<: *centos_centos7_amd64_image
<<: *system_test_job
dependencies:
- gcc:centos7:amd64
needs: ["gcc:centos7:amd64"]
needs:
- job: gcc:centos7:amd64
artifacts: true
unit:gcc:centos7:amd64:
<<: *centos_centos7_amd64_image
<<: *unit_test_job
dependencies:
- gcc:centos7:amd64
needs: ["gcc:centos7:amd64"]
needs:
- job: gcc:centos7:amd64
artifacts: true
# Jobs for regular GCC builds on CentOS 8 (amd64)
......@@ -541,16 +540,16 @@ gcc:centos8:amd64:
system:gcc:centos8:amd64:
<<: *centos_centos8_amd64_image
<<: *system_test_job
dependencies:
- gcc:centos8:amd64
needs: ["gcc:centos8:amd64"]
needs:
- job: gcc:centos8:amd64
artifacts: true
unit:gcc:centos8:amd64:
<<: *centos_centos8_amd64_image
<<: *unit_test_job
dependencies:
- gcc:centos8:amd64
needs: ["gcc:centos8:amd64"]
needs:
- job: gcc:centos8:amd64
artifacts: true
# Jobs for regular GCC builds on Debian 8 Jessie (amd64)
......@@ -565,16 +564,16 @@ gcc:jessie:amd64:
system:gcc:jessie:amd64:
<<: *debian_jessie_amd64_image
<<: *system_test_job
dependencies:
- gcc:jessie:amd64
needs: ["gcc:jessie:amd64"]
needs:
- job: gcc:jessie:amd64
artifacts: true
unit:gcc:jessie:amd64:
<<: *debian_jessie_amd64_image
<<: *unit_test_job
dependencies:
- gcc:jessie:amd64
needs: ["gcc:jessie:amd64"]
needs:
- job: gcc:jessie:amd64
artifacts: true
# Jobs for regular GCC builds on Debian 9 Stretch (amd64)
......@@ -588,16 +587,16 @@ gcc:stretch:amd64:
system:gcc:stretch:amd64:
<<: *debian_stretch_amd64_image
<<: *system_test_job
dependencies:
- gcc:stretch:amd64
needs: ["gcc:stretch:amd64"]
needs:
- job: gcc:stretch:amd64
artifacts: true
unit:gcc:stretch:amd64:
<<: *debian_stretch_amd64_image
<<: *unit_test_job
dependencies:
- gcc:stretch:amd64
needs: ["gcc:stretch:amd64"]
needs:
- job: gcc:stretch:amd64
artifacts: true
# Jobs for regular GCC builds on Debian 10 Buster (amd64)
......@@ -611,16 +610,16 @@ gcc:buster:amd64:
system:gcc:buster:amd64:
<<: *debian_buster_amd64_image
<<: *system_test_job
dependencies:
- gcc:buster:amd64
needs: ["gcc:buster:amd64"]
needs:
- job: gcc:buster:amd64
artifacts: true
unit:gcc:buster:amd64:
<<: *debian_buster_amd64_image
<<: *unit_test_job
dependencies:
- gcc:buster:amd64
needs: ["gcc:buster:amd64"]
needs:
- job: gcc:buster:amd64
artifacts: true
# Jobs for scan-build builds on Debian Buster (amd64)
......@@ -644,10 +643,9 @@ scan-build:buster:amd64:
script:
- *configure
- *scan_build
dependencies:
- autoreconf:sid:amd64
needs:
- autoreconf:sid:amd64
- job: autoreconf:sid:amd64
artifacts: true
artifacts:
paths:
- scan-build.reports/
......@@ -662,30 +660,30 @@ gcc:sid:amd64:
CFLAGS: "${CFLAGS_COMMON} -O3"
EXTRA_CONFIGURE: "--enable-dnstap --with-libidn2"
RUN_MAKE_INSTALL: 1
MAKE: bear make
MAKE_COMMAND: bear --use-cc=${CC} --verbose make
<<: *debian_sid_amd64_image
<<: *build_job
system:gcc:sid:amd64:
<<: *debian_sid_amd64_image
<<: *system_test_job
dependencies:
- gcc:sid:amd64
needs: ["gcc:sid:amd64"]
needs:
- job: gcc:sid:amd64
artifacts: true
unit:gcc:sid:amd64:
<<: *debian_sid_amd64_image
<<: *unit_test_job
dependencies:
- gcc:sid:amd64
needs: ["gcc:sid:amd64"]
needs:
- job: gcc:sid:amd64
artifacts: true
cppcheck:gcc:sid:amd64:
<<: *debian_sid_amd64_image
<<: *cppcheck_job
dependencies:
- gcc:sid:amd64
needs: ["gcc:sid:amd64"]
needs:
- job: gcc:sid:amd64
artifacts: true
# Job for out-of-tree GCC build on Debian Sid (amd64)
......@@ -713,9 +711,9 @@ tarball:sid:amd64:
- tar --extract --file bind-*.tar.${TARBALL_EXTENSION}
- rm -f bind-*.tar.${TARBALL_EXTENSION}
- cd bind-*
dependencies:
- tarball-create:sid:amd64
needs: ["tarball-create:sid:amd64"]
needs:
- job: tarball-create:sid:amd64
artifacts: true
only:
- tags
......@@ -725,9 +723,9 @@ system:tarball:sid:amd64:
before_script:
- cd bind-*
- *setup_interfaces
dependencies:
- tarball:sid:amd64
needs: ["tarball:sid:amd64"]
needs:
- job: tarball:sid:amd64
artifacts: true
only:
- tags
......@@ -736,9 +734,9 @@ unit:tarball:sid:amd64:
<<: *unit_test_job
before_script:
- cd bind-*
dependencies:
- tarball:sid:amd64
needs: ["tarball:sid:amd64"]
needs:
- job: tarball:sid:amd64
artifacts: true
only:
- tags
......@@ -747,33 +745,24 @@ unit:tarball:sid:amd64:
gcc:sid:arm64:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON} -O3"
CFLAGS: "${CFLAGS_COMMON} -O2"
EXTRA_CONFIGURE: "--enable-dnstap --with-libidn2"
RUN_MAKE_INSTALL: 1
MAKE: bear make
<<: *debian_sid_arm64_image
<<: *build_job
system:gcc:sid:arm64:
<<: *debian_sid_arm64_image
<<: *system_test_job
dependencies:
- gcc:sid:arm64
needs: ["gcc:sid:arm64"]
needs:
- job: gcc:sid:arm64
artifacts: true
unit:gcc:sid:arm64:
<<: *debian_sid_arm64_image
<<: *unit_test_job
dependencies:
- gcc:sid:arm64
needs: ["gcc:sid:arm64"]
cppcheck:gcc:sid:arm64:
<<: *debian_sid_arm64_image
<<: *cppcheck_job
dependencies:
- gcc:sid:arm64
needs: ["gcc:sid:arm64"]
needs:
- job: gcc:sid:arm64
artifacts: true
# Jobs for regular GCC builds on Debian Sid (i386)
......@@ -788,16 +777,16 @@ gcc:sid:i386:
system:gcc:sid:i386:
<<: *debian_sid_i386_image
<<: *system_test_job
dependencies:
- gcc:sid:i386
needs: ["gcc:sid:i386"]
needs:
- job: gcc:sid:i386
artifacts: true
unit:gcc:sid:i386:
<<: *debian_sid_i386_image
<<: *unit_test_job
dependencies:
- gcc:sid:i386
needs: ["gcc:sid:i386"]
needs:
- job: gcc:sid:i386
artifacts: true
# Jobs for regular GCC builds on openSUSE Tumbleweed (amd64)
......@@ -812,16 +801,16 @@ gcc:tumbleweed:amd64:
system:gcc:tumbleweed:amd64:
<<: *tumbleweed_latest_amd64_image
<<: *system_test_job
dependencies:
- gcc:tumbleweed:amd64
needs: ["gcc:tumbleweed:amd64"]
needs:
- job: gcc:tumbleweed:amd64
artifacts: true
unit:gcc:tumbleweed:amd64:
<<: *tumbleweed_latest_amd64_image
<<: *unit_test_job
dependencies:
- gcc:tumbleweed:amd64
needs: ["gcc:tumbleweed:amd64"]
needs:
- job: gcc:tumbleweed:amd64
artifacts: true
# Jobs for regular GCC builds on Fedora 31 (amd64)
......@@ -836,16 +825,16 @@ gcc:fedora31:amd64:
system:gcc:fedora31:amd64:
<<: *fedora_31_amd64_image
<<: *system_test_job
dependencies:
- gcc:fedora31:amd64
needs: ["gcc:fedora31:amd64"]
needs:
- job: gcc:fedora31:amd64
artifacts: true
unit:gcc:fedora31:amd64:
<<: *fedora_31_amd64_image
<<: *unit_test_job
dependencies:
- gcc:fedora31:amd64
needs: ["gcc:fedora31:amd64"]
needs:
- job: gcc:fedora31:amd64
artifacts: true
# Jobs for regular GCC builds on Ubuntu 16.04 Xenial Xerus (amd64)
......@@ -860,16 +849,16 @@ gcc:xenial:amd64:
system:gcc:xenial:amd64:
<<: *ubuntu_xenial_amd64_image
<<: *system_test_job
dependencies:
- gcc:xenial:amd64
needs: ["gcc:xenial:amd64"]
needs:
- job: gcc:xenial:amd64
artifacts: true
unit:gcc:xenial:amd64:
<<: *ubuntu_xenial_amd64_image
<<: *unit_test_job
dependencies:
- gcc:xenial:amd64
needs: ["gcc:xenial:amd64"]
needs:
- job: gcc:xenial:amd64
artifacts: true
# Jobs for regular GCC builds on Ubuntu 18.04 Bionic Beaver (amd64)
......@@ -884,16 +873,16 @@ gcc:bionic:amd64:
system:gcc:bionic:amd64:
<<: *ubuntu_bionic_amd64_image
<<: *system_test_job
dependencies:
- gcc:bionic:amd64
needs: ["gcc:bionic:amd64"]
needs:
- job: gcc:bionic:amd64
artifacts: true
unit:gcc:bionic:amd64:
<<: *ubuntu_bionic_amd64_image
<<: *unit_test_job
dependencies:
- gcc:bionic:amd64
needs: ["gcc:bionic:amd64"]
needs:
- job: gcc:bionic:amd64
artifacts: true
# Jobs for GCC builds with ASAN enabled on Debian Sid (amd64)
......@@ -911,18 +900,18 @@ system:asan:sid:amd64:
ASAN_OPTIONS: ${ASAN_OPTIONS_COMMON}
<<: *debian_sid_amd64_image
<<: *system_test_job
dependencies:
- asan:sid:amd64
needs: ["asan:sid:amd64"]
needs:
- job: asan:sid:amd64
artifacts: true
unit:asan:sid:amd64:
variables:
ASAN_OPTIONS: ${ASAN_OPTIONS_COMMON}
<<: *debian_sid_amd64_image
<<: *unit_test_job
dependencies:
- asan:sid:amd64
needs: ["asan:sid:amd64"]
needs:
- job: asan:sid:amd64
artifacts: true
# Jobs for GCC builds with TSAN enabled on Debian Sid (amd64)
......@@ -943,9 +932,9 @@ system:tsan:buster:amd64:
- echo $TSAN_OPTIONS
<<: *debian_buster_amd64_image
<<: *system_test_job
dependencies:
- tsan:buster:amd64
needs: ["tsan:buster:amd64"]
needs:
- job: tsan:buster:amd64
artifacts: true
allow_failure: true
after_script:
- find bin -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
......@@ -965,9 +954,9 @@ unit:tsan:buster:amd64:
- lib/isc/tests/result_test
<<: *debian_buster_amd64_image
<<: *unit_test_job
dependencies:
- tsan:buster:amd64
needs: ["tsan:buster:amd64"]
needs:
- job: tsan:buster:amd64
artifacts: true
allow_failure: true
after_script:
- find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
......@@ -992,16 +981,16 @@ rwlock:sid:amd64:
system:rwlock:sid:amd64:
<<: *debian_sid_amd64_image
<<: *system_test_job
dependencies:
- rwlock:sid:amd64
needs: ["rwlock:sid:amd64"]
needs:
- job: rwlock:sid:amd64
artifacts: true
unit:rwlock:sid:amd64:
<<: *debian_sid_amd64_image
<<: *unit_test_job
dependencies:
- rwlock:sid:amd64
needs: ["rwlock:sid:amd64"]
needs:
- job: rwlock:sid:amd64
artifacts: true
# Jobs for mutex-based atomics on Debian SID (amd64)
mutexatomics:sid:amd64:
......@@ -1015,16 +1004,16 @@ mutexatomics:sid:amd64:
system:mutexatomics:sid:amd64:
<<: *debian_sid_amd64_image
<<: *system_test_job
dependencies:
- mutexatomics:sid:amd64
needs: ["mutexatomics:sid:amd64"]
needs:
- job: mutexatomics:sid:amd64
artifacts: true
unit:mutexatomics:sid:amd64:
<<: *debian_sid_amd64_image
<<: *unit_test_job
dependencies:
- mutexatomics:sid:amd64
needs: ["mutexatomics:sid:amd64"]
needs:
- job: mutexatomics:sid:amd64
artifacts: true
# Jobs for Clang builds on Debian Stretch (amd64)
......@@ -1039,9 +1028,9 @@ clang:stretch:amd64:
unit:clang:stretch:amd64:
<<: *debian_stretch_amd64_image
<<: *unit_test_job
dependencies:
- clang:stretch:amd64
needs: ["clang:stretch:amd64"]
needs:
- job: clang:stretch:amd64
artifacts: true
# Jobs for Clang builds on Debian Stretch (i386)
......@@ -1066,16 +1055,16 @@ pkcs11:sid:amd64:
system:pkcs11:sid:amd64:
<<: *debian_sid_amd64_image
<<: *system_test_job
dependencies:
- pkcs11:sid:amd64
needs: ["pkcs11:sid:amd64"]
needs:
- job: pkcs11:sid:amd64
artifacts: true
unit:pkcs11:sid:amd64:
<<: *debian_sid_amd64_image
<<: *unit_test_job
dependencies:
- pkcs11:sid:amd64
needs: ["pkcs11:sid:amd64"]
needs:
- job: pkcs11:sid:amd64
artifacts: true
# Jobs for Clang builds on FreeBSD 11.3 (amd64)
......@@ -1092,18 +1081,18 @@ system:clang:freebsd11.3:amd64:
variables:
USER: gitlab-runner
TEST_PARALLEL_JOBS: 4
dependencies:
- clang:freebsd11.3:amd64
needs: ["clang:freebsd11.3:amd64"]
needs:
-