Files
ipsw/.github/workflows/prerelease.yml
2026-04-13 12:10:34 -06:00

87 lines
2.5 KiB
YAML

name: Pre-Release
on:
push:
branches: [master]
paths-ignore:
- "www/**"
- "docs/**"
- ".github/workflows/docs.yml"
- "*.md"
- "LICENSE"
workflow_dispatch:
permissions:
contents: write
actions: read
concurrency:
group: prerelease-${{ github.ref }}
cancel-in-progress: true
env:
PRERELEASE_TAG: v0.0.0-prerelease
jobs:
goreleaser:
# macOS runner (Apple Silicon) builds arm64 extras + cross-compiles linux/windows via Zig
runs-on: macos-latest
if: github.ref_type == 'branch' && github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.26"
cache: true
# - name: Install Rosetta (for x86_64 cross-build)
# run: softwareupdate --install-rosetta --agree-to-license || true
- name: Install dependencies (arm64)
run: |
brew install --quiet pkg-config zig
env:
HOMEBREW_NO_AUTO_UPDATE: 1
# x86_64 homebrew (Rosetta) bootstrap kept for later use; uncomment if/when Intel builds are needed.
# run: |
# softwareupdate --install-rosetta --agree-to-license || true
# mkdir /tmp/homebrew
# cd /tmp; curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
# sudo mv /tmp/homebrew /usr/local/homebrew
# arch -x86_64 /usr/local/homebrew/bin/brew install --quiet unicorn libusb pkg-config
# env:
# HOMEBREW_NO_AUTO_UPDATE: 1
- name: Delete existing prerelease/tag
run: gh release delete "$PRERELEASE_TAG" -y --cleanup-tag || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Retag prerelease to current commit
run: |
git tag -f "$PRERELEASE_TAG" "$(git rev-parse HEAD)"
- name: Run GoReleaser (prerelease)
uses: goreleaser/goreleaser-action@v7
with:
distribution: goreleaser
version: "~> v2"
args: >
release --clean --skip=announce
--config hack/goreleaser/prerelease.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GORELEASER_CURRENT_TAG: ${{ env.PRERELEASE_TAG }}
- name: Upload dist artifacts (for debugging)
if: failure()
uses: actions/upload-artifact@v7
with:
name: prerelease-dist
path: dist/**