mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-02 06:46:29 -04:00
Switch CI to Arch Linux container for better package availability
Co-authored-by: squassina <8495707+squassina@users.noreply.github.com>
This commit is contained in:
parent
fa51bed55a
commit
6a209101a0
2 changed files with 43 additions and 70 deletions
27
.github/workflows/README.md
vendored
27
.github/workflows/README.md
vendored
|
|
@ -23,20 +23,20 @@ This directory contains the GitHub Actions workflows for the MangoWC project.
|
|||
|
||||
**What it does**:
|
||||
|
||||
1. Installs system dependencies (libdrm, libevdev, etc.)
|
||||
2. Builds libinput 1.27.1 from source
|
||||
3. Builds wayland 1.23.1 from source
|
||||
4. Builds wlroots 0.19.0 from source
|
||||
5. Builds scenefx 0.4.1 from source
|
||||
6. Uses `meson subprojects download` to fetch any required subproject dependencies
|
||||
7. Configures the project with meson
|
||||
8. Builds the project with ninja
|
||||
9. Verifies the executables were created
|
||||
1. Runs in Arch Linux container (archlinux:latest)
|
||||
2. Updates system and installs dependencies via pacman
|
||||
3. Builds wlroots 0.19.0 from source
|
||||
4. Builds scenefx 0.4.1 from source
|
||||
5. Uses `meson subprojects download` to fetch any required subproject
|
||||
dependencies
|
||||
6. Configures the project with meson
|
||||
7. Builds the project with ninja
|
||||
8. Verifies the executables were created
|
||||
|
||||
**Build Strategy**:
|
||||
|
||||
- All major dependencies (libinput, wayland, wlroots, scenefx) are built from
|
||||
their source repositories
|
||||
- Uses Arch Linux for up-to-date system packages (wayland, libinput, etc.)
|
||||
- Only builds wlroots and scenefx from source (not available in pacman)
|
||||
- Uses `meson subprojects download` before each meson setup to fetch required
|
||||
subprojects
|
||||
- Allows meson wrap mode for automatic subproject handling
|
||||
|
|
@ -44,11 +44,10 @@ This directory contains the GitHub Actions workflows for the MangoWC project.
|
|||
|
||||
**Dependencies**:
|
||||
|
||||
- Ubuntu latest runner
|
||||
- Arch Linux container (archlinux:latest)
|
||||
- Meson build system
|
||||
- Ninja build tool
|
||||
- libinput 1.27.1 (built from source)
|
||||
- Wayland 1.23.1 (built from source)
|
||||
- System packages from pacman (wayland, libinput, mesa, etc.)
|
||||
- wlroots 0.19.0 (built from source)
|
||||
- scenefx 0.4.1 (built from source)
|
||||
|
||||
|
|
|
|||
86
.github/workflows/build.yml
vendored
86
.github/workflows/build.yml
vendored
|
|
@ -30,6 +30,8 @@ on:
|
|||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: archlinux:latest
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
@ -37,85 +39,57 @@ jobs:
|
|||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
- name: Update system and install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
# Update package database
|
||||
pacman -Syu --noconfirm
|
||||
|
||||
# Install build tools and dependencies
|
||||
pacman -S --noconfirm \
|
||||
base-devel \
|
||||
git \
|
||||
meson \
|
||||
ninja-build \
|
||||
ninja \
|
||||
wayland \
|
||||
wayland-protocols \
|
||||
libxkbcommon-dev \
|
||||
libpcre2-dev \
|
||||
libpixman-1-dev \
|
||||
libdrm-dev \
|
||||
libxcb1-dev \
|
||||
libxcb-icccm4-dev \
|
||||
xwayland \
|
||||
libinput \
|
||||
libxkbcommon \
|
||||
pcre2 \
|
||||
pixman \
|
||||
libdrm \
|
||||
libxcb \
|
||||
xcb-util-wm \
|
||||
xorg-xwayland \
|
||||
hwdata \
|
||||
libliftoff-dev \
|
||||
libdisplay-info-dev \
|
||||
libseat-dev \
|
||||
libffi-dev \
|
||||
libexpat1-dev \
|
||||
libxml2-dev \
|
||||
libgles2-mesa-dev \
|
||||
libegl1-mesa-dev \
|
||||
libgbm-dev \
|
||||
libevdev-dev \
|
||||
libmtdev-dev \
|
||||
libudev-dev \
|
||||
libsystemd-dev \
|
||||
libliftoff \
|
||||
libdisplay-info \
|
||||
seatd \
|
||||
mesa \
|
||||
pkg-config
|
||||
|
||||
- name: Build and install libinput 1.27.1
|
||||
run: |
|
||||
# Build libinput 1.27.1 from source since Ubuntu has older version
|
||||
git clone https://gitlab.freedesktop.org/libinput/libinput.git
|
||||
cd libinput
|
||||
git checkout 1.27.1
|
||||
# Download meson subprojects if needed
|
||||
meson subprojects download || true
|
||||
meson setup build/ --prefix=/usr
|
||||
sudo ninja -C build/ install
|
||||
sudo ldconfig
|
||||
cd ..
|
||||
|
||||
- name: Build and install wayland 1.23.1
|
||||
run: |
|
||||
# Build wayland 1.23.1 from source
|
||||
git clone https://gitlab.freedesktop.org/wayland/wayland.git
|
||||
cd wayland
|
||||
git checkout 1.23.1
|
||||
# Download meson subprojects if needed
|
||||
meson subprojects download || true
|
||||
meson setup build/ --prefix=/usr -Ddocumentation=false
|
||||
sudo ninja -C build/ install
|
||||
sudo ldconfig
|
||||
cd ..
|
||||
|
||||
- name: Install wlroots 0.19.0
|
||||
run: |
|
||||
# Install wlroots 0.19 from source
|
||||
# Build wlroots 0.19.0 from source
|
||||
git clone https://gitlab.freedesktop.org/wlroots/wlroots.git
|
||||
cd wlroots
|
||||
git checkout 0.19.0
|
||||
# Download meson subprojects if needed
|
||||
meson subprojects download || true
|
||||
meson setup build/ --prefix=/usr
|
||||
sudo ninja -C build/ install
|
||||
sudo ldconfig
|
||||
ninja -C build/ install
|
||||
ldconfig
|
||||
cd ..
|
||||
|
||||
- name: Install scenefx 0.4.1
|
||||
run: |
|
||||
# Install scenefx from source
|
||||
# Build scenefx from source
|
||||
git clone -b 0.4.1 https://github.com/wlrfx/scenefx.git
|
||||
cd scenefx
|
||||
# Download meson subprojects if needed
|
||||
meson subprojects download || true
|
||||
meson setup build/ --prefix=/usr
|
||||
sudo ninja -C build/ install
|
||||
sudo ldconfig
|
||||
ninja -C build/ install
|
||||
ldconfig
|
||||
cd ..
|
||||
|
||||
- name: Configure meson
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue