diff --git a/.github/workflows/safari-signing-test.yml b/.github/workflows/safari-signing-test.yml new file mode 100644 index 00000000..0a3b837c --- /dev/null +++ b/.github/workflows/safari-signing-test.yml @@ -0,0 +1,75 @@ +name: Safari Signing Test + +on: + workflow_dispatch: + inputs: + run_safari_signing_test: + description: Run the Safari signing and publish step + type: boolean + required: true + default: true + +permissions: + contents: read + +jobs: + safari-publish: + name: Safari Publish + runs-on: macos-26 + if: ${{ inputs.run_safari_signing_test }} + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + submodules: true + + - name: Install pnpm + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 + + - name: Setup Node.js + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: 24.16.0 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install + + - name: Build Safari project + run: make safari + + - name: Set unique build number + shell: bash + run: | + build_number="$(date -u +%Y%m%d%H%M%S)${GITHUB_RUN_ATTEMPT}" + project_pbxproj='dist/safari/JabRef Browser Extension.xcodeproj/project.pbxproj' + perl -0pi -e "s/CURRENT_PROJECT_VERSION = [0-9]+;/CURRENT_PROJECT_VERSION = ${build_number};/g" "$project_pbxproj" + + for plist in \ + 'dist/safari/JabRef Browser Extension/Info.plist' \ + 'dist/safari/JabRef Browser Extension Extension/Info.plist' \ + 'dist/safari/JabRef Browser Extension.app/Contents/Info.plist' \ + 'dist/safari/JabRef Browser Extension.app/Contents/PlugIns/JabRef Browser Extension Extension.appex/Contents/Info.plist' + do + if [ -f "$plist" ]; then + /usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${build_number}" "$plist" >/dev/null 2>&1 || \ + /usr/libexec/PlistBuddy -c "Add :CFBundleVersion string ${build_number}" "$plist" + fi + done + + - name: Upload Safari to App Store Connect + uses: rxliuli/safari-webext-publish-action@624701331ecbeb38464a09d3cac6d246b6efb006 + with: + project-path: "dist/safari" + bundle-identifier: "org.jabref.JabRef-Browser-Extension" + team-id: ${{ secrets.APPLE_TEAM_ID }} + app-signing-identity: ${{ secrets.SAFARI_APP_SIGNING_IDENTITY }} + installer-signing-identity: ${{ secrets.SAFARI_INSTALLER_SIGNING_IDENTITY }} + env: + APPLE_CERTIFICATE_BASE64: ${{ secrets.APPLE_CERTIFICATE_BASE64 }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_MACOS_PROVISIONING_PROFILE_BASE64: ${{ secrets.APPLE_MACOS_PROVISIONING_PROFILE_BASE64 }} + APPLE_MACOS_EXTENSION_PROVISIONING_PROFILE_BASE64: ${{ secrets.APPLE_MACOS_EXTENSION_PROVISIONING_PROFILE_BASE64 }} + APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }} + APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} + APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} diff --git a/package.json b/package.json index a3315976..e410bae7 100644 --- a/package.json +++ b/package.json @@ -53,5 +53,5 @@ "vue-tsc": "3.3.3", "wxt": "0.20.26" }, - "packageManager": "pnpm@10.34.1" + "packageManager": "pnpm@11.9.0" }