summaryrefslogtreecommitdiff
path: root/.forgejo/workflows/build-hyprland.yml
diff options
context:
space:
mode:
Diffstat (limited to '.forgejo/workflows/build-hyprland.yml')
-rw-r--r--.forgejo/workflows/build-hyprland.yml24
1 files changed, 20 insertions, 4 deletions
diff --git a/.forgejo/workflows/build-hyprland.yml b/.forgejo/workflows/build-hyprland.yml
index 87297ad..8f5f666 100644
--- a/.forgejo/workflows/build-hyprland.yml
+++ b/.forgejo/workflows/build-hyprland.yml
@@ -26,7 +26,7 @@ jobs:
run: |
set -euo pipefail
sudo pacman -Rdd --noconfirm hyprutils hyprwayland-scanner hyprlang hyprgraphics hyprcursor aquamarine hyprwire hyprland-guiutils hyprland xdg-desktop-portal-hyprland hyprpolkitagent hyprland-qt-support dms-shell || true
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || { sleep 15; sudo pacman -Syu --noconfirm; } || { sleep 15; sudo pacman -Syu --noconfirm; }
sudo pacman -S --needed --noconfirm \
base-devel cmake meson ninja clang llvm lld rust go git \
wayland wayland-protocols cairo pango libxkbcommon libinput \
@@ -44,12 +44,14 @@ jobs:
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
+ env:
+ GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
rm -rf "$GNUPGHOME"
mkdir -m 700 "$GNUPGHOME"
- echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import
+ printf '%s' "$GPG_PRIVATE_KEY" | base64 -d | gpg --batch --import
- name: Build hyprland-raveos stack
run: |
@@ -77,6 +79,14 @@ jobs:
dir="hyprland-raveos/$pkg"
[ -d "$dir" ] || continue
+ PKGVER=$(grep '^pkgver=' "$dir/PKGBUILD" | head -1 | cut -d= -f2 | tr -d "'\"")
+ PKGREL=$(grep '^pkgrel=' "$dir/PKGBUILD" | head -1 | cut -d= -f2 | tr -d "'\"")
+
+ if ls "$CORE/${pkg}-${PKGVER}-${PKGREL}-"*.pkg.tar.zst 2>/dev/null | grep -q .; then
+ echo "$pkg ${PKGVER}-${PKGREL} unchanged -> skip"
+ continue
+ fi
+
echo "=== Building $pkg ==="
cd "$dir"
rm -f *.pkg.tar.zst || true
@@ -91,12 +101,15 @@ jobs:
done
- name: Sign built packages
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
[ -f "$pkg" ] || continue
gpg --batch --yes --pinentry-mode loopback \
@@ -107,6 +120,8 @@ jobs:
rm -f "$PASSFILE"
- name: Update repo database and sync to VPS
+ env:
+ GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
run: |
set -euo pipefail
BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
@@ -130,7 +145,8 @@ jobs:
PASSFILE=$(mktemp)
chmod 600 "$PASSFILE"
- printf '%s' "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" > "$PASSFILE"
+ trap 'rm -f "$PASSFILE"' EXIT
+ printf '%s' "$GPG_PASSPHRASE" > "$PASSFILE"
for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase-file "$PASSFILE" \