diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..c4de854 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,279 @@ +variables: + DEBIAN_FRONTEND: noninteractive + LC_ALL: C + DOCKER_DRIVER: overlay2 + CI_REGISTRY_IMAGE: oerdnj/bind9 + CCACHE_DIR: "/ccache" + +stages: + - precheck + - build + - test + +.centos-centos6-amd64: ¢os_centos6_amd64_image + image: "$CI_REGISTRY_IMAGE:centos-centos6-amd64" + tags: + - linux + - docker + - amd64 + +.centos-centos7-amd64: ¢os_centos7_amd64_image + image: "$CI_REGISTRY_IMAGE:centos-centos7-amd64" + tags: + - linux + - docker + - amd64 + +.debian-jessie-amd64: &debian_jessie_amd64_image + image: "$CI_REGISTRY_IMAGE:debian-jessie-amd64" + tags: + - linux + - docker + - amd64 + +.debian-jessie-i386: &debian_jessie_i386_image + image: "$CI_REGISTRY_IMAGE:debian-jessie-i386" + tags: + - linux + - docker + - i386 + +.debian-stretch-amd64: &debian_stretch_amd64_image + image: "$CI_REGISTRY_IMAGE:debian-stretch-amd64" + tags: + - linux + - docker + - amd64 + +.debian-stretch-i386:: &debian_stretch_i386_image + image: "$CI_REGISTRY_IMAGE:debian-stretch-i386" + tags: + - linux + - docker + - i386 + +.debian-buster-amd64: &debian_buster_amd64_image + image: "$CI_REGISTRY_IMAGE:debian-buster-amd64" + tags: + - linux + - docker + - amd64 + +.debian-buster-i386:: &debian_buster_i386_image + image: "$CI_REGISTRY_IMAGE:debian-buster-i386" + tags: + - linux + - docker + - i386 + +.debian-sid-amd64: &debian_sid_amd64_image + image: "$CI_REGISTRY_IMAGE:debian-sid-amd64" + tags: + - linux + - docker + - amd64 + +.debian-sid-i386: &debian_sid_i386_image + image: "$CI_REGISTRY_IMAGE:debian-sid-i386" + tags: + - linux + - docker + - i386 + +.ubuntu-trusty-amd64: &ubuntu_trusty_amd64_image + image: "$CI_REGISTRY_IMAGE:ubuntu-trusty-amd64" + tags: + - linux + - docker + - amd64 + +.ubuntu-trusty-i386: &ubuntu_trusty_i386_image + image: "$CI_REGISTRY_IMAGE:ubuntu-trusty-i386" + tags: + - linux + - docker + - i386 + +.ubuntu-xenial-amd64: &ubuntu_xenial_amd64_image + image: "$CI_REGISTRY_IMAGE:ubuntu-xenial-amd64" + tags: + - linux + - docker + - amd64 + +.ubuntu-xenial-i386: &ubuntu_xenial_i386_image + image: "$CI_REGISTRY_IMAGE:ubuntu-xenial-i386" + tags: + - linux + - docker + - i386 + +.build: &build_job + stage: build + before_script: + - test -w "${CCACHE_DIR}" && export PATH="/usr/lib/ccache:${PATH}" + - autoreconf -fi + script: + - ./configure --enable-developer --with-libtool --disable-static --with-atf=/usr --with-libidn2 --prefix=$HOME/.local --without-make-clean "${EXTRA_CONFIGURE}" || cat config.log + - make -j${PARALLEL_JOBS_BUILD:-1} -k all V=1 + artifacts: + expire_in: '1 hour' + untracked: true + +.install_test: &install_test_job + stage: test + before_script: + - mkdir $HOME/.local + script: + - make install + +.system_test: &system_test_job + stage: test + before_script: + - rm -rf .ccache + - bash -x bin/tests/system/ifconfig.sh up + script: + - ( cd bin/tests && make -j${TEST_PARALLEL_JOBS:-1} -k test V=1 ) + - test -s bin/tests/system/systests.output + artifacts: + untracked: true + expire_in: '1 week' + when: on_failure + +.unit_test: &unit_test_job + stage: test + before_script: + - export KYUA_RESULT="$CI_PROJECT_DIR/kyua.results" + script: + - make unit + after_script: + - kyua report-html --force --results-file kyua.results --results-filter "" --output kyua_html + artifacts: + paths: + - atf.out + - kyua.log + - kyua.results + - kyua_html/ + expire_in: '1 week' + when: on_failure + +precheck:debian:sid:amd64: + <<: *debian_sid_amd64_image + stage: precheck + script: + - sh util/checklibs.sh > checklibs.out + - perl util/check-changes CHANGES + - perl -w util/merge_copyrights + - diff -urNap util/copyrights util/newcopyrights + - rm util/newcopyrights + - perl -w util/update_copyrights < util/copyrights + - if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi + - xmllint --noout --nonet `git ls-files '*.xml' '*.docbook'` + - xmllint --noout --nonet --html `git ls-files '*.html'` + artifacts: + paths: + - util/newcopyrights + - checklibs.out + expire_in: '1 week' + when: on_failure + +#build:debian:jessie:amd64: +# <<: *debian_jessie_amd64_image +# <<: *build_job +# +#build:debian:jessie:i386: +# <<: *debian_jessie_i386_image +# <<: *build_job +# +#build:debian:stretch:amd64: +# <<: *debian_stretch_amd64_image +# <<: *build_job +# +#build:debian:buster:i386: +# <<: *debian_buster_i386_image +# <<: *build_job +# +#build:ubuntu:trusty:amd64: +# <<: *ubuntu_trusty_amd64_image +# <<: *build_job +# +#build:ubuntu:xenial:i386: +# <<: *ubuntu_xenial_i386_image +# <<: *build_job + +build:centos:centos6:amd64: + variables: + CC: gcc + CFLAGS: "-Wall -Wextra -O2 -g" + EXTRA_CONFIGURE: "--disable-warn-error" + <<: *centos_centos6_amd64_image + <<: *build_job + +build:centos:centos7:amd64: + variables: + CC: gcc + CFLAGS: "-Wall -Wextra -O2 -g -DDIG_SIGCHASE=1" + <<: *centos_centos7_amd64_image + <<: *build_job + +build:debian:sid:amd64: + <<: *debian_sid_amd64_image + <<: *build_job + +build:debian:sid:i386: + <<: *debian_sid_i386_image + <<: *build_job + +unittest:centos:centos6:amd64: + <<: *centos_centos6_amd64_image + <<: *unit_test_job + dependencies: + - build:centos:centos6:amd64 + +unittest:centos:centos7:amd64: + <<: *centos_centos7_amd64_image + <<: *unit_test_job + dependencies: + - build:centos:centos7:amd64 + +unittest:debian:sid:amd64: + <<: *debian_sid_amd64_image + <<: *unit_test_job + dependencies: + - build:debian:sid:amd64 + +unittest:debian:sid:i386: + <<: *debian_sid_i386_image + <<: *unit_test_job + dependencies: + - build:debian:sid:i386 + +systemtest:centos:centos6:amd64: + <<: *centos_centos6_amd64_image + <<: *system_test_job + dependencies: + - build:centos:centos6:amd64 + +systemtest:centos:centos7:amd64: + <<: *centos_centos7_amd64_image + <<: *system_test_job + dependencies: + - build:centos:centos7:amd64 + +systemtest:debian:sid:amd64: + <<: *debian_sid_amd64_image + <<: *system_test_job + dependencies: + - build:debian:sid:amd64 + +systemtest:debian:sid:i386: + <<: *debian_sid_i386_image + <<: *system_test_job + dependencies: + - build:debian:sid:i386 + +install:debian:sid:amd64: + <<: *debian_sid_amd64_image + <<: *install_test_job + dependencies: + - build:debian:sid:amd64 |