Change flake description #14
This file contains 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 Hyprland | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
gcc: | |
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 python libliftoff | |
- name: Set up user | |
run: | | |
useradd -m githubuser | |
echo -e "root ALL=(ALL:ALL) ALL\ngithubuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers | |
- name: Install libdisplay-info from the AUR | |
run: | | |
su githubuser -c "cd ~ && git clone https://aur.archlinux.org/libdisplay-info.git && cd ./libdisplay-info && makepkg -si --skippgpcheck --noconfirm --noprogressbar" | |
- name: Fix permissions for git | |
run: | | |
git config --global --add safe.directory /__w/Hyprland/Hyprland | |
- name: Checkout Hyprland | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build Hyprland | |
run: | | |
git submodule sync --recursive && git submodule update --init --force --recursive | |
make all | |
- name: Compress and package artifacts | |
run: | | |
mkdir x86_64-pc-linux-gnu | |
mkdir hyprland | |
mkdir hyprland/example | |
mkdir hyprland/assets | |
cp ./LICENSE hyprland/ | |
cp build/Hyprland hyprland/ | |
cp build/hyprctl/hyprctl hyprland/ | |
cp subprojects/wlroots/build/libwlroots.so.12032 hyprland/ | |
cp build/Hyprland hyprland/ | |
cp -r example/ hyprland/ | |
cp -r assets/ hyprland/ | |
tar -cvf Hyprland.tar.xz hyprland | |
- name: Release | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Build archive | |
path: Hyprland.tar.xz | |
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 git go clang lld libc++ pkgconf meson ninja wayland wayland-protocols libinput libxkbcommon pixman glm libdrm libglvnd cairo pango systemd scdoc base-devel seatd cmake jq python libliftoff | |
- name: Set up user | |
run: | | |
useradd -m githubuser | |
echo -e "root ALL=(ALL:ALL) ALL\ngithubuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers | |
- name: Install libdisplay-info from the AUR | |
run: | | |
su githubuser -c "cd ~ && git clone https://aur.archlinux.org/libdisplay-info.git && cd ./libdisplay-info && makepkg -si --skippgpcheck --noconfirm --noprogressbar" | |
- 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 | |
noxwayland: | |
name: "Build Hyprland in pure Wayland (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 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 libliftoff | |
- name: Set up user | |
run: | | |
useradd -m githubuser | |
echo -e "root ALL=(ALL:ALL) ALL\ngithubuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers | |
- name: Install libdisplay-info from the AUR | |
run: | | |
su githubuser -c "cd ~ && git clone https://aur.archlinux.org/libdisplay-info.git && cd ./libdisplay-info && makepkg -si --skippgpcheck --noconfirm --noprogressbar" | |
- name: Checkout Hyprland | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Configure | |
run: mkdir -p build && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DNO_XWAYLAND:STRING=true -H./ -B./build -G Ninja | |
- name: Compile | |
run: make release |