From b84a4cf4e2fc37fba918a579322f615ea7bfcee1 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Mon, 20 Jun 2022 12:47:43 -0700 Subject: gitlab CI: add a test build of components depending on these macros Signed-off-by: Alan Coopersmith --- .gitlab-ci.yml | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 .gitlab-ci.yml (limited to '.gitlab-ci.yml') diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..fb893d0 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,152 @@ +# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml: +# +# This CI uses the freedesktop.org ci-templates. +# Please see the ci-templates documentation for details: +# https://freedesktop.pages.freedesktop.org/ci-templates/ + +.templates_sha: &template_sha 541748b7644201bac3e3b1ffd69f4ae67a678d93 # see https://docs.gitlab.com/ee/ci/yaml/#includefile + + +include: + # Arch container builder template + - project: 'freedesktop/ci-templates' + ref: *template_sha + file: '/templates/arch.yml' + - project: 'freedesktop/ci-templates' + ref: *template_sha + file: '/templates/ci-fairy.yml' + - template: Security/SAST.gitlab-ci.yml + + +stages: + - prep # prep work like rebuilding the container images if there is a change + - build # for actually building and testing things in a container + - test + - deploy + + +variables: + FDO_UPSTREAM_REPO: 'xorg/util/xcb-util-m4' + # The tag should be updated each time the list of packages is updated. + # Changing a tag forces the associated image to be rebuilt. + # Note: the tag has no meaning, we use a date format purely for readability + FDO_DISTRIBUTION_TAG: '2022-06-20.1' + FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake make xorg-util-macros xorgproto xcb-proto libxcb xcb-util xcb-util-image xcb-util-renderutil gperf python' + +# +# Verify that commit messages are as expected +# +check-commits: + extends: + - .fdo.ci-fairy + stage: prep + script: + - ci-fairy check-commits --junit-xml=results.xml + except: + - master@xorg/util/cf + variables: + GIT_DEPTH: 100 + artifacts: + reports: + junit: results.xml + +# +# Verify that the merge request has the allow-collaboration checkbox ticked +# +check-merge-request: + extends: + - .fdo.ci-fairy + stage: deploy + script: + - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml + artifacts: + when: on_failure + reports: + junit: results.xml + allow_failure: true + + +# +# Build a container with the given tag and the packages pre-installed. +# This only happens if the tag changes, otherwise the existing image is +# re-used. +# +container-prep: + extends: + - .fdo.container-build@arch + stage: prep + variables: + GIT_STRATEGY: none + + +# +# The default build, runs on the image built above. +# +.build-common: + stage: build + extends: + - .fdo.distribution-image@arch + script: + - cd .. + - rm -rf $UTIL_LIB + - git clone --depth=1 https://gitlab.freedesktop.org/xorg/lib/$UTIL_LIB + - pushd $UTIL_LIB > /dev/null + - git submodule init + - git submodule update + - pushd m4 > /dev/null + - git checkout master + - git pull ../../xcb-util-m4 + - popd > /dev/null + - autoreconf -ivf + - mkdir _builddir + - pushd _builddir > /dev/null + - ../configure --disable-silent-rules + - make + - make check + - make distcheck + - popd > /dev/null + - popd > /dev/null + +libxcb-cursor: + extends: + - .build-common + variables: + UTIL_LIB: libxcb-cursor + +libxcb-errors: + extends: + - .build-common + variables: + UTIL_LIB: libxcb-errors + +libxcb-image: + extends: + - .build-common + variables: + UTIL_LIB: libxcb-image + +libxcb-keysyms: + extends: + - .build-common + variables: + UTIL_LIB: libxcb-keysyms + +libxcb-render-util: + extends: + - .build-common + variables: + UTIL_LIB: libxcb-render-util + +libxcb-util: + extends: + - .build-common + variables: + UTIL_LIB: libxcb-util + +libxcb-wm: + extends: + - .build-common + variables: + UTIL_LIB: libxcb-wm + + -- cgit v1.2.1