diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2020-11-16 09:34:57 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2020-11-16 23:28:15 +0000 |
commit | 960e2e0cfac12c3477c672d0d40818a0dc74aca5 (patch) | |
tree | 9ac2dd6badf587a9239ba6ac9748c91666eefa06 /.gitlab-ci.yml | |
parent | dbb55e1a5e82870466b095097d9e46046680ec25 (diff) |
gitlab CI: add a basic build test
Using Arch as base distribution here because we can expect our dependencies to
be up-to-date. We rely on the Arch for our dependencies rather than building
those from git (notably: xorg-macros, xtrans and libxcb).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..0b34f645 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,102 @@ +# 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 c7702b1ae8507c5d5f34edcbf280f287ab541e8e # 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' + + +stages: + - prep # prep work like rebuilding the container images if there is a change + - build # for actually building and testing things in a container + - deploy + + +variables: + FDO_UPSTREAM_REPO: 'xorg/lib/libX11' + # 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: '2020-11-16.0' + FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake make xorg-util-macros xtrans xorgproto libxcb' + + +# +# Template for an image with ci-fairy installed +# +.ci_fairy_image: + image: python:alpine + before_script: + - apk add git + - pip install git+http://gitlab.freedesktop.org/freedesktop/ci-templates + +# +# Verify that commit messages are as expected, signed-off, etc. +# +check-commits: + extends: + - .ci_fairy_image + stage: prep + script: + - ci-fairy check-commits --signed-off-by --junit-xml=results.xml + except: + - master@xorg/lib/libX11 + variables: + GIT_DEPTH: 100 + artifacts: + reports: + junit: results.xml + +# +# Verify that the merge request has the allow-collaboration checkbox ticked +# +check-merge-request: + extends: + - .ci_fairy_image + 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 when 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: + stage: build + extends: + - .fdo.distribution-image@arch + script: + - autoreconf -ivf + - mkdir _builddir + - pushd _builddir > /dev/null + - ../configure --disable-silent-rules + - make + - make check + - make distcheck + - popd > /dev/null |