Hyprland/.github/workflows/ci.yaml

109 lines
5.0 KiB
YAML
Raw Normal View History

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