.github: workflow for building Xservers and some drivers
Add a github workflow that builds the Xservers on Linux and also runs build-test of several common drivers against xorg sdk. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
		
							parent
							
								
									91932206b0
								
							
						
					
					
						commit
						69f97750ce
					
				| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
. .github/scripts/util.sh
 | 
			
		||||
 | 
			
		||||
export PKG_CONFIG_PATH="/usr/local/lib/x86_64-linux-gnu/pkgconfig/:$PKG_CONFIG_PATH"
 | 
			
		||||
export ACLOCAL_PATH="/usr/share/aclocal:/usr/local/share/aclocal"
 | 
			
		||||
export XORG_DRV_GIT=https://gitlab.freedesktop.org/xorg/driver
 | 
			
		||||
export XMTX_DRV_GIT=https://gitlab.freedesktop.org/metux/
 | 
			
		||||
 | 
			
		||||
mkdir -p $DRV_BUILD_DIR
 | 
			
		||||
cd $DRV_BUILD_DIR
 | 
			
		||||
 | 
			
		||||
# FIXME: add more drivers
 | 
			
		||||
build_drv_ac xf86-input-elographics $XORG_DRV_GIT/xf86-input-elographics xf86-input-elographics-1.4.4
 | 
			
		||||
build_drv_ac xf86-input-evdev       $XORG_DRV_GIT/xf86-input-evdev       xf86-input-evdev-2.10.6
 | 
			
		||||
build_drv_ac xf86-input-libinput    $XORG_DRV_GIT/xf86-input-libinput    xf86-input-libinput-1.4.0
 | 
			
		||||
build_drv_ac xf86-input-mouse       $XORG_DRV_GIT/xf86-input-mouse       master
 | 
			
		||||
build_drv_ac xf86-input-synaptics   $XORG_DRV_GIT/xf86-input-synaptics   xf86-input-synaptics-1.10.0
 | 
			
		||||
 | 
			
		||||
build_drv_ac xf86-video-amdgpu      $XORG_DRV_GIT/xf86-video-amdgpu      xf86-video-amdgpu-23.0.0
 | 
			
		||||
build_drv_ac xf86-video-ati         $XORG_DRV_GIT/xf86-video-ati         xf86-video-ati-22.0.0
 | 
			
		||||
build_drv_ac xf86-video-intel       $XMTX_DRV_GIT/xf86-video-intel.git   incubate # upstream broken against current Xserver
 | 
			
		||||
build_drv_ac xf86-video-nouveau     $XORG_DRV_GIT/xf86-video-nouveau     xf86-video-nouveau-1.0.18
 | 
			
		||||
build_drv_ac xf86-video-omap        $XORG_DRV_GIT/xf86-video-omap        master
 | 
			
		||||
build_drv_ac xf86-video-qxl         $XORG_DRV_GIT/xf86-video-qxl         master
 | 
			
		||||
build_drv_ac xf86-video-r128        $XORG_DRV_GIT/xf86-video-r128        master
 | 
			
		||||
build_drv_ac xf86-video-vesa        $XORG_DRV_GIT/xf86-video-vesa        xf86-video-vesa-2.6.0
 | 
			
		||||
build_drv_ac xf86-video-vmware      $XORG_DRV_GIT/xf86-video-vmware      xf86-video-vmware-13.4.0
 | 
			
		||||
 | 
			
		||||
# doesn't compile on Linux
 | 
			
		||||
# build_drv_ac xf86-input-keyboard    $XORG_DRV_GIT/xf86-input-keyboard    master
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
export X11_PREFIX=/home/runner/x11
 | 
			
		||||
export PATH="$X11_PREFIX/bin:$PATH"
 | 
			
		||||
export PKG_CONFIG_PATH="$X11_PREFIX/lib/x86_64-linux-gnu/pkgconfig:$X11_PREFIX/lib/pkgconfig:$X11_PREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
 | 
			
		||||
export FDO_CI_CONCURRENT=`nproc`
 | 
			
		||||
export X11_BUILD_DIR=/home/runner/build-deps
 | 
			
		||||
export DRV_BUILD_DIR=/home/runner/build-drivers
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
. .github/scripts/util.sh
 | 
			
		||||
 | 
			
		||||
mkdir -p $X11_BUILD_DIR
 | 
			
		||||
cd $X11_BUILD_DIR
 | 
			
		||||
 | 
			
		||||
build_meson   rendercheck       https://gitlab.freedesktop.org/xorg/test/rendercheck     rendercheck-1.6
 | 
			
		||||
build_meson   drm               https://gitlab.freedesktop.org/mesa/drm                  libdrm-2.4.121 \
 | 
			
		||||
    -Domap=enabled
 | 
			
		||||
build_meson   libxcvt           https://gitlab.freedesktop.org/xorg/lib/libxcvt          libxcvt-0.1.0
 | 
			
		||||
build_ac      xorgproto         https://gitlab.freedesktop.org/xorg/proto/xorgproto      xorgproto-2024.1
 | 
			
		||||
build_meson   wayland           https://gitlab.freedesktop.org/wayland/wayland           1.21.0 \
 | 
			
		||||
    -Dtests=false -Ddocumentation=false -Ddtd_validation=false
 | 
			
		||||
build_meson   wayland-protocols https://gitlab.freedesktop.org/wayland/wayland-protocols 1.38
 | 
			
		||||
build_meson   libdecor          https://gitlab.freedesktop.org/libdecor/libdecor         0.1.1 \
 | 
			
		||||
    -D{demo,install_demo}=false
 | 
			
		||||
build_meson   libei             https://gitlab.freedesktop.org/libinput/libei            1.0.0 \
 | 
			
		||||
    -Dtests=disabled -Ddocumentation=[] -Dliboeffis=enabled
 | 
			
		||||
build_ac_xts  xts               https://gitlab.freedesktop.org/xorg/test/xts             master # dbbfa96c036e596346147081cbceda136e7c86c1
 | 
			
		||||
 | 
			
		||||
clone_source piglit             https://gitlab.freedesktop.org/mesa/piglit               main # 265896c86f90cb72e8f218ba6a3617fca8b9a1e3
 | 
			
		||||
 | 
			
		||||
echo '[xts]' > piglit/piglit.conf
 | 
			
		||||
echo "path=$X11_BUILD_DIR/xts" >> piglit/piglit.conf
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,104 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
# Packages which are needed by this script, but not for the xserver build
 | 
			
		||||
EPHEMERAL="
 | 
			
		||||
	libexpat-dev
 | 
			
		||||
	libgles2-mesa-dev
 | 
			
		||||
	libxkbcommon-dev
 | 
			
		||||
	x11-utils
 | 
			
		||||
	x11-xserver-utils
 | 
			
		||||
	xauth
 | 
			
		||||
	xvfb
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
apt-get update
 | 
			
		||||
 | 
			
		||||
# 	mingw-w64-tools \
 | 
			
		||||
#	gcc-mingw-w64-i686 \
 | 
			
		||||
#	libz-mingw-w64-dev \
 | 
			
		||||
 | 
			
		||||
apt-get install -y \
 | 
			
		||||
	$EPHEMERAL \
 | 
			
		||||
	autoconf \
 | 
			
		||||
	automake \
 | 
			
		||||
	build-essential \
 | 
			
		||||
	ca-certificates \
 | 
			
		||||
	libaudit-dev \
 | 
			
		||||
	libbsd-dev \
 | 
			
		||||
	libcairo2-dev \
 | 
			
		||||
	libdbus-1-dev \
 | 
			
		||||
	libdrm-dev \
 | 
			
		||||
	libegl1-mesa-dev \
 | 
			
		||||
	libepoxy-dev \
 | 
			
		||||
	libevdev2 \
 | 
			
		||||
	libexpat1 \
 | 
			
		||||
	libffi-dev \
 | 
			
		||||
	libgbm-dev \
 | 
			
		||||
	libgcrypt-dev \
 | 
			
		||||
	libgl1-mesa-dev \
 | 
			
		||||
	libgles2 \
 | 
			
		||||
	libglx-mesa0 \
 | 
			
		||||
	libinput10 \
 | 
			
		||||
	libinput-dev \
 | 
			
		||||
	libnvidia-egl-wayland-dev \
 | 
			
		||||
	libpciaccess-dev \
 | 
			
		||||
	libpixman-1-dev \
 | 
			
		||||
	libselinux1-dev \
 | 
			
		||||
	libspice-protocol-dev \
 | 
			
		||||
	libsystemd-dev \
 | 
			
		||||
	libudev-dev \
 | 
			
		||||
	libunwind-dev \
 | 
			
		||||
	libx11-dev \
 | 
			
		||||
	libx11-xcb-dev \
 | 
			
		||||
	libxau-dev \
 | 
			
		||||
	libxcb-glx0-dev \
 | 
			
		||||
	libxcb-icccm4-dev \
 | 
			
		||||
	libxcb-image0-dev \
 | 
			
		||||
	libxcb-keysyms1-dev \
 | 
			
		||||
	libxcb-randr0-dev \
 | 
			
		||||
	libxcb-render-util0-dev \
 | 
			
		||||
	libxcb-render0-dev \
 | 
			
		||||
	libxcb-shape0-dev \
 | 
			
		||||
	libxcb-shm0-dev \
 | 
			
		||||
	libxcb-util0-dev \
 | 
			
		||||
	libxcb-xf86dri0-dev \
 | 
			
		||||
	libxcb-xkb-dev \
 | 
			
		||||
	libxcb-xv0-dev \
 | 
			
		||||
	libxcb1-dev \
 | 
			
		||||
	libxdmcp-dev \
 | 
			
		||||
	libxext-dev \
 | 
			
		||||
	libxfixes-dev \
 | 
			
		||||
	libxfont-dev \
 | 
			
		||||
	libxi-dev \
 | 
			
		||||
	libxinerama-dev \
 | 
			
		||||
	libxkbcommon0 \
 | 
			
		||||
	libxkbfile-dev \
 | 
			
		||||
	libxmu-dev \
 | 
			
		||||
	libxmuu-dev \
 | 
			
		||||
	libxpm-dev \
 | 
			
		||||
	libxrender-dev \
 | 
			
		||||
	libxres-dev \
 | 
			
		||||
	libxshmfence-dev \
 | 
			
		||||
	libxt-dev \
 | 
			
		||||
	libxtst-dev \
 | 
			
		||||
	libxv-dev \
 | 
			
		||||
	mesa-common-dev \
 | 
			
		||||
	meson \
 | 
			
		||||
	nettle-dev \
 | 
			
		||||
	libpango1.0-dev \
 | 
			
		||||
	pkg-config \
 | 
			
		||||
	x11-xkb-utils \
 | 
			
		||||
	xfonts-utils \
 | 
			
		||||
	xkb-data \
 | 
			
		||||
	xtrans-dev \
 | 
			
		||||
	xutils-dev \
 | 
			
		||||
	libxaw7-dev \
 | 
			
		||||
	python3-mako \
 | 
			
		||||
 | 
			
		||||
#	python3-attr \
 | 
			
		||||
#	python3-jinja2 \
 | 
			
		||||
#	python3-numpy \
 | 
			
		||||
#	python3-six \
 | 
			
		||||
#	weston \
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,161 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
apt-mark auto \
 | 
			
		||||
    7zip \
 | 
			
		||||
    7zip-rar \
 | 
			
		||||
    acl \
 | 
			
		||||
    ant \
 | 
			
		||||
    apache2 \
 | 
			
		||||
    apache2-bin \
 | 
			
		||||
    aria2 \
 | 
			
		||||
    azure-cli \
 | 
			
		||||
    brotli \
 | 
			
		||||
    buildah \
 | 
			
		||||
    chrony \
 | 
			
		||||
    cifs-utils \
 | 
			
		||||
    clang-format-16 \
 | 
			
		||||
    clang-format-17 \
 | 
			
		||||
    clang-format-18 \
 | 
			
		||||
    clang-tidy-16 \
 | 
			
		||||
    clang-tidy-17 \
 | 
			
		||||
    clang-tidy-18 \
 | 
			
		||||
    cloud-init \
 | 
			
		||||
    dbus \
 | 
			
		||||
    dotnet-sdk-8.0 \
 | 
			
		||||
    eatmydata \
 | 
			
		||||
    efibootmgr \
 | 
			
		||||
    firefox \
 | 
			
		||||
    fonts-noto-color-emoji \
 | 
			
		||||
    gfortran \
 | 
			
		||||
    gfortran-12 \
 | 
			
		||||
    gfortran-13 \
 | 
			
		||||
    gfortran-14 \
 | 
			
		||||
    google-chrome-stable \
 | 
			
		||||
    google-cloud-cli \
 | 
			
		||||
    haveged \
 | 
			
		||||
    keyutils \
 | 
			
		||||
    kubectl \
 | 
			
		||||
    libeatmydata1 \
 | 
			
		||||
    libgmp-dev \
 | 
			
		||||
    liblz4-dev \
 | 
			
		||||
    libmysqlclient-dev \
 | 
			
		||||
    libpq-dev \
 | 
			
		||||
    libsqlite3-dev \
 | 
			
		||||
    libssl-dev \
 | 
			
		||||
    libtss2-esys-3.0.2-0t64 \
 | 
			
		||||
    libtss2-mu-4.0.1-0t64 \
 | 
			
		||||
    libtss2-rc0t64 \
 | 
			
		||||
    libwrap0 \
 | 
			
		||||
    libyaml-dev \
 | 
			
		||||
    lsscsi \
 | 
			
		||||
    lz4 \
 | 
			
		||||
    mediainfo \
 | 
			
		||||
    mercurial \
 | 
			
		||||
    microsoft-edge-stable \
 | 
			
		||||
    mysql-client \
 | 
			
		||||
    mysql-server \
 | 
			
		||||
    ncurses-base \
 | 
			
		||||
    ncurses-bin \
 | 
			
		||||
    ncurses-term \
 | 
			
		||||
    nginx \
 | 
			
		||||
    nvme-cli \
 | 
			
		||||
    packages-microsoft-prod \
 | 
			
		||||
    php-pear \
 | 
			
		||||
    php8.3 \
 | 
			
		||||
    php8.3-amqp \
 | 
			
		||||
    php8.3-apcu \
 | 
			
		||||
    php8.3-bcmath \
 | 
			
		||||
    php8.3-bz2 \
 | 
			
		||||
    php8.3-cgi \
 | 
			
		||||
    php8.3-cli \
 | 
			
		||||
    php8.3-common \
 | 
			
		||||
    php8.3-curl \
 | 
			
		||||
    php8.3-dba \
 | 
			
		||||
    php8.3-dev \
 | 
			
		||||
    php8.3-enchant \
 | 
			
		||||
    php8.3-fpm \
 | 
			
		||||
    php8.3-gd \
 | 
			
		||||
    php8.3-gmp \
 | 
			
		||||
    php8.3-igbinary \
 | 
			
		||||
    php8.3-imagick \
 | 
			
		||||
    php8.3-imap \
 | 
			
		||||
    php8.3-interbase \
 | 
			
		||||
    php8.3-intl \
 | 
			
		||||
    php8.3-ldap \
 | 
			
		||||
    php8.3-mbstring \
 | 
			
		||||
    php8.3-memcache \
 | 
			
		||||
    php8.3-memcached \
 | 
			
		||||
    php8.3-mongodb \
 | 
			
		||||
    php8.3-mysql \
 | 
			
		||||
    php8.3-odbc \
 | 
			
		||||
    php8.3-opcache \
 | 
			
		||||
    php8.3-pcov \
 | 
			
		||||
    php8.3-pgsql \
 | 
			
		||||
    php8.3-phpdbg \
 | 
			
		||||
    php8.3-pspell \
 | 
			
		||||
    php8.3-readline \
 | 
			
		||||
    php8.3-redis \
 | 
			
		||||
    php8.3-snmp \
 | 
			
		||||
    php8.3-soap \
 | 
			
		||||
    php8.3-sqlite3 \
 | 
			
		||||
    php8.3-sybase \
 | 
			
		||||
    php8.3-tidy \
 | 
			
		||||
    php8.3-xdebug \
 | 
			
		||||
    php8.3-xml \
 | 
			
		||||
    php8.3-xsl \
 | 
			
		||||
    php8.3-yaml \
 | 
			
		||||
    php8.3-zip \
 | 
			
		||||
    php8.3-zmq \
 | 
			
		||||
    pigz \
 | 
			
		||||
    podman \
 | 
			
		||||
    pollinate \
 | 
			
		||||
    postgresql-16 \
 | 
			
		||||
    powershell \
 | 
			
		||||
    python-babel-localedata \
 | 
			
		||||
    python3-babel \
 | 
			
		||||
    python3-dev \
 | 
			
		||||
    python3-jinja2 \
 | 
			
		||||
    python3-json-pointer \
 | 
			
		||||
    python3-jsonpatch \
 | 
			
		||||
    python3-jsonschema \
 | 
			
		||||
    python3-markupsafe \
 | 
			
		||||
    python3-parted \
 | 
			
		||||
    python3-pyrsistent \
 | 
			
		||||
    python3-serial \
 | 
			
		||||
    python3-six \
 | 
			
		||||
    python3-tz \
 | 
			
		||||
    python3-venv \
 | 
			
		||||
    rpm \
 | 
			
		||||
    ruby-full \
 | 
			
		||||
    session-manager-plugin \
 | 
			
		||||
    shellcheck \
 | 
			
		||||
    shim-signed \
 | 
			
		||||
    skopeo \
 | 
			
		||||
    snap \
 | 
			
		||||
    snmp \
 | 
			
		||||
    software-properties-common \
 | 
			
		||||
    sphinxsearch \
 | 
			
		||||
    sqlite3 \
 | 
			
		||||
    swig \
 | 
			
		||||
    sysstat \
 | 
			
		||||
    systemd-coredump \
 | 
			
		||||
    temurin-11-jdk \
 | 
			
		||||
    temurin-17-jdk \
 | 
			
		||||
    temurin-21-jdk \
 | 
			
		||||
    temurin-8-jdk \
 | 
			
		||||
    texinfo \
 | 
			
		||||
    tk \
 | 
			
		||||
    tree \
 | 
			
		||||
    tzdata \
 | 
			
		||||
    ubuntu-server \
 | 
			
		||||
    ubuntu-standard \
 | 
			
		||||
    unzip \
 | 
			
		||||
    upx-ucl \
 | 
			
		||||
    util-linux \
 | 
			
		||||
    walinuxagent \
 | 
			
		||||
    xvfb \
 | 
			
		||||
    xz-utils \
 | 
			
		||||
    zip \
 | 
			
		||||
    zsync
 | 
			
		||||
 | 
			
		||||
apt-get autoremove -y
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,90 @@
 | 
			
		|||
 | 
			
		||||
. .github/scripts/conf.sh
 | 
			
		||||
 | 
			
		||||
clone_source() {
 | 
			
		||||
    local pkgname="$1"
 | 
			
		||||
    local url="$2"
 | 
			
		||||
    local ref="$3"
 | 
			
		||||
 | 
			
		||||
    if [ ! -f $pkgname/.git/config ]; then
 | 
			
		||||
        echo "need to clone $pkgname"
 | 
			
		||||
        git clone $url $pkgname --branch=$ref --depth 1
 | 
			
		||||
    else
 | 
			
		||||
        echo "already cloned $pkgname"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build_meson() {
 | 
			
		||||
    local pkgname="$1"
 | 
			
		||||
    local url="$2"
 | 
			
		||||
    local ref="$3"
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    if [ -f $X11_PREFIX/$pkgname.DONE ]; then
 | 
			
		||||
        echo "package $pkgname already built"
 | 
			
		||||
    else
 | 
			
		||||
        clone_source "$pkgname" "$url" "$ref"
 | 
			
		||||
        (
 | 
			
		||||
            cd $pkgname
 | 
			
		||||
            meson "$@" build -Dprefix=$X11_PREFIX
 | 
			
		||||
            ninja -j${FDO_CI_CONCURRENT:-4} -C build install
 | 
			
		||||
        )
 | 
			
		||||
        touch $X11_PREFIX/$pkgname.DONE
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build_ac() {
 | 
			
		||||
    local pkgname="$1"
 | 
			
		||||
    local url="$2"
 | 
			
		||||
    local ref="$3"
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    if [ -f $X11_PREFIX/$pkgname.DONE ]; then
 | 
			
		||||
        echo "package $pkgname already built"
 | 
			
		||||
    else
 | 
			
		||||
        clone_source "$pkgname" "$url" "$ref"
 | 
			
		||||
        (
 | 
			
		||||
            cd $pkgname
 | 
			
		||||
            ./autogen.sh --prefix=$X11_PREFIX
 | 
			
		||||
            make -j${FDO_CI_CONCURRENT:-4} install
 | 
			
		||||
        )
 | 
			
		||||
        touch $X11_PREFIX/$pkgname.DONE
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build_drv_ac() {
 | 
			
		||||
    local pkgname="$1"
 | 
			
		||||
    local url="$2"
 | 
			
		||||
    local ref="$3"
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    clone_source "$pkgname" "$url" "$ref"
 | 
			
		||||
    (
 | 
			
		||||
        cd $pkgname
 | 
			
		||||
        ./autogen.sh # --prefix=$X11_PREFIX
 | 
			
		||||
        make -j${FDO_CI_CONCURRENT:-4} # install
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build_ac_xts() {
 | 
			
		||||
    local pkgname="$1"
 | 
			
		||||
    local url="$2"
 | 
			
		||||
    local ref="$3"
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    shift
 | 
			
		||||
    if [ -f $X11_PREFIX/$pkgname.DONE ]; then
 | 
			
		||||
        echo "package $pkgname already built"
 | 
			
		||||
    else
 | 
			
		||||
        clone_source "$pkgname" "$url" "$ref"
 | 
			
		||||
        (
 | 
			
		||||
            cd $pkgname
 | 
			
		||||
            CFLAGS=-fcommon ./autogen.sh --prefix=$X11_PREFIX
 | 
			
		||||
            xvfb-run make -j${FDO_CI_CONCURRENT:-4} install
 | 
			
		||||
        )
 | 
			
		||||
        touch $X11_PREFIX/$pkgname.DONE
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,118 @@
 | 
			
		|||
name: Build X servers
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
    MESON_BUILDDIR:  "build"
 | 
			
		||||
    X11_PREFIX:      /home/runner/x11
 | 
			
		||||
    X11_BUILD_DIR:   /home/runner/build-deps
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
    push:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
    xserver-build-ubuntu:
 | 
			
		||||
        env:
 | 
			
		||||
            MESON_ARGS: -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=false -Dxcsecurity=true -Dxwayland=true -Dxorg=true -Dxvfb=true -Dxnest=true
 | 
			
		||||
        runs-on: ubuntu-latest
 | 
			
		||||
        steps:
 | 
			
		||||
            - name: Check out repository code
 | 
			
		||||
              uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
            - name: prepare build environment
 | 
			
		||||
              run: |
 | 
			
		||||
                export MACHINE=`gcc -dumpmachine`
 | 
			
		||||
                echo "PKG_CONFIG_PATH=$X11_PREFIX/share/pkgconfig:$X11_PREFIX/lib/$MACHINE/pkgconfig:$X11_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH" >> "$GITHUB_ENV"
 | 
			
		||||
                sudo chown root /bin/tar && sudo chmod u+s /bin/tar
 | 
			
		||||
 | 
			
		||||
            - name: apt cache
 | 
			
		||||
              uses: actions/cache@v4
 | 
			
		||||
              with:
 | 
			
		||||
                path: /var/cache/apt
 | 
			
		||||
                key: apt-cache-${{ hashFiles('.github/scripts/ubuntu/install-pkg.sh') }}
 | 
			
		||||
                restore-keys: apt-cache-
 | 
			
		||||
 | 
			
		||||
            - name: pkg install
 | 
			
		||||
              run:  sudo .github/scripts/ubuntu/install-pkg.sh
 | 
			
		||||
 | 
			
		||||
            - name: X11 prereq cache
 | 
			
		||||
              uses: actions/cache@v4
 | 
			
		||||
              with:
 | 
			
		||||
                path: |
 | 
			
		||||
                    ${{ env.X11_PREFIX }}
 | 
			
		||||
                    ${{ env.X11_BUILD_DIR }}/xts
 | 
			
		||||
                    ${{ env.X11_BUILD_DIR }}/piglit
 | 
			
		||||
                key: ${{ runner.os }}-x11-deps-${{ hashFiles('.github/scripts/install-prereq.sh') }}
 | 
			
		||||
                restore-keys: ${{ runner.os }}-x11-deps-
 | 
			
		||||
 | 
			
		||||
            - name: generic prereq
 | 
			
		||||
              run:  sudo .github/scripts/install-prereq.sh
 | 
			
		||||
 | 
			
		||||
            - name: build
 | 
			
		||||
              run:  .gitlab-ci/meson-build.sh
 | 
			
		||||
 | 
			
		||||
            - name: tests (may fail)
 | 
			
		||||
              continue-on-error: true
 | 
			
		||||
              run:  meson test -C "${{ env.MESON_BUILDDIR }}" --print-errorlogs || true
 | 
			
		||||
              env:
 | 
			
		||||
                  XTEST_DIR:  ${{ env.X11_BUILD_DIR }}/xts
 | 
			
		||||
                  PIGLIT_DIR: ${{ env.X11_BUILD_DIR }}/piglit
 | 
			
		||||
 | 
			
		||||
            - name: archive build logs
 | 
			
		||||
              uses: actions/upload-artifact@v4
 | 
			
		||||
              with:
 | 
			
		||||
                  name: build-logs
 | 
			
		||||
                  path: |
 | 
			
		||||
                      build/meson-logs/*
 | 
			
		||||
            - name: ddx build check
 | 
			
		||||
              run:  .gitlab-ci/check-ddx-build.sh
 | 
			
		||||
            - name: manpage check
 | 
			
		||||
              run:  .gitlab-ci/manpages-check
 | 
			
		||||
 | 
			
		||||
    drivers-build-ubuntu:
 | 
			
		||||
        env:
 | 
			
		||||
            MESON_ARGS: -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=false -Dwerror=false -Dxcsecurity=false -Dxwayland=false -Dxorg=true -Dxvfb=false -Dxnest=false
 | 
			
		||||
        runs-on: ubuntu-latest
 | 
			
		||||
        steps:
 | 
			
		||||
            - name: Check out repository code
 | 
			
		||||
              uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
            - name: prepare build environment
 | 
			
		||||
              run: |
 | 
			
		||||
                export MACHINE=`gcc -dumpmachine`
 | 
			
		||||
                echo "PKG_CONFIG_PATH=$X11_PREFIX/share/pkgconfig:$X11_PREFIX/lib/$MACHINE/pkgconfig:$X11_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH" >> "$GITHUB_ENV"
 | 
			
		||||
                sudo chown root /bin/tar && sudo chmod u+s /bin/tar
 | 
			
		||||
 | 
			
		||||
            - name: apt cache
 | 
			
		||||
              uses: actions/cache@v4
 | 
			
		||||
              with:
 | 
			
		||||
                path: /var/cache/apt
 | 
			
		||||
                key: apt-cache-${{ hashFiles('.github/scripts/ubuntu/install-pkg.sh') }}
 | 
			
		||||
                restore-keys: apt-cache-
 | 
			
		||||
 | 
			
		||||
            - name: pkg install
 | 
			
		||||
              run:  sudo .github/scripts/ubuntu/install-pkg.sh
 | 
			
		||||
 | 
			
		||||
            - name: X11 prereq cache
 | 
			
		||||
              uses: actions/cache@v4
 | 
			
		||||
              with:
 | 
			
		||||
                path: |
 | 
			
		||||
                    ${{ env.X11_PREFIX }}
 | 
			
		||||
                    ${{ env.X11_BUILD_DIR }}/xts
 | 
			
		||||
                    ${{ env.X11_BUILD_DIR }}/piglit
 | 
			
		||||
                key: ${{ runner.os }}-x11-deps-${{ hashFiles('.github/scripts/install-prereq.sh') }}
 | 
			
		||||
                restore-keys: ${{ runner.os }}-x11-deps-
 | 
			
		||||
 | 
			
		||||
            - name: generic prereq
 | 
			
		||||
              run:  sudo .github/scripts/install-prereq.sh
 | 
			
		||||
 | 
			
		||||
            - name: build xserver sdk
 | 
			
		||||
              run:  |
 | 
			
		||||
                echo -n > .meson_environment
 | 
			
		||||
                echo "export MESON_BUILDDIR=$MESON_BUILDDIR" >> .meson_environment
 | 
			
		||||
                echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> .meson_environment
 | 
			
		||||
                .gitlab-ci/meson-build.sh --skip-test
 | 
			
		||||
                sudo meson install --no-rebuild -C "$MESON_BUILDDIR"
 | 
			
		||||
                sudo mkdir -p /usr/local/lib/$MACHINE/xorg/modules # /home/runner/x11/lib/xorg/modules
 | 
			
		||||
                sudo chown -R runner /usr/local/lib/$MACHINE/xorg/modules # /home/runner/x11/lib/xorg/modules
 | 
			
		||||
 | 
			
		||||
            - name: compile drivers
 | 
			
		||||
              run: .github/scripts/compile-drivers.sh
 | 
			
		||||
		Loading…
	
		Reference in New Issue