diff --git a/.github/workflows/update-repo.yml b/.github/workflows/update-repo.yml index 3bed3ca..953d885 100644 --- a/.github/workflows/update-repo.yml +++ b/.github/workflows/update-repo.yml @@ -25,7 +25,10 @@ jobs: echo "ERROR: GPG_PRIVATE_KEY secret is empty!" exit 1 fi - echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --import --batch --yes + # Save key to a temp file to avoid "invalid option" command-line errors + echo "${{ secrets.GPG_PRIVATE_KEY }}" > private_key.gpg + gpg --batch --import private_key.gpg + rm private_key.gpg - name: Update Repository Database run: | @@ -34,12 +37,12 @@ jobs: mkdir -p db_temp - # Define passphrase variable from secrets (defaults to empty) + # Define passphrase variable from secrets PASS="${{ secrets.GPG_PASSPHRASE }}" for pkg in *.pkg.tar.zst; do # 1. Sign the package - gpg --batch --yes --pinentry-mode loopback --local-user 236328A7F2C2001E --passphrase "$PASS" --detach-sign --no-armor "$pkg" + echo "$PASS" | gpg --batch --yes --pinentry-mode loopback --local-user 236328A7F2C2001E --passphrase-fd 0 --detach-sign --no-armor "$pkg" # 2. Extract Metadata pkgname=$(bsdtar -xOf "$pkg" .PKGINFO | grep "^pkgname =" | cut -d' ' -f3) @@ -68,7 +71,7 @@ jobs: echo "$(bsdtar -xOf "$pkg" .PKGINFO | grep "^size =" | cut -d' ' -f3)" echo "" echo "%PGPSIG%" - gpg --batch --yes --pinentry-mode loopback --local-user 236328A7F2C2001E --passphrase "$PASS" --detach-sign --stdout --no-armor "$pkg" | base64 | tr -d '\n' + echo "$PASS" | gpg --batch --yes --pinentry-mode loopback --local-user 236328A7F2C2001E --passphrase-fd 0 --detach-sign --stdout --no-armor "$pkg" | base64 | tr -d '\n' echo "" } > "db_temp/$pkgname-$pkgver/desc" done @@ -77,7 +80,7 @@ jobs: cd db_temp tar -c * | gzip -9 > ../hyprarch-repo.db.tar.gz cd .. - gpg --batch --yes --pinentry-mode loopback --local-user 236328A7F2C2001E --passphrase "$PASS" --detach-sign --no-armor hyprarch-repo.db.tar.gz + echo "$PASS" | gpg --batch --yes --pinentry-mode loopback --local-user 236328A7F2C2001E --passphrase-fd 0 --detach-sign --no-armor hyprarch-repo.db.tar.gz # 4. Finalize cp hyprarch-repo.db.tar.gz hyprarch-repo.db @@ -140,7 +143,7 @@ jobs: git config --global user.email "github-actions[bot]@users.noreply.github.com" git add . if ! git diff-index --quiet HEAD; then - git commit -m "Cleanup script variables and finalize GPG signing" + git commit -m "Fix GPG import method and finalize signing" git push else echo "Nothing to change."