name: Build X servers permissions: contents: write env: MESON_BUILDDIR: "build" X11_PREFIX: /home/runner/x11 X11_BUILD_DIR: /home/runner/build-deps on: push: pull_request: jobs: xserver-build-ubuntu: env: MESON_ARGS: -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=false -Dxcsecurity=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: | MACHINE=`gcc -dumpmachine` echo "MACHINE=$MACHINE" >> "$GITHUB_ENV" 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.name }}-x11-deps-${{ hashFiles('.github/scripts/install-prereq.sh') }} restore-keys: ${{ runner.name }}-x11-deps- - name: generic prereq run: .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 -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: | MACHINE=`gcc -dumpmachine` echo "MACHINE=$MACHINE" >> "$GITHUB_ENV" 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.name }}-x11-deps-${{ hashFiles('.github/scripts/install-prereq.sh') }} restore-keys: ${{ runner.name }}-x11-deps- - name: generic prereq run: .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 xserver-build-mingw32-ubuntu: runs-on: ubuntu-latest env: MESON_ARGS: -Dprefix=/home/runner/x11 --cross-file=.github/scripts/mingw32/cross-i686-w64-mingw32.txt -Dglx=false -Dlisten_tcp=true -Dxvmc=true -Dxv=true -Dxvfb=true -Dxnest=true -Dxephyr=true steps: - name: Check out repository code uses: actions/checkout@v4 - name: prepare build environment run: | MACHINE=`gcc -dumpmachine` echo "MACHINE=$MACHINE" >> "$GITHUB_ENV" 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.name }}-x11-deps-${{ hashFiles('.github/scripts/install-prereq.sh') }} restore-keys: ${{ runner.name }}-x11-deps- - name: install crosscompiler run: sudo apt-get install -y mingw-w64-tools gcc-mingw-w64 gcc-mingw-w64-i686 libz-mingw-w64-dev - name: cross prereq run: sudo .github/scripts/mingw32/cross-prereqs-build.sh i686-w64-mingw32 - name: build run: .gitlab-ci/meson-build.sh --run-install xserver-build-macos: env: MESON_ARGS: -Dprefix=/tmp -Dglx=false -Dxnest=false X11_PREFIX: /Users/runner/x11 X11_BUILD_DIR: /Users/runner/build-deps runs-on: macos-latest steps: - name: Check out repository code uses: actions/checkout@v4 - name: prepare build environment run: | echo "PKG_CONFIG_PATH=$X11_PREFIX/share/pkgconfig:$X11_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH" >> "$GITHUB_ENV" - name: homebrew cache uses: actions/cache@v4 with: path: /Users/runner/Library/Caches/Homebrew key: ${{ runner.os }}-homebrew-cache-${{ hashFiles('.github/scripts/macos/install-pkg.sh') }} restore-keys: ${{ runner.os }}-homebrew-cache- - name: pkg install run: .github/scripts/macos/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: .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 -j1 || 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-macos path: | build/meson-logs/* - name: ddx build check run: .gitlab-ci/check-ddx-build.sh - name: manpage check run: .gitlab-ci/manpages-check xserver-build-freebsd: runs-on: ubuntu-latest env: MYTOKEN : ${{ secrets.MYTOKEN }} MYTOKEN2: "value2" MESON_ARGS: -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=false -Dxcsecurity=true -Dxorg=true -Dxvfb=true -Dxnest=true steps: - uses: actions/checkout@v4 - name: run in freebsd VM id: xserver-build uses: vmactions/freebsd-vm@v1 with: envs: 'MYTOKEN MYTOKEN2 MESON_ARGS' usesh: true release: "14.3" run: ./.github/scripts/freebsd/run-xserver-build.sh release: name: Release pushed tag runs-on: ubuntu-latest if: ${{ startsWith(github.ref, 'refs/tags/xlibre-xserver-') }} steps: - name: Checkout uses: actions/checkout@v4 - name: Create release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} tag: ${{ github.ref_name }} run: .github/scripts/github/make-release