ci: Add Gitlab-CI configuration
authorSimon McVittie <smcv@collabora.com>
Wed, 3 Oct 2018 16:25:43 +0000 (17:25 +0100)
committerSimon McVittie <smcv@collabora.com>
Thu, 4 Oct 2018 15:54:10 +0000 (16:54 +0100)
This uses the same shell scripts as Travis-CI, with slightly different
settings. We use Docker containers for all our Gitlab-CI runs, so take
the opportunity to use Debian 9 'stretch' as our baseline, and
relegate Ubuntu 14.04 'trusty' to to a secondary build.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=108177
Acked-by: Philip Withnall <withnall@endlessm.com>
(cherry picked from commit 60933c09e9e891f74f0102fabe22d29a1a7ae5c5)

.gitlab-ci.yml [new file with mode: 0644]

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644 (file)
index 0000000..2c042aa
--- /dev/null
@@ -0,0 +1,132 @@
+# Copyright © 2015-2018 Collabora Ltd.
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+image: debian:stretch-slim
+
+stages:
+  - build
+
+before_script:
+  - ./tools/ci-install.sh
+
+variables:
+  ci_in_docker: "yes"
+  ci_parallel: "2"
+  ci_sudo: "yes"
+  ci_distro: "debian"
+  ci_suite: "stretch"
+
+build:production:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_variant: "production"
+  script: &script
+    - chown -R user .
+    - runuser -u user ./tools/ci-build.sh
+
+build:debug:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_variant: "debug"
+  script: *script
+
+build:reduced:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_variant: "reduced"
+  script: *script
+
+build:legacy:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_variant: "legacy"
+  script: *script
+
+build:cmake:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_buildsys: "cmake"
+  script: *script
+
+build:i686-w64-mingw32:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_host: "i686-w64-mingw32"
+  script: *script
+
+build:i686-w64-mingw32-cmake-debug:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_buildsys: "cmake"
+    ci_host: "i686-w64-mingw32"
+    ci_variant: "debug"
+  script: *script
+
+build:x86_64-w64-mingw32-debug:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_host: "i686-w64-mingw32"
+    ci_variant: "debug"
+  script: *script
+
+build:x86_64-w64-mingw32-cmake:
+  stage: build
+  image: "debian:stretch-slim"
+  variables:
+    ci_buildsys: "cmake"
+    ci_host: "i686-w64-mingw32"
+  script: *script
+
+build:jessie:
+  stage: build
+  image: "debian:jessie-slim"
+  variables:
+    ci_suite: "jessie"
+  script: *script
+
+build:xenial:
+  stage: build
+  image: "ubuntu:xenial"
+  variables:
+    ci_distro: "ubuntu"
+    ci_suite: "xenial"
+  script: *script
+
+build:trusty:
+  stage: build
+  image: "ubuntu:trusty"
+  variables:
+    ci_distro: "ubuntu"
+    ci_suite: "trusty"
+  script:
+    - chown -R user .
+    - sudo -u user -H ./tools/ci-build.sh
+
+# vim:set sw=2 sts=2 et: