Repository navigation
refactor: move XWayland decoration handling into waylib #1983
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build waylib on Arch Linux (independent) | |
| on: | |
| push: | |
| paths: | |
| - 'waylib/**' | |
| - 'wlroots/**' | |
| - '3rdparty/wlroots/**' | |
| - '.github/workflows/waylib-archlinux-build.yml' | |
| pull_request: | |
| paths: | |
| - 'waylib/**' | |
| - 'wlroots/**' | |
| - '3rdparty/wlroots/**' | |
| - '.github/workflows/waylib-archlinux-build.yml' | |
| jobs: | |
| container: | |
| runs-on: ubuntu-latest | |
| container: archlinux:latest | |
| steps: | |
| - name: Run in container | |
| run: | | |
| cat /etc/pacman.d/mirrorlist | |
| pacman-key --init | |
| pacman --noconfirm --noprogressbar -Syu | |
| - name: Install dependencies | |
| run: | | |
| # Vendored waylib-wlroots deps from Arch wlroots0.19 package metadata | |
| # (do not install system wlroots0.19) | |
| pacman -S --noconfirm --noprogressbar base-devel \ | |
| qt6-base qt6-declarative cmake pkgconfig ninja clang make git \ | |
| pixman wayland wayland-protocols wlr-protocols \ | |
| libxcb libx11 libxkbcommon libdrm libinput seatd \ | |
| libdisplay-info libliftoff lcms2 \ | |
| mesa libglvnd vulkan-headers vulkan-icd-loader \ | |
| glslang hwdata systemd \ | |
| xcb-util-errors xcb-util-renderutil xcb-util-wm \ | |
| xorg-xwayland | |
| pacman -S --noconfirm --noprogressbar fakeroot meson sudo | |
| - name: Build and Install treeland-protocols | |
| run: | | |
| echo "Building treeland-protocols from source..." | |
| git clone https://github.com/linuxdeepin/treeland-protocols.git --depth 1 | |
| cd treeland-protocols | |
| cmake -B build \ | |
| -DCMAKE_INSTALL_PREFIX=/usr \ | |
| -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build | |
| cmake --install build | |
| echo "✅ treeland-protocols built and installed from source" | |
| - uses: actions/checkout@v4 | |
| - name: Configure and Build waylib with ci preset | |
| working-directory: waylib | |
| run: | | |
| echo "Working directory:" $PWD | |
| rm -rf build | |
| cmake --preset ci | |
| cmake --build --preset ci | |
| - name: Run unit tests | |
| working-directory: waylib | |
| run: ctest --preset ci | |
| - name: Install waylib to staging directory | |
| working-directory: waylib | |
| run: | | |
| echo "Installing waylib to staging directory..." | |
| mkdir -p /tmp/waylib-install | |
| DESTDIR=/tmp/waylib-install cmake --install build | |
| echo "✅ waylib installed to staging directory" | |
| echo "Installed files:" | |
| find /tmp/waylib-install -type f | head -20 | |
| echo "Total files installed: $(find /tmp/waylib-install -type f | wc -l)" | |
| - name: Create waylib installation package | |
| run: | | |
| cd /tmp/waylib-install | |
| # Install zip if not available | |
| pacman -S --noconfirm zip | |
| # Create package info | |
| echo "Creating package info..." | |
| cat > PACKAGE_INFO.txt << EOF | |
| Package: waylib-archlinux-build | |
| Version: $(date +%Y%m%d-%H%M%S) | |
| Architecture: x86_64 | |
| Built-on: Arch Linux | |
| Built-with: vendored wlroots 0.19.3 | |
| CMake-Config: vendored wlroots 0.19.3 via ../wlroots | |
| Installation Instructions: | |
| 1. Extract this package to / | |
| 2. Run: sudo ldconfig (if libraries are included) | |
| 3. Ensure dependencies are installed on target system | |
| Files included in this package: | |
| EOF | |
| find . -type f | sort >> PACKAGE_INFO.txt | |
| # Create the zip package | |
| zip -r /tmp/waylib-archlinux-$(date +%Y%m%d-%H%M%S).zip . | |
| echo "✅ waylib installation package created" | |
| ls -la /tmp/waylib-archlinux-*.zip | |
| - name: Upload waylib ArchLinux build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: waylib-archlinux-build | |
| path: "/tmp/waylib-archlinux-*.zip" | |
| if-no-files-found: error | |
| retention-days: 30 |