######################################## # # # THIS FILE IS GENERATED, DO NOT EDIT # # # ######################################## .templates_sha: &template_sha 8410d3382c4ba5e83da76a027cb332169f2a95ad # see https://docs.gitlab.com/ee/ci/yaml/#includefile include: # Alpine container builder template - project: 'wayland/ci-templates' ref: *template_sha file: '/templates/alpine.yml' # Arch container builder template - project: 'wayland/ci-templates' ref: *template_sha file: '/templates/arch.yml' # Centos container builder template - project: 'wayland/ci-templates' ref: *template_sha file: '/templates/centos.yml' # Debian container builder template - project: 'wayland/ci-templates' ref: *template_sha file: '/templates/debian.yml' # Fedora container builder template - project: 'wayland/ci-templates' ref: *template_sha file: '/templates/fedora.yml' # Ubuntu container builder template - project: 'wayland/ci-templates' ref: *template_sha file: '/templates/ubuntu.yml' stages: - prep # rebuild the container images if there is a change - build # for actually building and testing things in a container - VM # for running the test suite in a VM - autotools # distribution builds with autotools - meson # distribution builds with meson - tarballs # tarball builds - container_clean # clean up unused container images variables: ############################################################################### # This is the list of packages required to build libevdev with the default # # configuration. # # # # Run dnf install/apt-get install/.. with the list of packages for your # # distribution # ############################################################################### FEDORA_RPMS: 'git gcc gcc-c++ meson automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils doxygen xz clang-analyzer' CENTOS_RPMS: 'git gcc gcc-c++ automake autoconf libtool make pkgconfig python3 check-devel valgrind binutils xz' UBUNTU_DEBS: 'git gcc g++ meson automake autoconf libtool make pkg-config python3 check valgrind binutils doxygen xz-utils' DEBIAN_DEBS: $UBUNTU_DEBS ARCH_PKGS: 'git gcc meson automake autoconf libtool make pkgconfig python3 check valgrind binutils doxygen' ALPINE_PKGS: 'git gcc g++ meson automake autoconf libtool make pkgconfig python3 check-dev valgrind binutils doxygen xz linux-headers' ############################ end of package lists ############################# # these tags should be updated each time the list of packages is updated # changing these will force rebuilding the associated image # Note: these tags have no meaning and are not tied to a particular # libevdev version FEDORA_TAG: '2020-02-26.4' CENTOS_TAG: '2020-02-26.4' DEBIAN_TAG: '2020-02-26.4' UBUNTU_TAG: '2020-02-26.4' ARCH_TAG: '2020-02-26.4' ALPINE_TAG: '2020-02-26.4' QEMU_TAG: 'qemu-2020-02-26.4' UPSTREAM_REPO: libevdev/libevdev BUILDAH_IMAGE: $CI_REGISTRY/wayland/ci-templates/buildah:latest FEDORA_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FEDORA_VERSION:$FEDORA_TAG CENTOS_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$CENTOS_VERSION:$CENTOS_TAG UBUNTU_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/ubuntu/$UBUNTU_VERSION:$UBUNTU_TAG DEBIAN_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG ARCH_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/arch/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 MESON_BUILDDIR: 'build dir' .default_artifacts: artifacts: paths: - _build/test/test-suite.log - $MESON_BUILDDIR/meson-logs/ expire_in: 1 week when: on_failure reports: junit: $MESON_BUILDDIR/junit-*.xml .autotools_build: extends: - .default_artifacts script: - mkdir _build - pushd _build > /dev/null - ../autogen.sh --disable-silent-rules $CONFIGURE_FLAGS - make - make check - if ! [[ -z "$MAKE_ARGS" ]]; then make $MAKE_ARGS; fi - popd > /dev/null .meson_build: extends: - .default_artifacts script: - .gitlab-ci/meson-build.sh ################################################################# # # # prep stage # # # ################################################################# # 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: image: golang:alpine stage: prep before_script: - apk add python3 git - pip3 install --user jinja2 PyYAML script: - python3 ./.gitlab-ci/generate-gitlab-ci.py - git diff --exit-code && exit 0 || true - echo "Committed gitlab-ci.yml differs from generated gitlab-ci.yml. Please verify" - exit 1 check-commit: image: golang:alpine stage: prep before_script: - apk add python3 git script: - pip3 install GitPython - pip3 install pytest - | pytest --junitxml=results.xml \ --tb=line \ --assert=plain \ ./.gitlab-ci/check-commit.py except: - master@libevdev/libevdev variables: GIT_DEPTH: 100 artifacts: expire_in: 1 week when: on_failure paths: - results.xml reports: junit: results.xml .pull_upstream_or_rebuild: before_script: # log in to the registry - podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY # get the full container image name (DISTRIB_VERSION still has indirections) - IMAGE=$(eval echo "$DISTRIB_NAME/$DISTRIB_VERSION:$TAG") - | # force rebuild if schedule, reuse otherwise if [[ $CI_PIPELINE_SOURCE != "schedule" ]] ; then # pull the latest upstream image if it exists skopeo copy docker://$CI_REGISTRY/$UPSTREAM_REPO/$IMAGE \ docker://$CI_REGISTRY_IMAGE/$IMAGE && exit 0 || true ; # check if our image is already in the current registry 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_NAME: fedora DISTRIB_VERSION: $FEDORA_VERSION TAG: $QEMU_TAG allow_failure: true ### fedora 30 fedora:30@container-prep: extends: - .fedora@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none FEDORA_VERSION: '30' DISTRIB_NAME: fedora DISTRIB_VERSION: $FEDORA_VERSION TAG: $FEDORA_TAG ### fedora 31 fedora:31@container-prep: extends: - .fedora@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none FEDORA_VERSION: '31' DISTRIB_NAME: fedora DISTRIB_VERSION: $FEDORA_VERSION TAG: $FEDORA_TAG ### ubuntu 19.10 ubuntu:19.10@container-prep: extends: - .ubuntu@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none UBUNTU_VERSION: '19.10' DISTRIB_NAME: ubuntu DISTRIB_VERSION: $UBUNTU_VERSION TAG: $UBUNTU_TAG ### ubuntu 19.04 ubuntu:19.04@container-prep: extends: - .ubuntu@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none UBUNTU_VERSION: '19.04' DISTRIB_NAME: ubuntu DISTRIB_VERSION: $UBUNTU_VERSION TAG: $UBUNTU_TAG ### debian stable debian:stable@container-prep: extends: - .debian@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none DEBIAN_VERSION: 'stable' DISTRIB_NAME: debian DISTRIB_VERSION: $DEBIAN_VERSION TAG: $DEBIAN_TAG ### debian sid debian:sid@container-prep: extends: - .debian@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none DEBIAN_VERSION: 'sid' DISTRIB_NAME: debian DISTRIB_VERSION: $DEBIAN_VERSION TAG: $DEBIAN_TAG ### centos 7 centos:7@container-prep: extends: - .centos@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none CENTOS_VERSION: '7' DISTRIB_NAME: centos DISTRIB_VERSION: $CENTOS_VERSION TAG: $CENTOS_TAG ### centos 8 centos:8@container-prep: extends: - .centos@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none CENTOS_VERSION: '8' DISTRIB_NAME: centos DISTRIB_VERSION: $CENTOS_VERSION TAG: $CENTOS_TAG ### arch rolling arch:rolling@container-prep: extends: - .arch@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none ARCH_VERSION: 'rolling' DISTRIB_NAME: arch DISTRIB_VERSION: $ARCH_VERSION TAG: $ARCH_TAG ### alpine latest alpine:latest@container-prep: extends: - .alpine@container-build - .pull_upstream_or_rebuild stage: prep variables: GIT_STRATEGY: none ALPINE_VERSION: 'latest' DISTRIB_NAME: alpine DISTRIB_VERSION: $ALPINE_VERSION TAG: $ALPINE_TAG ################################################################# # # # container clean stage # # run during the clean stage # # # ################################################################# # # This stage will look for the container images we currently have in # the registry and will remove any that are not tagged with the provided # $container_image:$tag # .container-clean: stage: container_clean image: $BUILDAH_IMAGE script: # get the full container image name (CURRENT_CONTAINER_IMAGE still has indirections) - CONTAINER_IMAGE=$(eval echo "$CURRENT_CONTAINER_IMAGE") - GITLAB=$(echo $CI_PROJECT_URL | cut -f3 -d/) - REPOSITORY=$(echo $CONTAINER_IMAGE | cut -f2- -d/ | cut -f1 -d:) - IMAGE_PATH=$(echo $CONTAINER_IMAGE | cut -f1 -d:) - LATEST_TAG=$(echo $CONTAINER_IMAGE | cut -f2 -d:) # log in to the registry (read only) - podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY # get the r/w token from the settings to access the registry # # each developer needs to register a secret variable that contains # a personal token with api access. The token # - must be named PERSONAL_TOKEN_$USER (for example PERSONAL_TOKEN_bentiss) # - must be registered in the CI/CD Variables section as type file # - value must be a netrc file as a single-line string: # default login password # e.g. "default login bentiss password 1235abcde" - tokenname="PERSONAL_TOKEN_$GITLAB_USER_LOGIN" - netrcfile=$(eval echo "\$$tokenname") - if [[ ! -f "$netrcfile" ]]; then echo "No netrc file found or token is missing, skipping job" && false; fi # request a token for the registry API - REGISTRY_TOKEN=$(curl https://$GITLAB/jwt/auth --get --silent --show-error -d client_id=docker -d offline_token=true -d service=container_registry -d "scope=repository:$REPOSITORY:pull,*" --fail --netrc-file "$netrcfile" | sed -r 's/(\{"token":"|"\})//g') # get the digest of the latest image - LATEST_MANIFEST=$(skopeo inspect docker://$IMAGE_PATH:$LATEST_TAG | jq -r '.Digest') # get the list of tags - TAGS=$(skopeo inspect docker://$IMAGE_PATH:$LATEST_TAG | jq -r '.RepoTags[]') # FIXME: is the above command working properly? If not, use below: # - TAGS=$(curl -X GET -H "accept:application/vnd.docker.distribution.manifest.v2+json" # -H "authorization:Bearer $REGISTRY_TOKEN" # https://$CI_REGISTRY/v2/$REPOSITORY/tags/list | jq -r '.tags[]') # iterate over the tags - for tag in $TAGS; do MANIFEST=$(skopeo inspect docker://$IMAGE_PATH:$tag | jq -r '.Digest'); if test x"$MANIFEST" != x"$LATEST_MANIFEST"; then echo removing $tag as $MANIFEST; curl https://$CI_REGISTRY/v2/$REPOSITORY/manifests/$MANIFEST --silent -H "accept:application/vnd.docker.distribution.manifest.v2+json" -H "authorization:Bearer $REGISTRY_TOKEN" --fail --show-error -X DELETE || true ;fi ;done dependencies: [] allow_failure: true only: - schedules variables: GIT_STRATEGY: none ### fedora 30 fedora:30@container-clean: extends: .container-clean variables: FEDORA_VERSION: '30' CURRENT_CONTAINER_IMAGE: $FEDORA_CONTAINER_IMAGE ### fedora 31 fedora:31@container-clean: extends: .container-clean variables: FEDORA_VERSION: '31' CURRENT_CONTAINER_IMAGE: $FEDORA_CONTAINER_IMAGE ### ubuntu 19.10 ubuntu:19.10@container-clean: extends: .container-clean variables: UBUNTU_VERSION: '19.10' CURRENT_CONTAINER_IMAGE: $UBUNTU_CONTAINER_IMAGE ### ubuntu 19.04 ubuntu:19.04@container-clean: extends: .container-clean variables: UBUNTU_VERSION: '19.04' CURRENT_CONTAINER_IMAGE: $UBUNTU_CONTAINER_IMAGE ### debian stable debian:stable@container-clean: extends: .container-clean variables: DEBIAN_VERSION: 'stable' CURRENT_CONTAINER_IMAGE: $DEBIAN_CONTAINER_IMAGE ### debian sid debian:sid@container-clean: extends: .container-clean variables: DEBIAN_VERSION: 'sid' CURRENT_CONTAINER_IMAGE: $DEBIAN_CONTAINER_IMAGE ### centos 7 centos:7@container-clean: extends: .container-clean variables: CENTOS_VERSION: '7' CURRENT_CONTAINER_IMAGE: $CENTOS_CONTAINER_IMAGE ### centos 8 centos:8@container-clean: extends: .container-clean variables: CENTOS_VERSION: '8' CURRENT_CONTAINER_IMAGE: $CENTOS_CONTAINER_IMAGE ### arch rolling arch:rolling@container-clean: extends: .container-clean variables: ARCH_VERSION: 'rolling' CURRENT_CONTAINER_IMAGE: $ARCH_CONTAINER_IMAGE ### alpine latest alpine:latest@container-clean: extends: .container-clean variables: ALPINE_VERSION: 'latest' CURRENT_CONTAINER_IMAGE: $ALPINE_CONTAINER_IMAGE ################################################################# # # # build stage # # # ################################################################# .autotools-build@template: extends: - .autotools_build stage: build dependencies: [] variables: MAKE_ARGS: "distcheck" .meson-build@template: extends: - .meson_build stage: build dependencies: [] variables: NINJA_ARGS: "dist" fedora:30@autotools-build: extends: .autotools-build@template stage: autotools image: $FEDORA_CONTAINER_IMAGE variables: FEDORA_VERSION: '30' needs: ['fedora:30@container-prep'] fedora:30@meson-build: extends: .meson-build@template stage: meson image: $FEDORA_CONTAINER_IMAGE variables: FEDORA_VERSION: '30' needs: ['fedora:30@container-prep'] fedora:31@autotools-build: extends: .autotools-build@template stage: autotools image: $FEDORA_CONTAINER_IMAGE variables: FEDORA_VERSION: '31' needs: ['fedora:31@container-prep'] fedora:31@meson-build: extends: .meson-build@template stage: meson image: $FEDORA_CONTAINER_IMAGE variables: FEDORA_VERSION: '31' needs: ['fedora:31@container-prep'] ubuntu:19.10@autotools-build: extends: .autotools-build@template stage: autotools image: $UBUNTU_CONTAINER_IMAGE variables: UBUNTU_VERSION: '19.10' needs: ['ubuntu:19.10@container-prep'] ubuntu:19.10@meson-build: extends: .meson-build@template stage: meson image: $UBUNTU_CONTAINER_IMAGE variables: UBUNTU_VERSION: '19.10' needs: ['ubuntu:19.10@container-prep'] ubuntu:19.04@autotools-build: extends: .autotools-build@template stage: autotools image: $UBUNTU_CONTAINER_IMAGE variables: UBUNTU_VERSION: '19.04' needs: ['ubuntu:19.04@container-prep'] ubuntu:19.04@meson-build: extends: .meson-build@template stage: meson image: $UBUNTU_CONTAINER_IMAGE variables: UBUNTU_VERSION: '19.04' needs: ['ubuntu:19.04@container-prep'] debian:stable@autotools-build: extends: .autotools-build@template stage: autotools image: $DEBIAN_CONTAINER_IMAGE variables: DEBIAN_VERSION: 'stable' needs: ['debian:stable@container-prep'] debian:stable@meson-build: extends: .meson-build@template stage: meson image: $DEBIAN_CONTAINER_IMAGE variables: DEBIAN_VERSION: 'stable' needs: ['debian:stable@container-prep'] debian:sid@autotools-build: extends: .autotools-build@template stage: autotools image: $DEBIAN_CONTAINER_IMAGE variables: DEBIAN_VERSION: 'sid' needs: ['debian:sid@container-prep'] debian:sid@meson-build: extends: .meson-build@template stage: meson image: $DEBIAN_CONTAINER_IMAGE variables: DEBIAN_VERSION: 'sid' needs: ['debian:sid@container-prep'] centos:7@autotools-build: extends: .autotools-build@template stage: autotools image: $CENTOS_CONTAINER_IMAGE variables: CENTOS_VERSION: '7' MAKE_ARGS: '' # disable distcheck, requires doxygen needs: ['centos:7@container-prep'] centos:8@autotools-build: extends: .autotools-build@template stage: autotools image: $CENTOS_CONTAINER_IMAGE variables: CENTOS_VERSION: '8' MAKE_ARGS: '' # disable distcheck, requires doxygen needs: ['centos:8@container-prep'] arch:rolling@autotools-build: extends: .autotools-build@template stage: autotools image: $ARCH_CONTAINER_IMAGE variables: ARCH_VERSION: 'rolling' needs: ['arch:rolling@container-prep'] arch:rolling@meson-build: extends: .meson-build@template stage: meson image: $ARCH_CONTAINER_IMAGE variables: ARCH_VERSION: 'rolling' needs: ['arch:rolling@container-prep'] alpine:latest@autotools-build: extends: .autotools-build@template stage: autotools image: $ALPINE_CONTAINER_IMAGE variables: ALPINE_VERSION: 'latest' needs: ['alpine:latest@container-prep'] alpine:latest@meson-build: extends: .meson-build@template stage: meson image: $ALPINE_CONTAINER_IMAGE variables: ALPINE_VERSION: 'latest' needs: ['alpine:latest@container-prep'] # Build argument tests # # We only run the build option combinations on one image # because they're supposed to fail equally on all .fedora-custom-build@autotools-template: extends: .autotools-build@template stage: build image: $FEDORA_CONTAINER_IMAGE variables: FEDORA_VERSION: 31 needs: ['fedora:31@container-prep'] no-valgrind:autotools: extends: .fedora-custom-build@autotools-template before_script: - dnf remove -y valgrind no-check:autotools: extends: .fedora-custom-build@autotools-template before_script: - dnf remove -y check check-devel no-doxygen:autotools: extends: .fedora-custom-build@autotools-template before_script: - dnf remove -y doxygen variables: MAKE_ARGS: '' # disable distcheck, requires doxygen # doxygen is required for distcheck no-doxygen-check-valgrind:autotools: extends: .fedora-custom-build@autotools-template before_script: - dnf remove -y doxygen valgrind check check-devel variables: MAKE_ARGS: '' # disable distcheck, requires doxygen no-nm:autotools: extends: .fedora-custom-build@autotools-template before_script: - mv /usr/bin/nm /usr/bin/nm.moved enable-gcov:autotools: extends: .fedora-custom-build@autotools-template variables: CONFIGURE_FLAGS: "--enable-gcov" .fedora-custom-build@meson-template: extends: .meson-build@template stage: build image: $FEDORA_CONTAINER_IMAGE variables: FEDORA_VERSION: 31 needs: ['fedora:31@container-prep'] no-valgrind:meson: extends: .fedora-custom-build@meson-template before_script: - dnf remove -y valgrind no-check:meson: extends: .fedora-custom-build@meson-template before_script: - dnf remove -y check check-devel variables: MESON_ARGS: -Dtests=disabled SKIP_MESON_TEST: 1 # doxygen is required for dist no-doxygen:meson: extends: .fedora-custom-build@meson-template before_script: - dnf remove -y doxygen variables: MESON_ARGS: -Ddocumentation=disabled NINJA_ARGS: '' # doxygen is required for dist no-doxygen-check-valgrind:meson: extends: .fedora-custom-build@meson-template before_script: - dnf remove -y doxygen valgrind check check-devel variables: MESON_ARGS: -Dtests=disabled -Ddocumentation=disabled NINJA_ARGS: '' SKIP_MESON_TEST: 1 enable-gcov:meson: extends: .fedora-custom-build@meson-template variables: MESON_ARGS: '-Dcoverity=true' scan-build:meson: extends: .fedora-custom-build@meson-template variables: NINJA_ARGS: 'scan-build' SKIP_MESON_TEST: 1 soname: stage: build image: $FEDORA_CONTAINER_IMAGE script: - ./autogen.sh --prefix=$PWD/prefix-autotools/ - make install - ls -l $PWD/prefix-autotools/lib/libevdev.so.2.3.0 - meson "$MESON_BUILDDIR" --prefix=$PWD/prefix-meson/ - ninja -C "$MESON_BUILDDIR" install - ls -l $PWD/prefix-meson/lib64/libevdev.so.2.3.0 variables: 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 reports: junit: $MESON_BUILDDIR/junit-*.xml 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 script: - export INSTALLDIR="$PWD/_inst" - mkdir _build - pushd _build > /dev/null - ../autogen.sh --disable-silent-rules $CONFIGURE_FLAGS - make - make distcheck - popd > /dev/null - mkdir -p _tarball_dir - tar xf _build/libevdev-*.tar.xz -C _tarball_dir - pushd _tarball_dir/libevdev-*/ > /dev/null - meson "$MESON_BUILDDIR" --prefix="$INSTALLDIR" - ninja -C "$MESON_BUILDDIR" test - ninja -C "$MESON_BUILDDIR" install - popd > /dev/null - ls -lR $INSTALLDIR variables: FEDORA_VERSION: 31 needs: ['fedora:31@container-prep'] autotools-from-tarball: stage: tarballs image: $FEDORA_CONTAINER_IMAGE script: - export INSTALLDIR="$PWD/_inst" - meson "$MESON_BUILDDIR" - ninja -C "$MESON_BUILDDIR" dist - mkdir -p _tarball_dir - tar xf "$MESON_BUILDDIR"/meson-dist/libevdev-*.xz -C _tarball_dir - pushd _tarball_dir/libevdev-*/ > /dev/null - mkdir _build - pushd _build > /dev/null - ../autogen.sh --disable-silent-rules --prefix="$INSTALLDIR" $CONFIGURE_FLAGS - make - make install - make distcheck - popd > /dev/null - popd > /dev/null - ls -lR $INSTALLDIR variables: FEDORA_VERSION: 31 needs: ['fedora:31@container-prep']