diff options
Diffstat (limited to '.forgejo/workflows/build-hyprland.yml')
| -rw-r--r-- | .forgejo/workflows/build-hyprland.yml | 24 |
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" \ |