xserver: Branch 'master' - 4 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 29 01:31:30 UTC 2024


 .gitlab-ci.yml                     |   34 ++++++--
 .gitlab-ci/check-piglit-results.sh |   15 +--
 .gitlab-ci/dist.sh                 |   14 ---
 .gitlab-ci/meson-build.sh          |  145 +++++++++++++++++++++++++++++++++++++
 4 files changed, 176 insertions(+), 32 deletions(-)

New commits:
commit 96b9bbe9fa4f443a7e205d17a989cfbf52cf6eda
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Feb 20 09:55:07 2024 +1000

    CI: replace the dist script with invocations of the meson-build script
    
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1317>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8fa00ba91..a7a1603b1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -113,7 +113,13 @@ meson-dist:
             - $MESON_BUILDDIR/meson-logs/
             - $MESON_BUILDDIR/xserver-*/$MESON_BUILDDIR/meson-logs/
     script:
-        - .gitlab-ci/dist.sh
+        - .gitlab-ci/meson-build.sh --run-dist
+        - mkdir xserver-tarball
+        - tar xf $MESON_BUILDDIR/meson-dist/xserver-*.tar.xz -C xserver-tarball --strip-components=1
+        - .gitlab-ci/meson-build.sh -C xserver-tarball --skip-test --skip-dist --run-install
+    variables:
+      MESON_DIST_ARGS: --no-tests
+      DESTDIR: xserver-tarball/install/
 
 #
 # Verify that commit messages are as expected
diff --git a/.gitlab-ci/dist.sh b/.gitlab-ci/dist.sh
deleted file mode 100755
index 29feebbfd..000000000
--- a/.gitlab-ci/dist.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-meson build/
-meson dist --no-tests -C build/
-
-cd build
-tar xf meson-dist/xserver-*.tar.xz
-cd xserver-*/
-
-meson -Dc_args="-fno-common" -Dprefix=/usr -Dwerror=true build/
-DESTDIR=$PWD/install/ ninja -j${FDO_CI_CONCURRENT:-4} -C build/ install
commit cd6840f18e6ea4c775149e2f1ae4c498bdb68b82
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Feb 20 09:48:12 2024 +1000

    CI: switch the mingw cross-compile job to use the meson build script too
    
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1317>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7c0af2546..8fa00ba91 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -101,8 +101,9 @@ meson-nolibdecor:
 mingw-cross-build:
     extends: .common-build-and-test
     script:
-        - meson --cross-file=.gitlab-ci/cross-i686-w64-mingw32.txt -Dglx=false -Dsecure-rpc=false -Dlisten_tcp=true $MESON_BUILDDIR/
-        - ninja -j${FDO_CI_CONCURRENT:-4} -C $MESON_BUILDDIR/ install
+        - .gitlab-ci/meson-build.sh --run-install
+    variables:
+      MESON_ARGS: --cross-file=.gitlab-ci/cross-i686-w64-mingw32.txt -Dglx=false -Dsecure-rpc=false -Dlisten_tcp=true
 
 meson-dist:
     extends: .common-build-and-test
commit ce2f24c510aa6f4856d81d796ef34ac97d78f500
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Feb 20 09:36:23 2024 +1000

    CI: switch to the meson-build.sh helper script
    
    This script does the same thing but has a few more toggles than our
    custom script which means we can set everything we need in the
    gitlab-ci.yml file and have it DTRT.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1317>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 99059c569..7c0af2546 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -64,6 +64,7 @@ debian-bullseye:
             - $MESON_BUILDDIR/meson-logs/
             - $MESON_BUILDDIR/test/piglit-results/
     variables:
+        MESON_ARGS: -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=true
         CCACHE_COMPILERCHECK: content
         CCACHE_DIR: /cache/xserver/cache
         LC_ALL: C.UTF-8
@@ -77,19 +78,24 @@ debian-bullseye:
 meson:
     extends: .common-build-and-test
     script:
-        - .gitlab-ci/build-and-test.sh
+        - .gitlab-ci/meson-build.sh --run-test
+        - .gitlab-ci/check-piglit-results.sh
         - .gitlab-ci/manpages-check
+    variables:
+      XTEST_DIR: /root/xts
+      PIGLIT_DIR: /root/piglit
+      LP_NUM_THREADS: 0
 
 meson-noglamor:
     extends: meson
     variables:
-        MESON_EXTRA_OPTIONS: >
+        MESON_EXTRA_ARGS: >
           -Dglamor=false
 
 meson-nolibdecor:
     extends: meson
     variables:
-        MESON_EXTRA_OPTIONS: >
+        MESON_EXTRA_ARGS: >
           -Dlibdecor=false
 
 mingw-cross-build:
diff --git a/.gitlab-ci/build-and-test.sh b/.gitlab-ci/check-piglit-results.sh
similarity index 61%
rename from .gitlab-ci/build-and-test.sh
rename to .gitlab-ci/check-piglit-results.sh
index 346c9d739..182579ed2 100755
--- a/.gitlab-ci/build-and-test.sh
+++ b/.gitlab-ci/check-piglit-results.sh
@@ -4,7 +4,8 @@ set -e
 set -o xtrace
 
 if [[ -z "$MESON_BUILDDIR" ]]; then
-    MESON_BUILDDIR=build
+    echo "\$MESON_BUILDDIR not set"
+    exit 1
 fi
 
 check_piglit_results ()
@@ -24,12 +25,6 @@ check_piglit_results ()
     exit 1
 }
 
-meson -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=true $MESON_EXTRA_OPTIONS "$MESON_BUILDDIR/"
-
-export PIGLIT_DIR=/root/piglit XTEST_DIR=/root/xts LP_NUM_THREADS=0
-ninja -j${FDO_CI_CONCURRENT:-4} -C "$MESON_BUILDDIR/"
-meson test --num-processes ${FDO_CI_CONCURRENT:-4} --print-errorlogs -C "$MESON_BUILDDIR/"
-
 check_piglit_results xephyr-glamor hw/kdrive/ephyr/Xephyr.p/ephyr_glamor.c.o
 check_piglit_results xvfb hw/vfb/Xvfb
 check_piglit_results xwayland hw/xwayland/Xwayland
diff --git a/.gitlab-ci/meson-build.sh b/.gitlab-ci/meson-build.sh
new file mode 100755
index 000000000..abc50b1c2
--- /dev/null
+++ b/.gitlab-ci/meson-build.sh
@@ -0,0 +1,145 @@
+#!/usr/bin/env bash
+#
+# This script is sourced from here:
+# https://gitlab.freedesktop.org/whot/meson-helper
+#
+# SPDX-License-Identifier: MIT
+#
+# Usage:
+#     meson-build.sh
+#       [-C directory]			... change to directory before doing anything
+#	[--skip-build]			... skip the compilation
+#	[--skip-test|--run-test]	... skip or explicitly run meson test
+#	[--skip-dist|--run-dist]	... skip or explicitly run meson dist
+#	[--skip-install|--run-install]	... skip or explicitly run meson install
+#
+#
+# Environment variables:
+#    If the .meson_environment file exists in $PWD, it is sourced at the start of the script.
+#    This file is sourced before the -C directory option takes effect.
+#
+#    MESON_BUILDDIR
+#    MESON_ARGS, MESON_EXTRA_ARGS:
+#	Args passed to meson setup. The MESON_EXTRA_ARGS exist to make it easier for
+#	callers to have a default set of arguments and a variable set of arguments.
+#    MESON_TEST_ARGS, MESON_DIST_ARGS, MESON_INSTALL_ARGS:
+#	Args passed directly to the respective meson command. If these args are set it implies
+#	--run-$cmd. Use --skip-$cmd to skip.
+#    NINJA_ARGS - args passed to ninja via meson compile
+
+set -x
+if [[ -f .meson_environment ]]; then
+	. .meson_environment
+fi
+
+# If test args are set, we assume we want to run the tests
+MESON_RUN_TEST="$MESON_TEST_ARGS"
+MESON_RUN_INSTALL="$MESON_INSTALL_ARGS"
+MESON_RUN_DIST="$MESON_DIST_ARGS"
+
+while [[ $# -gt 0 ]]; do
+	case $1 in
+		-C)
+			directory=$2
+			shift 2
+			pushd "$directory" || exit 1
+			;;
+		--skip-setup)
+			shift
+			MESON_SKIP_SETUP="1"
+			;;
+		--skip-build)
+			shift
+			MESON_SKIP_BUILD="1"
+			;;
+		--skip-test)
+			shift
+			MESON_RUN_TEST=""
+			;;
+		--run-test)
+			shift
+			MESON_RUN_TEST="1"
+			;;
+		--skip-dist)
+			shift
+			MESON_RUN_DIST=""
+			;;
+		--run-dist)
+			shift
+			MESON_RUN_DIST="1"
+			;;
+		--skip-install)
+			shift
+			MESON_RUN_INSTALL=""
+			;;
+		--run-install)
+			shift
+			MESON_RUN_INSTALL="1"
+			;;
+		*)
+			echo "Unknow commandline argument $1"
+			exit 1
+			;;
+	esac
+done
+
+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" ]]; 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"
+fi
+
+if [[ -n "$FDO_CI_CONCURRENT" ]]; then
+	jobcount="-j$FDO_CI_CONCURRENT"
+	export MESON_TESTTHREADS="$FDO_CI_CONCURRENT"
+fi
+
+if [[ -n "$MESON_EXTRA_ARGS" ]]; then
+	MESON_ARGS="$MESON_ARGS $MESON_EXTRA_ARGS"
+fi
+
+echo "*************************************************"
+echo "builddir: $MESON_BUILDDIR"
+echo "meson args: $MESON_ARGS"
+echo "ninja args: $NINJA_ARGS"
+echo "meson test args: $MESON_TEST_ARGS"
+echo "job count: ${jobcount-0}"
+echo "*************************************************"
+
+set -e
+
+if [[ -z "$MESON_SKIP_SETUP" ]]; then
+	rm -rf "$MESON_BUILDDIR"
+	meson setup "$MESON_BUILDDIR" $MESON_ARGS
+fi
+meson configure "$MESON_BUILDDIR"
+
+if [[ -z "$MESON_SKIP_BUILD" ]]; then
+	if [[ -n "$NINJA_ARGS" ]]; then
+		ninja_args="--ninja-args $NINJA_ARGS"
+	fi
+	meson compile -v -C "$MESON_BUILDDIR" $jobcount $ninja_args
+fi
+
+if [[ -n "$MESON_RUN_TEST" ]]; then
+	meson test -C "$MESON_BUILDDIR" --print-errorlogs $MESON_TEST_ARGS
+fi
+
+if [[ -n "$MESON_RUN_INSTALL" ]]; then
+	meson install --no-rebuild  -C "$MESON_BUILDDIR" $MESON_INSTALL_ARGS
+fi
+
+if [[ -n "$MESON_RUN_DIST" ]]; then
+	meson dist -C "$MESON_BUILDDIR" $MESON_DIST_ARGS
+fi
commit 0ab32a7587686f28e20c0a8e1a212a5a85052ee7
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Feb 20 09:21:45 2024 +1000

    CI: use MESON_BUILDDIR for the build directory
    
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1317>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 30f1e208a..99059c569 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,6 +20,7 @@ variables:
     FDO_DISTRIBUTION_VERSION: bullseye-slim
     FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/debian-install.sh'
     FDO_DISTRIBUTION_TAG: "2023-06-20-libei.0"
+    MESON_BUILDDIR: "build"
 
 include:
   - project: 'freedesktop/ci-templates'
@@ -60,8 +61,8 @@ debian-bullseye:
     artifacts:
         when: always
         paths:
-            - build/meson-logs/
-            - build/test/piglit-results/
+            - $MESON_BUILDDIR/meson-logs/
+            - $MESON_BUILDDIR/test/piglit-results/
     variables:
         CCACHE_COMPILERCHECK: content
         CCACHE_DIR: /cache/xserver/cache
@@ -94,16 +95,16 @@ meson-nolibdecor:
 mingw-cross-build:
     extends: .common-build-and-test
     script:
-        - meson --cross-file=.gitlab-ci/cross-i686-w64-mingw32.txt -Dglx=false -Dsecure-rpc=false -Dlisten_tcp=true build/
-        - ninja -j${FDO_CI_CONCURRENT:-4} -C build/ install
+        - meson --cross-file=.gitlab-ci/cross-i686-w64-mingw32.txt -Dglx=false -Dsecure-rpc=false -Dlisten_tcp=true $MESON_BUILDDIR/
+        - ninja -j${FDO_CI_CONCURRENT:-4} -C $MESON_BUILDDIR/ install
 
 meson-dist:
     extends: .common-build-and-test
     artifacts:
         when: always
         paths:
-            - build/meson-logs/
-            - build/xserver-*/build/meson-logs/
+            - $MESON_BUILDDIR/meson-logs/
+            - $MESON_BUILDDIR/xserver-*/$MESON_BUILDDIR/meson-logs/
     script:
         - .gitlab-ci/dist.sh
 
diff --git a/.gitlab-ci/build-and-test.sh b/.gitlab-ci/build-and-test.sh
index b0fbf90d5..346c9d739 100755
--- a/.gitlab-ci/build-and-test.sh
+++ b/.gitlab-ci/build-and-test.sh
@@ -3,10 +3,14 @@
 set -e
 set -o xtrace
 
+if [[ -z "$MESON_BUILDDIR" ]]; then
+    MESON_BUILDDIR=build
+fi
+
 check_piglit_results ()
 {
-    local EXPECTED_RESULTS=build/test/piglit-results/$1
-    local DEPENDENCY=build/$2
+    local EXPECTED_RESULTS="$MESON_BUILDDIR"/test/piglit-results/$1
+    local DEPENDENCY="$MESON_BUILDDIR"/$2
 
     if ! test -e $DEPENDENCY; then
 	return
@@ -20,11 +24,11 @@ check_piglit_results ()
     exit 1
 }
 
-meson -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=true $MESON_EXTRA_OPTIONS build/
+meson -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=true $MESON_EXTRA_OPTIONS "$MESON_BUILDDIR/"
 
 export PIGLIT_DIR=/root/piglit XTEST_DIR=/root/xts LP_NUM_THREADS=0
-ninja -j${FDO_CI_CONCURRENT:-4} -C build/
-meson test --num-processes ${FDO_CI_CONCURRENT:-4} --print-errorlogs -C build/
+ninja -j${FDO_CI_CONCURRENT:-4} -C "$MESON_BUILDDIR/"
+meson test --num-processes ${FDO_CI_CONCURRENT:-4} --print-errorlogs -C "$MESON_BUILDDIR/"
 
 check_piglit_results xephyr-glamor hw/kdrive/ephyr/Xephyr.p/ephyr_glamor.c.o
 check_piglit_results xvfb hw/vfb/Xvfb


More information about the xorg-commit mailing list