T1C: CMake Release Pipeline (CI)

This commit is contained in:
ThatOneCalculator 2022-06-22 14:45:48 -07:00 committed by vaxerski
parent a98c07cd00
commit 5614f28dfd
2 changed files with 29 additions and 70 deletions

View file

@ -13,34 +13,44 @@ jobs:
sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf sed -i 's/SigLevel = Required DatabaseOptional/SigLevel = Optional TrustAll/' /etc/pacman.conf
pacman --noconfirm --noprogressbar -Syyu 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 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
- name: Set up user - name: Set up user
run: | run: |
useradd -m githubuser useradd -m githubuser
echo -e "root ALL=(ALL:ALL) ALL\ngithubuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers echo -e "root ALL=(ALL:ALL) ALL\ngithubuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers
- name: Build wlroots - name: Build wlroots
run: | run: |
su githubuser -c "cd ~ && git clone https://gitlab.freedesktop.org/wlroots/wlroots" su githubuser -c "cd ~ && git clone https://gitlab.freedesktop.org/wlroots/wlroots"
su githubuser -c "cd ~/wlroots && meson build/ --prefix=/usr && ninja -C build/ && sudo ninja -C build/ install && cd .." su githubuser -c "cd ~/wlroots && meson build/ --prefix=/usr && ninja -C build/ && sudo ninja -C build/ install && cd .."
- name: Fix permissions for git - name: Fix permissions for git
run: | run: |
git config --global --add safe.directory /__w/Hyprland/Hyprland git config --global --add safe.directory /__w/Hyprland/Hyprland
- name: Checkout Hyprland - name: Checkout Hyprland
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
submodules: recursive submodules: recursive
- name: Build Hyprland
- name: Build Hyprland With default settings
run: | run: |
git submodule sync --recursive && git submodule update --init --force --recursive git submodule sync --recursive && git submodule update --init --force --recursive
make all make all
- name: Compress and package artifacts
- name: Build Hyprland with LEGACY_RENDERER
run: | run: |
make legacyrenderer 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/
cp subprojects/wlroots/build/libwlroots.so.11032 release-files/
cp x86_64-pc-linux-gnu/usr/local/bin/* 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: meson:
name: "Build Hyprland with Meson (Arch)" name: "Build Hyprland with Meson (Arch)"
@ -63,13 +73,13 @@ jobs:
-Ddefault_library=static -Ddefault_library=static
- name: Compile - name: Compile
run: ninja -C obj-x86_64-pc-linux-gnu run: ninja -C obj-x86_64-pc-linux-gnu
- name: Compress artifacts # - name: Compress artifacts
run: | # run: |
mkdir x86_64-pc-linux-gnu # mkdir x86_64-pc-linux-gnu
DESTDIR=$PWD/x86_64-pc-linux-gnu meson install -C obj-x86_64-pc-linux-gnu --tags runtime # DESTDIR=$PWD/x86_64-pc-linux-gnu meson install -C obj-x86_64-pc-linux-gnu --tags runtime
tar -cvf x86_64-pc-linux-gnu.tar.xz x86_64-pc-linux-gnu # tar -cvf x86_64-pc-linux-gnu.tar.xz x86_64-pc-linux-gnu
- name: Upload artifacts # - name: Upload artifacts
uses: actions/upload-artifact@v3 # uses: actions/upload-artifact@v3
with: # with:
name: Build artifacts (x86_64-pc-linux-gnu) # name: Build artifacts (x86_64-pc-linux-gnu)
path: x86_64-pc-linux-gnu.tar.xz # path: x86_64-pc-linux-gnu.tar.xz

View file

@ -1,51 +0,0 @@
name: Release
on:
push:
tags:
- "v*.*.*"
jobs:
meson-rl:
name: "Release 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 xcb-util-errors xcb-util-renderutil xcb-util-wm xorg-fonts-encodings xorg-server-common xorg-setxkbmap xorg-xkbcomp xorg-xwayland git go clang lld libc++ pkgconf meson ninja wayland wayland-protocols libinput libxkbcommon pixman glm libdrm libglvnd cairo pango systemd scdoc base-devel seatd
- 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
- name: Compress and package artifacts
run: |
mkdir x86_64-pc-linux-gnu
mkdir release-files
mkdir release-files/example
mkdir release-files/assets
DESTDIR=$PWD/x86_64-pc-linux-gnu meson install -C obj-x86_64-pc-linux-gnu --tags runtime
cp ./LICENSE release-files/
cp x86_64-pc-linux-gnu/usr/local/bin/* release-files/
cp -r example/ release-files/
cp -r assets/ release-files/
tar -cvf Hyprland.tar.xz release-files
- name: Upload release archive
uses: actions/upload-artifact@v3
with:
name: Release archive (x86_64-pc-linux-gnu)
path: Hyprland.tar.xz
# - name: Release
# uses: softprops/action-gh-release@v1
# if: startsWith(github.ref, 'refs/tags/')
# with:
# files: Hyprland.tar.xz