2022-03-30 18:30:03 +02:00
|
|
|
name: Build Hyprland
|
|
|
|
|
2022-05-17 13:44:43 +02:00
|
|
|
on: [push, pull_request, workflow_dispatch]
|
2022-03-30 18:30:03 +02:00
|
|
|
jobs:
|
|
|
|
gcc:
|
2022-04-01 21:09:12 +02:00
|
|
|
name: "Build Hyprland (Arch)"
|
2022-03-30 18:30:03 +02:00
|
|
|
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
|
2023-12-07 11:41:09 +01:00
|
|
|
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 tomlplusplus
|
2022-05-25 10:34:04 +02:00
|
|
|
- name: Set up user
|
2022-03-30 18:30:03 +02:00
|
|
|
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
|
2023-03-03 22:37:30 +01:00
|
|
|
- name: Install libdisplay-info from the AUR
|
2022-05-25 10:34:04 +02:00
|
|
|
run: |
|
2023-03-03 22:37:30 +01:00
|
|
|
su githubuser -c "cd ~ && git clone https://aur.archlinux.org/libdisplay-info.git && cd ./libdisplay-info && makepkg -si --skippgpcheck --noconfirm --noprogressbar"
|
2022-04-13 17:38:43 +02:00
|
|
|
- name: Fix permissions for git
|
|
|
|
run: |
|
|
|
|
git config --global --add safe.directory /__w/Hyprland/Hyprland
|
2022-03-30 18:30:03 +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
|
2022-06-22 23:45:48 +02:00
|
|
|
- name: Build Hyprland
|
2022-03-30 18:30:03 +02:00
|
|
|
run: |
|
|
|
|
git submodule sync --recursive && git submodule update --init --force --recursive
|
|
|
|
make all
|
2022-06-22 23:45:48 +02:00
|
|
|
- name: Compress and package artifacts
|
2022-04-13 17:43:46 +02:00
|
|
|
run: |
|
2022-06-22 23:45:48 +02:00
|
|
|
mkdir x86_64-pc-linux-gnu
|
|
|
|
mkdir hyprland
|
|
|
|
mkdir hyprland/example
|
|
|
|
mkdir hyprland/assets
|
|
|
|
cp ./LICENSE hyprland/
|
|
|
|
cp build/Hyprland hyprland/
|
2023-10-14 19:48:05 +02:00
|
|
|
cp build/hyprctl/hyprctl hyprland/
|
2023-11-24 11:54:21 +01:00
|
|
|
cp subprojects/wlroots/build/libwlroots.so.13032 hyprland/
|
2022-06-23 00:22:22 +02:00
|
|
|
cp build/Hyprland hyprland/
|
2022-06-22 23:45:48 +02:00
|
|
|
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
|
2022-06-14 11:48:42 +02:00
|
|
|
|
|
|
|
meson:
|
|
|
|
name: "Build Hyprland with Meson (Arch)"
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
container:
|
|
|
|
image: archlinux
|
|
|
|
steps:
|
2022-06-14 13:46:10 +02:00
|
|
|
- name: Download dependencies
|
2022-06-14 11:48:42 +02:00
|
|
|
run: |
|
|
|
|
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf
|
|
|
|
pacman --noconfirm --noprogressbar -Syyu
|
2023-12-07 11:41:09 +01:00
|
|
|
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 tomlplusplus
|
2023-03-03 22:37:30 +01:00
|
|
|
- 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"
|
2022-06-14 13:46:10 +02:00
|
|
|
- name: Checkout Hyprland
|
2022-06-14 11:48:42 +02:00
|
|
|
uses: actions/checkout@v3
|
|
|
|
with:
|
|
|
|
submodules: true
|
2022-06-14 13:46:10 +02:00
|
|
|
- name: Configure
|
2022-06-14 11:48:42 +02:00
|
|
|
run: |
|
|
|
|
meson obj-x86_64-pc-linux-gnu \
|
|
|
|
-Ddefault_library=static
|
2022-06-14 13:46:10 +02:00
|
|
|
- name: Compile
|
2022-06-14 11:48:42 +02:00
|
|
|
run: ninja -C obj-x86_64-pc-linux-gnu
|
2022-10-27 12:26:35 +02:00
|
|
|
|
|
|
|
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
|
2023-12-07 11:41:09 +01:00
|
|
|
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 tomlplusplus
|
2023-03-03 22:37:30 +01:00
|
|
|
- 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"
|
2022-10-27 12:26:35 +02:00
|
|
|
- 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
|
2023-10-14 19:48:05 +02:00
|
|
|
run: make release
|
2023-12-06 23:54:56 +01:00
|
|
|
|
|
|
|
clang-format:
|
|
|
|
name: "Code Style (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 tomlplusplus
|
|
|
|
- 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: clang-format check
|
|
|
|
run: ninja -C obj-x86_64-pc-linux-gnu clang-format-check
|