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 :
2024-07-27 21:17:05 +02:00
if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork
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 :
2023-12-10 20:26:25 +01:00
- name : Checkout repository actions
uses : actions/checkout@v4
2022-05-31 10:47:56 +02:00
with :
2023-12-10 20:26:25 +01:00
sparse-checkout : .github/actions
- name : Setup base
uses : ./.github/actions/setup_base
with :
INSTALL_XORG_PKGS : true
2022-06-22 23:45:48 +02:00
- name : Build Hyprland
2022-03-30 18:30:03 +02:00
run : |
make all
2023-12-10 20:26:25 +01:00
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/
2024-03-06 16:26:52 +01:00
cp build/hyprpm/hyprpm 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
2023-12-10 20:26:25 +01:00
2022-06-22 23:45:48 +02:00
- name : Release
2024-11-06 18:50:01 +01:00
uses : actions/upload-artifact@v4
2022-06-22 23:45:48 +02:00
with :
name : Build archive
path : Hyprland.tar.xz
2022-06-14 11:48:42 +02:00
meson :
2024-07-27 21:17:05 +02:00
if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork
2022-06-14 11:48:42 +02:00
name : "Build Hyprland with Meson (Arch)"
runs-on : ubuntu-latest
container :
image : archlinux
steps :
2023-12-10 20:26:25 +01:00
- name : Checkout repository actions
uses : actions/checkout@v4
2022-06-14 11:48:42 +02:00
with :
2023-12-10 20:26:25 +01:00
sparse-checkout : .github/actions
- name : Setup base
uses : ./.github/actions/setup_base
2022-06-14 13:46:10 +02:00
- name : Configure
2023-12-10 20:26:25 +01:00
run : meson setup build -Ddefault_library=static
2022-06-14 13:46:10 +02:00
- name : Compile
2023-12-10 20:26:25 +01:00
run : ninja -C build
2022-10-27 12:26:35 +02:00
2024-04-23 10:02:51 +02:00
no-pch :
2024-07-27 21:17:05 +02:00
if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork
2024-04-23 10:02:51 +02:00
name : "Build Hyprland without precompiled headers (Arch)"
runs-on : ubuntu-latest
container :
image : archlinux
steps :
- name : Checkout repository actions
uses : actions/checkout@v4
with :
sparse-checkout : .github/actions
- name : Setup base
uses : ./.github/actions/setup_base
with :
INSTALL_XORG_PKGS : true
- name : Compile
run : make nopch
2022-10-27 12:26:35 +02:00
noxwayland :
2024-07-27 21:17:05 +02:00
if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork
2022-10-27 12:26:35 +02:00
name : "Build Hyprland in pure Wayland (Arch)"
runs-on : ubuntu-latest
container :
image : archlinux
steps :
2023-12-10 20:26:25 +01:00
- name : Checkout repository actions
uses : actions/checkout@v4
2022-10-27 12:26:35 +02:00
with :
2023-12-10 20:26:25 +01:00
sparse-checkout : .github/actions
- name : Setup base
uses : ./.github/actions/setup_base
2022-10-27 12:26:35 +02:00
- name : Configure
2023-12-10 20:26:25 +01:00
run : mkdir -p build && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DNO_XWAYLAND:STRING=true -H./ -B./build -G Ninja
2022-10-27 12:26:35 +02:00
- name : Compile
2023-10-14 19:48:05 +02:00
run : make release
2023-12-06 23:54:56 +01:00
clang-format :
2024-07-27 21:17:05 +02:00
if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork
2023-12-06 23:54:56 +01:00
name : "Code Style (Arch)"
runs-on : ubuntu-latest
container :
image : archlinux
steps :
2023-12-10 20:26:25 +01:00
- name : Checkout repository actions
uses : actions/checkout@v4
2023-12-06 23:54:56 +01:00
with :
2023-12-10 20:26:25 +01:00
sparse-checkout : .github/actions
- name : Setup base
uses : ./.github/actions/setup_base
2023-12-06 23:54:56 +01:00
- name : Configure
2023-12-10 20:26:25 +01:00
run : meson setup build -Ddefault_library=static
2023-12-06 23:54:56 +01:00
- name : clang-format check
2023-12-10 20:26:25 +01:00
run : ninja -C build clang-format-check
2025-01-09 21:54:25 +01:00
- name : clang-format apply
if : ${{ failure() && github.event_name == 'pull_request' }}
run : ninja -C build clang-format
- name : Create patch
if : ${{ failure() && github.event_name == 'pull_request' }}
run : |
echo 'Please fix the formatting issues by running [`clang-format`](https://wiki.hyprland.org/Contributing-and-Debugging/PR-Guidelines/#code-style), or directly apply this patch:' > clang-format.patch
echo '<details>' >> clang-format.patch
echo '<summary>clang-format.patch</summary>' >> clang-format.patch
echo >> clang-format.patch
echo '```diff' >> clang-format.patch
git diff >> clang-format.patch
echo '```' >> clang-format.patch
echo >> clang-format.patch
echo '</details>' >> clang-format.patch
- name : Comment patch
if : ${{ failure() && github.event_name == 'pull_request' }}
uses : mshick/add-pr-comment@v2
with :
message-path : |
clang-format.patch