name: Publish to AUR on: release: types: [released] workflow_dispatch: inputs: version: description: "Version to publish (e.g. 2.9.2 — no v prefix)" required: true type: string dry_run: description: "Skip the AUR push (safe test)" type: boolean default: true permissions: contents: read jobs: get-release-info: runs-on: ubuntu-latest outputs: version: ${{ steps.info.outputs.version }} deb_sha256: ${{ steps.hashes.outputs.deb_sha256 }} jar_sha256: ${{ steps.hashes.outputs.jar_sha256 }} steps: - name: Harden Runner uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3 with: egress-policy: audit - name: Extract version from tag or manual input id: info env: DISPATCH_VERSION: ${{ inputs.version }} RELEASE_TAG: ${{ github.event.release.tag_name }} run: | if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then VERSION="$DISPATCH_VERSION" else VERSION="$RELEASE_TAG" fi VERSION="${VERSION#v}" echo "version=$VERSION" >> "$GITHUB_OUTPUT" - name: Download release assets and compute SHA256 id: hashes env: VERSION: ${{ steps.info.outputs.version }} run: | BASE="https://github.com/Stirling-Tools/Stirling-PDF/releases/download/v${VERSION}" download_sha256() { local url="$1" local file file=$(basename "$url") curl -fsSL --retry 3 -o "$file" "$url" sha256sum "$file" | awk '{print $1}' } DEB_SHA=$(download_sha256 "${BASE}/Stirling-PDF-linux-x86_64.deb") JAR_SHA=$(download_sha256 "${BASE}/Stirling-PDF-with-login.jar") echo "deb_sha256=$DEB_SHA" >> "$GITHUB_OUTPUT" echo "jar_sha256=$JAR_SHA" >> "$GITHUB_OUTPUT" publish-aur: needs: get-release-info runs-on: ubuntu-latest steps: - name: Harden Runner uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3 with: egress-policy: audit - name: Checkout repository (for PKGBUILD templates) uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Update stirling-pdf-desktop PKGBUILD env: VERSION: ${{ needs.get-release-info.outputs.version }} DEB_SHA: ${{ needs.get-release-info.outputs.deb_sha256 }} run: | PKGBUILD=".github/aur/stirling-pdf-desktop/PKGBUILD" sed -i "s/^pkgver=.*/pkgver=${VERSION}/" "$PKGBUILD" sed -i "s/^pkgrel=.*/pkgrel=1/" "$PKGBUILD" sed -i "s/'PLACEHOLDER_DEB_SHA256'/'${DEB_SHA}'/" "$PKGBUILD" # Disabled until we sort out the server packaging story. # The third-party stirling-pdf-bin on AUR currently covers a similar use case. # - name: Update stirling-pdf-server-bin PKGBUILD # env: # VERSION: ${{ needs.get-release-info.outputs.version }} # JAR_SHA: ${{ needs.get-release-info.outputs.jar_sha256 }} # run: | # PKGBUILD=".github/aur/stirling-pdf-server-bin/PKGBUILD" # sed -i "s/^pkgver=.*/pkgver=${VERSION}/" "$PKGBUILD" # sed -i "s/^pkgrel=.*/pkgrel=1/" "$PKGBUILD" # sed -i "s/'PLACEHOLDER_JAR_SHA256'/'${JAR_SHA}'/" "$PKGBUILD" - name: Show updated PKGBUILD (for dry-run visibility) run: | echo "--- stirling-pdf-desktop PKGBUILD ---" cat .github/aur/stirling-pdf-desktop/PKGBUILD - name: Publish stirling-pdf-desktop to AUR if: ${{ github.event_name == 'release' || inputs.dry_run == false }} uses: KSXGitHub/github-actions-deploy-aur@da03e160361ce01bf087e790b6ffd196d7dccff7 # v4.1.3 with: pkgname: stirling-pdf-desktop pkgbuild: .github/aur/stirling-pdf-desktop/PKGBUILD commit_username: Stirling PDF Inc commit_email: contact@stirlingpdf.com ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }} commit_message: "Update to v${{ needs.get-release-info.outputs.version }}" # Disabled until we sort out the server packaging story. # - name: Publish stirling-pdf-server-bin to AUR # if: ${{ github.event_name == 'release' || inputs.dry_run == false }} # uses: KSXGitHub/github-actions-deploy-aur@2ac5a4c1d7035885d46b10e3193393be8460b6f1 # v4.1.1 # with: # pkgname: stirling-pdf-server-bin # pkgbuild: .github/aur/stirling-pdf-server-bin/PKGBUILD # commit_username: Stirling PDF Inc # commit_email: contact@stirlingpdf.com # ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }} # commit_message: "Update to v${{ needs.get-release-info.outputs.version }}"