diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2020-02-18 20:22:12 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2020-02-19 08:49:02 +1000 |
commit | ada38025a2cb2294ef542bce3968af3021919a0e (patch) | |
tree | 18ea02dadca94b2a89caef70d47b1a64ed18ce5e /.gitlab-ci.yml | |
parent | f795694b2ea32ec8694e46942b37d6d88887f2ef (diff) | |
download | libevdev-ada38025a2cb2294ef542bce3968af3021919a0e.tar.gz |
gitlab CI: hook up qemu
This is mostly copied from libinput's qemu setup with a few minor renames.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 96 |
1 files changed, 90 insertions, 6 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9857570..81d072b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ # # THIS FILE IS GENERATED, DO NOT EDIT -.templates_sha: &template_sha 01f2a6a8ab5cd31000c1c14a1acfff68ea98b59e # see https://docs.gitlab.com/ee/ci/yaml/#includefile +.templates_sha: &template_sha b7030c2cd0d6ccc5f6d4f8299bafa4daa9240d71 # see https://docs.gitlab.com/ee/ci/yaml/#includefile include: # Alpine container builder template @@ -63,6 +63,7 @@ variables: UBUNTU_TAG: '2020-02-17.1' ARCH_TAG: '2020-02-17.1' ALPINE_TAG: '2020-02-17.1' + QEMU_TAG: 'qemu-2020-02-18.0' UPSTREAM_REPO: libevdev/libevdev BUILDAH_IMAGE: $CI_REGISTRY/wayland/ci-templates/buildah:latest @@ -72,6 +73,7 @@ variables: DEBIAN_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG ARCH_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/archlinux/rolling:$ARCH_TAG ALPINE_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/alpine/latest:$ALPINE_TAG + QEMU_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FEDORA_VERSION:$QEMU_TAG LIBEVDEV_SKIP_ROOT_TESTS: 1 GIT_DEPTH: 1 @@ -172,6 +174,22 @@ check-commit: skopeo inspect docker://$CI_REGISTRY_IMAGE/$IMAGE > /dev/null && exit 0 || true ; fi +fedora:31@qemu-prep: + extends: + - .fedora@qemu-build + - .pull_upstream_or_rebuild + stage: prep + tags: + - kvm + variables: + GIT_STRATEGY: none + FEDORA_VERSION: 31 + FEDORA_TAG: $QEMU_TAG + DISTRIB_FLAVOR: fedora + DISTRIB_VERSION: $FEDORA_VERSION + TAG: $QEMU_TAG + allow_failure: true + ### fedora 30 fedora:30@container-prep: @@ -755,11 +773,6 @@ enable-gcov:meson: variables: MESON_ARGS: '-Dcoverity=true' -valgrind:meson: - extends: .fedora-custom-build@meson-template - variables: - MESON_TEST_ARGS: '--setup=valgrind' - soname: stage: build image: $FEDORA_CONTAINER_IMAGE @@ -774,6 +787,77 @@ soname: FEDORA_VERSION: 31 needs: ['fedora:31@container-prep'] +################################################################# +# # +# VM stage # +# # +################################################################# + +.check_tainted: &check_tainted | + # make sure the kernel is not tainted + if [[ "$(ssh localhost -p 5555 cat /proc/sys/kernel/tainted)" -gt 0 ]]; + then + echo tainted kernel ; + exit 1 ; + fi + +.qemu@fedora:31: + stage: VM + image: $QEMU_CONTAINER_IMAGE + tags: + - kvm + variables: + FEDORA_VERSION: 31 + MESON_BUILDDIR: build_dir + script: + # start our vm, no args required + - /app/start_vm.sh + + - *check_tainted + + - "scp -P 5555 -r $PWD localhost:" + - echo "CI_JOB_ID=\"$CI_JOB_ID\"" > sshenv + - echo "CI_JOB_NAME=\"$CI_JOB_NAME\"" >> sshenv + - echo "MESON_BUILDDIR=\"$MESON_BUILDDIR\"" >> sshenv + - echo "MESON_TEST_ARGS=\"$MESON_TEST_ARGS\"" >> sshenv + - echo "NINJA_ARGS=\"$NINJA_ARGS\"" >> sshenv + - "scp -P 5555 sshenv localhost:~/$CI_PROJECT_NAME/.meson_environment" + - ssh localhost -p 5555 "cd $CI_PROJECT_NAME ; .gitlab-ci/meson-build.sh" && touch .success || true + # no matter the results of the tests, we want to fetch the logs + - scp -P 5555 -r localhost:$CI_PROJECT_NAME/"$MESON_BUILDDIR" . + + - *check_tainted + + - ssh localhost -p 5555 halt || true + - sleep 2 + - pkill qemu || true + + - if [[ ! -e .success ]] ; + then + exit 1 ; + fi + artifacts: + name: "qemu-meson-logs-$CI_JOB_NAME" + when: always + expire_in: 1 week + paths: + - $MESON_BUILDDIR/meson-logs + - console.out + + allow_failure: true + retry: + max: 2 + when: script_failure + needs: ['fedora:31@qemu-prep'] + +qemu:meson: + extends: .qemu@fedora:31 + +qemu:meson:valgrind: + extends: .qemu@fedora:31 + variables: + MESON_TEST_ARGS: '--setup=valgrind' + meson-from-tarball: stage: tarballs image: $FEDORA_CONTAINER_IMAGE |