aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/ci.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yaml')
-rw-r--r--.github/workflows/ci.yaml113
1 files changed, 40 insertions, 73 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index e68dc2a8..01bb43d1 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -8,29 +8,20 @@ jobs:
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 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: Fix permissions for git
- run: |
- git config --global --add safe.directory /__w/Hyprland/Hyprland
- - name: Checkout Hyprland
- uses: actions/checkout@v3
+ - name: Checkout repository actions
+ uses: actions/checkout@v4
with:
- submodules: recursive
+ sparse-checkout: .github/actions
+
+ - name: Setup base
+ uses: ./.github/actions/setup_base
+ with:
+ INSTALL_XORG_PKGS: true
+
- 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
@@ -45,6 +36,7 @@ jobs:
cp -r example/ hyprland/
cp -r assets/ hyprland/
tar -cvf Hyprland.tar.xz hyprland
+
- name: Release
uses: actions/upload-artifact@v3
with:
@@ -57,28 +49,19 @@ jobs:
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
+ - name: Checkout repository actions
+ uses: actions/checkout@v4
with:
- submodules: true
+ sparse-checkout: .github/actions
+
+ - name: Setup base
+ uses: ./.github/actions/setup_base
+
- name: Configure
- run: |
- meson obj-x86_64-pc-linux-gnu \
- -Ddefault_library=static
+ run: meson setup build -Ddefault_library=static
+
- name: Compile
- run: ninja -C obj-x86_64-pc-linux-gnu
+ run: ninja -C build
noxwayland:
name: "Build Hyprland in pure Wayland (Arch)"
@@ -86,24 +69,17 @@ jobs:
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 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
+ - name: Checkout repository actions
+ uses: actions/checkout@v4
with:
- submodules: true
+ sparse-checkout: .github/actions
+
+ - name: Setup base
+ uses: ./.github/actions/setup_base
+
- 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
+ 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
@@ -113,25 +89,16 @@ jobs:
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
+ - name: Checkout repository actions
+ uses: actions/checkout@v4
with:
- submodules: true
+ sparse-checkout: .github/actions
+
+ - name: Setup base
+ uses: ./.github/actions/setup_base
+
- name: Configure
- run: |
- meson obj-x86_64-pc-linux-gnu \
- -Ddefault_library=static
+ run: meson setup build -Ddefault_library=static
+
- name: clang-format check
- run: ninja -C obj-x86_64-pc-linux-gnu clang-format-check
+ run: ninja -C build clang-format-check