docs: add external links to status page and benchmark names #7
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release DMG + Appcast | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| permissions: | |
| contents: write | |
| pages: write | |
| id-token: write | |
| jobs: | |
| release: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Configure GitHub Pages | |
| uses: actions/configure-pages@v5 | |
| - name: Install Tuist | |
| run: brew install tuist | |
| - name: Install Tuist dependencies | |
| run: TUIST_SKIP_UPDATE_CHECK=1 tuist install | |
| - name: Validate Sparkle secrets | |
| env: | |
| SPARKLE_PRIVATE_ED_KEY: ${{ secrets.SPARKLE_PRIVATE_ED_KEY }} | |
| SPARKLE_PUBLIC_ED_KEY: ${{ secrets.SPARKLE_PUBLIC_ED_KEY }} | |
| run: | | |
| if [ -z "$SPARKLE_PRIVATE_ED_KEY" ] || [ -z "$SPARKLE_PUBLIC_ED_KEY" ]; then | |
| echo "SPARKLE_PRIVATE_ED_KEY and SPARKLE_PUBLIC_ED_KEY must be configured." | |
| exit 1 | |
| fi | |
| - name: Import Apple signing certificate | |
| env: | |
| APPLE_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_CERTIFICATE_P12_BASE64 }} | |
| APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
| APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} | |
| if: ${{ env.APPLE_CERTIFICATE_P12_BASE64 != '' && env.APPLE_CERTIFICATE_PASSWORD != '' && env.APPLE_SIGNING_IDENTITY != '' }} | |
| run: | | |
| CERT_PATH="$RUNNER_TEMP/signing-certificate.p12" | |
| KEYCHAIN_PATH="$RUNNER_TEMP/build.keychain-db" | |
| KEYCHAIN_PASSWORD="$(uuidgen)" | |
| echo "$APPLE_CERTIFICATE_P12_BASE64" | base64 -D > "$CERT_PATH" | |
| security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH" | |
| security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH" | |
| security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH" | |
| security import "$CERT_PATH" -k "$KEYCHAIN_PATH" -P "$APPLE_CERTIFICATE_PASSWORD" -f pkcs12 -A -T /usr/bin/codesign -T /usr/bin/security | |
| security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH" | |
| security list-keychains -d user -s "$KEYCHAIN_PATH" | |
| security default-keychain -d user -s "$KEYCHAIN_PATH" | |
| - name: Package DMG | |
| id: package | |
| env: | |
| CODESIGN_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} | |
| APPLE_ID: ${{ secrets.APPLE_ID }} | |
| APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} | |
| APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
| MENU_STATUS_BUILD: ${{ github.run_number }} | |
| MENU_STATUS_FEED_URL: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/appcast.xml | |
| MENU_STATUS_PUBLIC_ED_KEY: ${{ secrets.SPARKLE_PUBLIC_ED_KEY }} | |
| run: | | |
| ./package-app.sh "${GITHUB_REF_NAME#v}" | |
| - name: Upload GitHub release asset | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: ${{ steps.package.outputs.artifact_path }} | |
| generate_release_notes: true | |
| fail_on_unmatched_files: true | |
| - name: Generate appcast.xml | |
| env: | |
| SPARKLE_PRIVATE_ED_KEY: ${{ secrets.SPARKLE_PRIVATE_ED_KEY }} | |
| run: | | |
| VERSION="${GITHUB_REF_NAME#v}" | |
| ARTIFACT_PATH="${{ steps.package.outputs.artifact_path }}" | |
| ARTIFACT_NAME="${{ steps.package.outputs.artifact_name }}" | |
| SPARKLE_BIN="Tuist/.build/artifacts/sparkle/Sparkle/bin" | |
| APPCAST_WORK_DIR="$RUNNER_TEMP/appcast" | |
| PAGES_DIR="$RUNNER_TEMP/pages" | |
| DOWNLOAD_PREFIX="https://github.com/${GITHUB_REPOSITORY}/releases/download/v$VERSION/" | |
| mkdir -p "$APPCAST_WORK_DIR" "$PAGES_DIR" | |
| cp "$ARTIFACT_PATH" "$APPCAST_WORK_DIR/$ARTIFACT_NAME" | |
| echo "$SPARKLE_PRIVATE_ED_KEY" | "$SPARKLE_BIN/sign_update" --ed-key-file - "$APPCAST_WORK_DIR/$ARTIFACT_NAME" >/dev/null | |
| echo "$SPARKLE_PRIVATE_ED_KEY" | "$SPARKLE_BIN/generate_appcast" \ | |
| --ed-key-file - \ | |
| --download-url-prefix "$DOWNLOAD_PREFIX" \ | |
| "$APPCAST_WORK_DIR" | |
| cp "$APPCAST_WORK_DIR/appcast.xml" "$PAGES_DIR/appcast.xml" | |
| - name: Upload Pages artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: ${{ runner.temp }}/pages | |
| deploy-appcast: | |
| needs: release | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |