From 70a79069f177eb90fc8daaea0d586ec069832d6f Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 1 Jul 2022 14:40:20 +1000 Subject: gitlab CI: pre-install all packages we need Running "dnf install" during a job can lead to issues when the image is old - package renames/replacements/etc. may require a dnf upgrade to get those packages sorted first before our dnf install works. This hasn't been a problem for us because we had weekly rebuilds of the images scheduled and were usually on the latest package set but let's do this properly anyway. Signed-off-by: Peter Hutterer --- .gitlab-ci.yml | 21 +++++++-------------- .gitlab-ci/ci.template | 7 ------- .gitlab-ci/config.yml | 6 +++++- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 01604818..c4edd3f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -76,7 +76,7 @@ variables: # See the documentation here: # # https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html # ############################################################################### - FEDORA_PACKAGES: 'git-core gcc gcc-c++ pkgconf-pkg-config meson check-devel libudev-devel libevdev-devel doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx_rtd_theme python3-pytest-xdist libwacom-devel cairo-devel gtk4-devel glib2-devel mtdev-devel diffutils wayland-protocols-devel valgrind systemd-udev qemu-img qemu-system-x86-core qemu-system-aarch64-core jq python3-click python3-rich' + FEDORA_PACKAGES: 'git-core gcc gcc-c++ pkgconf-pkg-config meson check-devel libudev-devel libevdev-devel doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx_rtd_theme python3-pytest-xdist libwacom-devel cairo-devel gtk4-devel glib2-devel mtdev-devel diffutils wayland-protocols-devel black clang-analyzer jq rpmdevtools valgrind systemd-udev qemu-img qemu-system-x86-core qemu-system-aarch64-core jq python3-click python3-rich' DEBIAN_PACKAGES: 'git gcc g++ pkg-config meson check libudev-dev libevdev-dev doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx-rtd-theme python3-pytest-xdist libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev curl' UBUNTU_PACKAGES: 'git gcc g++ pkg-config meson check libudev-dev libevdev-dev doxygen graphviz python3-sphinx python3-recommonmark python3-sphinx-rtd-theme python3-pytest-xdist libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev' ARCH_PACKAGES: 'git gcc pkgconfig meson check libsystemd libevdev doxygen graphviz python-sphinx python-recommonmark python-sphinx_rtd_theme python-pytest-xdist libwacom gtk4 mtdev diffutils wayland-protocols' @@ -88,12 +88,12 @@ variables: # changing these will force rebuilding the associated image # Note: these tags have no meaning and are not tied to a particular # libinput version - FEDORA_TAG: '2022-11-16.1' - DEBIAN_TAG: '2022-11-16.1' - UBUNTU_TAG: '2022-11-16.1' - ARCH_TAG: '2022-11-16.1' - ALPINE_TAG: '2022-11-16.1' - FREEBSD_TAG: '2022-11-16.1' + FEDORA_TAG: '2022-11-16.2' + DEBIAN_TAG: '2022-11-16.2' + UBUNTU_TAG: '2022-11-16.2' + ARCH_TAG: '2022-11-16.2' + ALPINE_TAG: '2022-11-16.2' + FREEBSD_TAG: '2022-11-16.2' FDO_UPSTREAM_REPO: libinput/libinput @@ -719,8 +719,6 @@ scan-build@fedora:36: variables: NINJA_ARGS: '' MESON_TEST_ARGS: '' - before_script: - - dnf install -y clang-analyzer script: - .gitlab-ci/meson-build.sh - export SCANBUILD="$PWD/.gitlab-ci/scanbuild-wrapper.sh" @@ -809,8 +807,6 @@ usr-bin-env-python@fedora:36: python-format@fedora:36: extends: - .fedora-build@template - before_script: - - dnf install -y black script: - black $(git grep -l '^#!/usr/bin/env python3') - git diff --exit-code || (echo "Please run Black against all Python files" && false) @@ -819,8 +815,6 @@ python-format@fedora:36: check-test-suites: extends: - .fedora-build@template - before_script: - - dnf install -y jq script: - meson builddir - meson introspect builddir --test | jq -r '.[].name' | grep 'libinput-test-suite' | sort > meson-testsuites @@ -1030,7 +1024,6 @@ build rpm: needs: - "fedora:36@container-prep" script: - - dnf install -y rpmdevtools jq - meson "$MESON_BUILDDIR" - VERSION=$(meson introspect "$MESON_BUILDDIR" --projectinfo | jq -r .version) - sed -e "s/@PIPELINEID@/${CI_PIPELINE_ID}/" diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template index 4f16f5c8..70a6fcd1 100644 --- a/.gitlab-ci/ci.template +++ b/.gitlab-ci/ci.template @@ -437,8 +437,6 @@ scan-build@{{distro.name}}:{{version}}: variables: NINJA_ARGS: '' MESON_TEST_ARGS: '' - before_script: - - dnf install -y clang-analyzer script: - .gitlab-ci/meson-build.sh - export SCANBUILD="$PWD/.gitlab-ci/scanbuild-wrapper.sh" @@ -527,8 +525,6 @@ usr-bin-env-python@{{distro.name}}:{{version}}: python-format@{{distro.name}}:{{version}}: extends: - .{{distro.name}}-build@template - before_script: - - dnf install -y black script: - black $(git grep -l '^#!/usr/bin/env python3') - git diff --exit-code || (echo "Please run Black against all Python files" && false) @@ -537,8 +533,6 @@ python-format@{{distro.name}}:{{version}}: check-test-suites: extends: - .{{distro.name}}-build@template - before_script: - - dnf install -y jq script: - meson builddir - meson introspect builddir --test | jq -r '.[].name' | grep 'libinput-test-suite' | sort > meson-testsuites @@ -693,7 +687,6 @@ build rpm: needs: - "fedora:36@container-prep" script: - - dnf install -y rpmdevtools jq - meson "$MESON_BUILDDIR" - VERSION=$(meson introspect "$MESON_BUILDDIR" --projectinfo | jq -r .version) - sed -e "s/@PIPELINEID@/${CI_PIPELINE_ID}/" diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml index bc5ad956..9e63be33 100644 --- a/.gitlab-ci/config.yml +++ b/.gitlab-ci/config.yml @@ -3,7 +3,7 @@ # # We're happy to rebuild all containers when one changes. -.default_tag: &default_tag '2022-11-16.1' +.default_tag: &default_tag '2022-11-16.2' distributions: - name: fedora @@ -35,6 +35,10 @@ distributions: - mtdev-devel - diffutils - wayland-protocols-devel + - black # for the Python black job, optional + - clang-analyzer # for the scan-build job, optional + - jq # for the test suite check job, optional + - rpmdevtools # for the rpm build job, optional - valgrind # for the valgrind run, optional # below packages are for the qemu runs, so optional - systemd-udev # for the qemu run -- cgit v1.2.1