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