Commit 165813cc authored by Olivier Fourdan's avatar Olivier Fourdan
Browse files

Add gitlab CI



A very simple CI for now, just make sure it builds.

Largely inspired by the implementation in libinput by Peter Hutterer
<peter.hutterer@who-t.net>.
Signed-off-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Benjamin Tissoires's avatarBenjamin Tissoires <benjamin.tissoires@gmail.com>
Reviewed-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
parent 93c1eef3
Pipeline #369241 passed with stages
in 2 minutes and 10 seconds
#####################################################
# #
# THIS FILE IS GENERATED, DO NOT EDIT! #
# #
# Generated with "ci-fairy generate-template", edit #
# .gitlab-ci/ci.template and .gitlab-ci/config.yml #
# and rerun "ci-fairy generate-template" to change #
# this file. #
# #
#####################################################
.templates_sha: &template_sha 3d03cccd770c04e63b40325b42223495274d6a1d
include:
- project: 'freedesktop/ci-templates'
ref: *template_sha
file:
- '/templates/ci-fairy.yml'
- '/templates/fedora.yml'
stages:
- sanity check
- prep
- build
variables:
FDO_UPSTREAM_REPO: xorg/lib/libxcvt
MESON_BUILDDIR: "builddir"
NINJA_ARGS: ''
MESON_ARGS: ''
MESON_TEST_ARGS: ''
GIT_DEPTH: 1
.policy:
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
# cancel run when a newer version is pushed to the branch
interruptible: true
# Re-generate the CI script and make sure it's the one currently checked in
# If this job fails, re-generate the gitlab-ci.yml script, see
# $SRCDIR/.gitlab-ci/generate-gitlab-ci.py
#
check-ci-script:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy generate-template --verify && exit 0 || true
- echo "Committed gitlab-ci.yml differs from generated gitlab-ci.yml. Please verify"
- exit 1
#
# Verify that commit messages are as expected, signed-off, etc.
#
check-commit:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy check-commits --signed-off-by --junit-xml=results.xml
except:
- master@xorg/lib/libxcvt
variables:
GIT_DEPTH: 100
artifacts:
reports:
junit: results.xml
#
# Verify that merge request has the "allow collaboration" checkbox ticked
#
check-merge-request:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
artifacts:
when: on_failure
reports:
junit: results.xml
allow_failure: true
.fedora.34:
variables:
FDO_DISTRIBUTION_VERSION: '34'
FDO_DISTRIBUTION_TAG: '2021-07-26.0'
prep-fedora-34:
extends:
- .fdo.container-build@fedora
- .fedora.34
stage: prep
variables:
FDO_DISTRIBUTION_PACKAGES: "meson gcc"
build-fedora-34:
extends:
- .fdo.distribution-image@fedora
- .fedora.34
stage: build
script:
- .gitlab-ci/meson-build.sh
{# You're looking at the template here, so you can ignore the below
warning. This is the right file to edit #}
#####################################################
# #
# THIS FILE IS GENERATED, DO NOT EDIT! #
# #
# Generated with "ci-fairy generate-template", edit #
# .gitlab-ci/ci.template and .gitlab-ci/config.yml #
# and rerun "ci-fairy generate-template" to change #
# this file. #
# #
#####################################################
.templates_sha: &template_sha 3d03cccd770c04e63b40325b42223495274d6a1d
include:
- project: 'freedesktop/ci-templates'
ref: *template_sha
file:
- '/templates/ci-fairy.yml'
{% for d in distributions %}
- '/templates/{{d.name}}.yml'
{% endfor %}
stages:
- sanity check
- prep
- build
variables:
FDO_UPSTREAM_REPO: xorg/lib/libxcvt
MESON_BUILDDIR: "builddir"
NINJA_ARGS: ''
MESON_ARGS: ''
MESON_TEST_ARGS: ''
GIT_DEPTH: 1
.policy:
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
# cancel run when a newer version is pushed to the branch
interruptible: true
# Re-generate the CI script and make sure it's the one currently checked in
# If this job fails, re-generate the gitlab-ci.yml script, see
# $SRCDIR/.gitlab-ci/generate-gitlab-ci.py
#
check-ci-script:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy generate-template --verify && exit 0 || true
- echo "Committed gitlab-ci.yml differs from generated gitlab-ci.yml. Please verify"
- exit 1
#
# Verify that commit messages are as expected, signed-off, etc.
#
check-commit:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy check-commits --signed-off-by --junit-xml=results.xml
except:
- master@xorg/lib/libxcvt
variables:
GIT_DEPTH: 100
artifacts:
reports:
junit: results.xml
#
# Verify that merge request has the "allow collaboration" checkbox ticked
#
check-merge-request:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
artifacts:
when: on_failure
reports:
junit: results.xml
allow_failure: true
{% for d in distributions %}
.{{d.name}}.{{d.version}}:
variables:
FDO_DISTRIBUTION_VERSION: '{{d.version}}'
FDO_DISTRIBUTION_TAG: '{{d.tag}}'
prep-{{d.name}}-{{d.version}}:
extends:
- .fdo.container-build@{{d.name}}
- .{{d.name}}.{{d.version}}
stage: prep
variables:
FDO_DISTRIBUTION_PACKAGES: "{{' '.join(d.packages)}}"
build-{{d.name}}-{{d.version}}:
extends:
- .fdo.distribution-image@{{d.name}}
- .{{d.name}}.{{d.version}}
stage: build
script:
- .gitlab-ci/meson-build.sh
{% endfor %}
.default_tag: &default_tag '2021-07-26.0'
distributions:
- name: fedora
tag: *default_tag
version: 34
packages:
- meson
- gcc
#!/bin/bash
if [[ -f .meson_environment ]]; then
. .meson_environment
fi
if [[ -z "$MESON_BUILDDIR" ]]; then
echo "\$MESON_BUILDDIR undefined."
exit 1
fi
# emulate a few gitlab variables to make it easier to
# run and debug locally.
if [[ -z "$CI_JOB_ID" ]] || [[ -z "$CI_JOB_NAME" ]] || [[ -z "$CI_PROJECT_NAME" ]]; then
echo "Missing \$CI_JOB_ID or \$CI_JOB_NAME".
CI_PROJECT_NAME=$(basename $PWD)
CI_JOB_ID=$(date +%s)
CI_JOB_NAME='${CI_PROJECT_NAME}-job-local'
echo "Simulating gitlab environment: "
echo " CI_JOB_ID=$CI_JOB_ID"
echo " CI_JOB_NAME=$CI_JOB_NAME"
echo " CI_PROJECT_NAME=$CI_PROJECT_NAME"
fi
echo "*************************************************"
echo "builddir: $MESON_BUILDDIR"
echo "meson args: $MESON_ARGS"
echo "ninja args: $NINJA_ARGS"
echo "meson test args: $MESON_TEST_ARGS"
echo "*************************************************"
set -e
rm -rf "$MESON_BUILDDIR"
meson "$MESON_BUILDDIR" $MESON_ARGS
meson configure "$MESON_BUILDDIR"
ninja -C "$MESON_BUILDDIR" $NINJA_ARGS
if [[ -z "$MESON_TEST_ARGS" ]]; then
exit 0
fi
# we still want to generate the reports, even if meson test fails
meson test -C "$MESON_BUILDDIR" $MESON_TEST_ARGS --print-errorlogs
exit_code=$?
exit $exit_code
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment