Fix release workflow gaps blocking first macOS beta

- Appcast publish: fetch gh-pages into a local branch before creating
  the worktree. actions/checkout's narrow refspec meant the branch was
  checked out detached, so `git push origin gh-pages` failed with
  "src refspec gh-pages does not match any" on a fresh runner.
- Gate the AltStore source update on an iOS build being part of the
  release; a mac/tvOS-only release has no IPA and would publish a
  broken entry.
- Pass the release tag to update-altstore explicitly (gh's "latest
  release" excludes prereleases), parse the build number correctly for
  beta tags (2.0.0-beta.263 -> 263, not beta.263), use the real
  Yattee-<version>-iOS.ipa asset name, and fail instead of writing a
  size-0 entry with a dead URL when the IPA asset is missing.
This commit is contained in:
Arkadiusz Fal
2026-06-24 07:25:29 +02:00
parent da6c949f51
commit 80ec622e03
2 changed files with 38 additions and 10 deletions

View File

@@ -289,9 +289,12 @@ jobs:
echo "sign_update=$SIGN" >> "$GITHUB_OUTPUT"
- name: Checkout gh-pages (create if missing)
run: |
git fetch origin gh-pages || true
if git rev-parse --verify origin/gh-pages >/dev/null 2>&1; then
git worktree add gh-pages origin/gh-pages
# Fetch into a local branch: actions/checkout configures a narrow
# refspec, so a plain `git fetch origin gh-pages` never creates
# origin/gh-pages, and a detached worktree has no local branch for
# `git push origin gh-pages` to resolve.
if git fetch origin +refs/heads/gh-pages:refs/heads/gh-pages; then
git worktree add gh-pages gh-pages
else
# First run — create orphan gh-pages with only appcast scaffolding.
git worktree add --detach gh-pages HEAD
@@ -341,5 +344,10 @@ jobs:
fi
update_altstore:
# Only when an iOS IPA was actually built and released — a mac/tvOS-only
# release has no IPA and would corrupt the AltStore source.
if: ${{ inputs.build_ios && success() }}
needs: [release]
uses: ./.github/workflows/update-altstore.yml
with:
tag: ${{ needs.release.outputs.tag }}