Hyprland/.github/workflows/ci.yaml

76 lines
3.3 KiB
YAML
Raw Normal View History

name: Build Hyprland
2022-05-17 13:44:43 +02:00
on: [push, pull_request, workflow_dispatch]
jobs:
gcc:
2022-04-01 21:09:12 +02:00
name: "Build Hyprland (Arch)"
runs-on: ubuntu-latest
container:
image: archlinux
steps:
- name: Get required pacman pkgs
run: |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf
pacman --noconfirm --noprogressbar -Syyu
pacman --noconfirm --noprogressbar -Sy glslang libepoxy libfontenc libxcvt libxfont2 libxkbfile vulkan-headers vulkan-validation-layers xcb-util-errors xcb-util-renderutil xcb-util-wm xorg-fonts-encodings xorg-server-common xorg-setxkbmap xorg-xkbcomp xorg-xwayland git cmake go clang lld libc++ pkgconf meson ninja wayland wayland-protocols libinput libxkbcommon pixman glm libdrm libglvnd cairo pango systemd scdoc base-devel seatd
2022-05-25 10:34:04 +02:00
- name: Set up user
run: |
2022-05-25 10:34:04 +02:00
useradd -m githubuser
echo -e "root ALL=(ALL:ALL) ALL\ngithubuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers
2022-05-25 10:37:08 +02:00
- name: Build wlroots
2022-05-25 10:34:04 +02:00
run: |
2022-05-25 10:37:08 +02:00
su githubuser -c "cd ~ && git clone https://gitlab.freedesktop.org/wlroots/wlroots"
2022-05-25 11:04:55 +02:00
su githubuser -c "cd ~/wlroots && meson build/ --prefix=/usr && ninja -C build/ && sudo ninja -C build/ install && cd .."
2022-04-13 17:38:43 +02:00
- name: Fix permissions for git
run: |
git config --global --add safe.directory /__w/Hyprland/Hyprland
2022-05-17 13:43:31 +02:00
- name: Checkout Hyprland
2022-04-13 17:17:09 +02:00
uses: actions/checkout@v3
2022-05-31 10:47:56 +02:00
with:
submodules: recursive
- name: Build Hyprland With default settings
run: |
git submodule sync --recursive && git submodule update --init --force --recursive
make all
- name: Build Hyprland with LEGACY_RENDERER
run: |
make legacyrenderer
2022-06-14 11:48:42 +02:00
meson:
name: "Build Hyprland with Meson (Arch)"
runs-on: ubuntu-latest
container:
image: archlinux
steps:
- name: Download dependencies 📥
run: |
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf
pacman --noconfirm --noprogressbar -Syyu
pacman --noconfirm --noprogressbar -Sy glslang libepoxy libfontenc libxcvt libxfont2 libxkbfile vulkan-headers vulkan-validation-layers xcb-util-errors xcb-util-renderutil xcb-util-wm xorg-fonts-encodings xorg-server-common xorg-setxkbmap xorg-xkbcomp xorg-xwayland git go clang lld libc++ pkgconf meson ninja wayland wayland-protocols libinput libxkbcommon pixman glm libdrm libglvnd cairo pango systemd scdoc base-devel seatd
- name: Checkout Hyprland 📡
uses: actions/checkout@v3
with:
submodules: true
- name: Configure 🔧
run: |
meson obj-x86_64-pc-linux-gnu \
-Ddefault_library=static
- name: Compile 🎲
run: ninja -C obj-x86_64-pc-linux-gnu
- name: Compress artifacts 📦
run: |
mkdir x86_64-pc-linux-gnu
DESTDIR=$PWD/x86_64-pc-linux-gnu meson install -C obj-x86_64-pc-linux-gnu --tags runtime
tar -cvf x86_64-pc-linux-gnu.tar.xz x86_64-pc-linux-gnu
- name: Upload artifacts 📤
uses: actions/upload-artifact@v3
with:
name: Build artifacts (x86_64-pc-linux-gnu)
path: x86_64-pc-linux-gnu.tar.xz