gitlab CI: add an alpine image
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 15 Oct 2019 06:03:46 +0000 (16:03 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 17 Oct 2019 10:56:33 +0000 (10:56 +0000)
Alpine uses musl, eudev and elogind, so it's useful to build on that to get
those covered.

Notably, ninja test is not run because the litest-selftest will fail for
tcase_add_exit_test() and tcase_add_test_raise_signal(). This may be due to
some missing bits in musl or check not using the feature test macros, etc.
Someone with time and motivation to have this actually work on musl can figure
that out.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
.gitlab-ci.yml

index 54bcdfd66badf4e393456befb83f152f8c9a0b46..6d7d71dd1dd6d92b8d872c18bc74ee6c0b1e803c 100644 (file)
 # <distribution>:<version>@activity:
 #  e.g. fedora:29@build-default
 
-.templates_sha: &template_sha ff90ddcf059bfce35bd5f9b89a59d5d0c912b458 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
+.templates_sha: &template_sha 5fa4c5aae3775014b99364efc65531037c2e7368 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
 
 include:
+  # Alpine container builder template
+  - project: 'wayland/ci-templates'
+    file: '/templates/alpine.yml'
   # Arch container builder template
   - project: 'wayland/ci-templates'
     ref: *template_sha
@@ -65,6 +68,7 @@ variables:
   ARCH_PKGS:          'git gcc         pkgconfig          meson check       libsystemd    libevdev       doxygen graphviz  python-sphinx  python-recommonmark python-sphinx_rtd_theme  libwacom                     gtk3                        mtdev      diffutils'
   FREEBSD_BUILD_PKGS: 'meson'
   FREEBSD_PKGS:       'libepoll-shim                                        libudev-devd  libevdev                                                                                     libwacom                     gtk3                        libmtdev   '
+  ALPINE_PKGS:        'git gcc build-base pkgconfig       meson check-dev   eudev-dev     libevdev-dev                                                                                 libwacom-dev   cairo-dev     gtk+3.0-dev  mtdev-dev bash'
   ############################ end of package lists #############################
 
   # these tags should be updated each time the list of packages is updated
@@ -74,6 +78,7 @@ variables:
   FEDORA_TAG: '2019-08-07.0'
   UBUNTU_TAG: '2019-08-07.0'
   ARCH_TAG: '2019-08-07.0'
+  ALPINE_TAG: '2019-10-15.5'
   FREEBSD_TAG: '2019-08-07.0'
   QEMU_TAG: 'qemu-vm-2019-10-04.0'
 
@@ -84,6 +89,7 @@ variables:
   FEDORA_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FEDORA_VERSION:$FEDORA_TAG
   UBUNTU_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/ubuntu/$UBUNTU_VERSION:$UBUNTU_TAG
   ARCH_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/archlinux/rolling:$ARCH_TAG
+  ALPINE_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/alpine/latest:$ALPINE_TAG
   FREEBSD_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/freebsd/11.2:$FREEBSD_TAG
   QEMU_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FEDORA_VERSION:$QEMU_TAG
 
@@ -216,6 +222,17 @@ arch:rolling@container-prep:
     TAG: $ARCH_TAG
   <<: *pull_upstream_or_rebuild
 
+alpine:latest@container-prep:
+  extends: .alpine@container-build
+  stage: container_prep
+  variables:
+    GIT_STRATEGY: none
+    ALPINE_VERSION: latest
+    DISTRIB_FLAVOR: alpine
+    DISTRIB_VERSION: $ALPINE_VERSION
+    TAG: $ALPINE_TAG
+  <<: *pull_upstream_or_rebuild
+
 .freebsd@container-prep:
   stage: container_prep
   image: $BUILDAH_IMAGE
@@ -361,6 +378,12 @@ arch:rolling@container-clean:
     GIT_STRATEGY: none
     CURRENT_CONTAINER_IMAGE: $ARCH_CONTAINER_IMAGE
 
+alpine:latest@container-clean:
+  extends: .container-clean
+  variables:
+    GIT_STRATEGY: none
+    CURRENT_CONTAINER_IMAGE: $ALPINE_CONTAINER_IMAGE
+
 freebsd:11.2@container-clean:
   extends: .container-clean
   variables:
@@ -621,6 +644,26 @@ arch:rolling@default-build:
   extends: .arch@template
   needs: ['arch:rolling@container-prep']
 
+#
+# Alpine
+#
+
+.alpine@template:
+  stage: distro
+  extends: .build@template
+  image: $ALPINE_CONTAINER_IMAGE
+
+alpine:latest@default-build:
+  extends: .alpine@template
+  needs: ['alpine:latest@container-prep']
+  variables:
+    # alpine doesn't have python-recommonmark
+    MESON_ARGS: '-Ddocumentation=false'
+    # We don't run the tests on alpine. The litest-selftest fails
+    # for any tcase_add_exit_test/tcase_add_test_raise_signal
+    # but someone more invested in musl will have to figure that out.
+    MESON_TEST_ARGS: ''
+
 #
 # FreeBSD
 #