treeland/.github/workflows/waylib-archlinux-build.yml

101 lines
3.2 KiB
YAML

name: Build waylib on Arch Linux (independent)
on:
push:
paths:
- 'waylib/**'
- 'qwlroots/**'
- '.github/workflows/waylib-archlinux-build.yml'
pull_request:
paths:
- 'waylib/**'
- 'qwlroots/**'
- '.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: |
pacman -Syu --noconfirm --noprogressbar base-devel qt6-base qt6-declarative cmake pkgconfig pixman vulkan-headers wlroots0.19 wayland-protocols wlr-protocols git
pacman -Syu --noconfirm --noprogressbar clang ninja make
pacman -Syu --noconfirm --noprogressbar fakeroot meson sudo
- uses: actions/checkout@v4
with:
submodules: true
- name: Create qwlroots symlink for waylib
run: |
cd waylib
ln -sf ../qwlroots qwlroots
echo "✅ Created symlink: waylib/qwlroots -> ../qwlroots"
ls -la qwlroots
- name: Configure and Build waylib with ci preset
working-directory: waylib
run: |
echo "Working directory:" $PWD
cmake --preset ci -DWITH_SUBMODULE_QWLROOTS=ON
cmake --build --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 -Syu --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: qwlroots submodule enabled
CMake-Config: -DWITH_SUBMODULE_QWLROOTS=ON
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