gitlab CI: generate the various default-builds through templating

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2020-02-20 12:48:16 +10:00
parent 90888ab9f2
commit 02f5da42b2
3 changed files with 74 additions and 119 deletions

View file

@ -633,27 +633,12 @@ fedora:30@valgrind-pointer:
MESON_TEST_ARGS: '--setup=valgrind'
.fedora-build@template:
extends:
- .build@template
image: $FEDORA_CONTAINER_IMAGE
fedora:31@default-build:
stage: distro
extends:
- .fedora-build@template
variables:
FEDORA_VERSION: 31
needs: ['fedora:31@container-prep']
fedora:30@default-build:
stage: distro
extends:
- .fedora-build@template
variables:
FEDORA_VERSION: 30
needs: ['fedora:30@container-prep']
fedora:30@default-build-release:
stage: distro
extends:
@ -791,65 +776,74 @@ fedora:30@flake8:
- flake8-3 --ignore=W501,E501,W504 $(git grep -l '^#!/usr/bin/env python3')
needs: ['fedora:30@container-prep']
#
# Ubuntu
#
#################################################################
# #
# distro stage #
# #
#################################################################
.ubuntu@template:
fedora:30@default-build:
stage: distro
extends:
- .build@template
image: $FEDORA_CONTAINER_IMAGE
variables:
FEDORA_VERSION: '30'
needs: ['fedora:30@container-prep']
fedora:31@default-build:
stage: distro
extends:
- .build@template
image: $FEDORA_CONTAINER_IMAGE
variables:
FEDORA_VERSION: '31'
needs: ['fedora:31@container-prep']
ubuntu:19.10@default-build:
stage: distro
extends:
- .build@template
image: $UBUNTU_CONTAINER_IMAGE
ubuntu:19.10@default-build:
extends:
- .ubuntu@template
variables:
UBUNTU_VERSION: "19.10"
UBUNTU_VERSION: '19.10'
needs: ['ubuntu:19.10@container-prep']
ubuntu:19.04@default-build:
stage: distro
extends:
- .ubuntu@template
- .build@template
image: $UBUNTU_CONTAINER_IMAGE
variables:
UBUNTU_VERSION: "19.04"
UBUNTU_VERSION: '19.04'
needs: ['ubuntu:19.04@container-prep']
#
# Arch
#
.arch@template:
arch:rolling@default-build:
stage: distro
extends:
- .build@template
image: $ARCH_CONTAINER_IMAGE
arch:rolling@default-build:
extends:
- .arch@template
variables:
ARCH_VERSION: 'rolling'
needs: ['arch:rolling@container-prep']
#
# Alpine
#
.alpine@template:
alpine:latest@default-build:
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: ''
ALPINE_VERSION: 'latest'
MESON_ARGS: '-Ddocumentation=false' # alpine does not have python-recommonmark
MESON_TEST_ARGS: '' # litest-selftest fails on musl
needs: ['alpine:latest@container-prep']
#
# FreeBSD

View file

@ -12,7 +12,18 @@ distributions = [
{'name': 'ubuntu', 'version': '19.04'},
{'name': 'arch', 'version': 'rolling',
'flavor': 'archlinux'}, # see https://gitlab.freedesktop.org/wayland/ci-templates/merge_requests/19
{'name': 'alpine', 'version': 'latest'},
{
'name': 'alpine', 'version': 'latest',
'build': {
'extra_variables': [
'MESON_ARGS: \'-Ddocumentation=false\' # alpine does not have python-recommonmark',
# 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: \'\' # litest-selftest fails on musl',
]
},
}
]
# in reverse order of duration to get the slowest ones started first

View file

@ -461,27 +461,12 @@ fedora:30@valgrind-{{suite.name}}:
{% endfor %}
.fedora-build@template:
extends:
- .build@template
image: $FEDORA_CONTAINER_IMAGE
fedora:31@default-build:
stage: distro
extends:
- .fedora-build@template
variables:
FEDORA_VERSION: 31
needs: ['fedora:31@container-prep']
fedora:30@default-build:
stage: distro
extends:
- .fedora-build@template
variables:
FEDORA_VERSION: 30
needs: ['fedora:30@container-prep']
fedora:30@default-build-release:
stage: distro
extends:
@ -619,65 +604,30 @@ fedora:30@flake8:
- flake8-3 --ignore=W501,E501,W504 $(git grep -l '^#!/usr/bin/env python3')
needs: ['fedora:30@container-prep']
#
# Ubuntu
#
#################################################################
# #
# distro stage #
# #
#################################################################
.ubuntu@template:
{% for distro in distributions %}
{{distro.name}}:{{distro.version}}@default-build:
stage: distro
extends:
- .build@template
image: $UBUNTU_CONTAINER_IMAGE
ubuntu:19.10@default-build:
extends:
- .ubuntu@template
image: ${{distro.name.upper()}}_CONTAINER_IMAGE
variables:
UBUNTU_VERSION: "19.10"
needs: ['ubuntu:19.10@container-prep']
{{distro.name.upper()}}_VERSION: '{{distro.version}}'
{# Where we have extra_variables defined, add them to the list #}
{% if distro.build is defined and distro.build.extra_variables is defined %}
{% for var in distro.build.extra_variables %}
{{var}}
{% endfor %}
{% endif %}
needs: ['{{distro.name}}:{{distro.version}}@container-prep']
ubuntu:19.04@default-build:
extends:
- .ubuntu@template
variables:
UBUNTU_VERSION: "19.04"
needs: ['ubuntu:19.04@container-prep']
#
# Arch
#
.arch@template:
stage: distro
extends:
- .build@template
image: $ARCH_CONTAINER_IMAGE
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: ''
{% endfor %}
#
# FreeBSD