nightly.yml

 1name: Nightly Release
 2
 3on:
 4  push:
 5    branches:
 6      - master
 7  workflow_dispatch:
 8
 9permissions:
10  contents: write
11
12jobs:
13  nightly:
14    runs-on: macos-latest
15    steps:
16      - name: Checkout
17        uses: actions/checkout@v6
18        with:
19          fetch-depth: 0
20
21      - name: Set up Go
22        uses: actions/setup-go@v6
23        with:
24          go-version: "1.26.1"
25
26      - name: Set up Zig
27        uses: goto-bus-stop/setup-zig@v2
28
29      - name: Get macOS SDK path
30        id: macos_sdk
31        run: echo "path=$(xcrun --show-sdk-path)" >> $GITHUB_OUTPUT
32
33      - name: Build with GoReleaser (snapshot)
34        uses: goreleaser/goreleaser-action@v7
35        with:
36          version: latest
37          args: release --snapshot --clean --config .goreleaser.nightly.yml
38        env:
39          SDK_PATH: ${{ steps.macos_sdk.outputs.path }}
40
41      - name: Delete existing nightly release
42        env:
43          GH_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }}
44        run: |
45          gh release delete nightlyv0 --yes --cleanup-tag || true
46
47      - name: Create nightly release
48        env:
49          GH_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }}
50        run: |
51          gh release create nightlyv0 dist/*.tar.gz dist/*.zip dist/checksums.txt \
52            --title "Nightly Build ($(git rev-parse --short HEAD))" \
53            --notes "This is an automated nightly build from the latest \`master\` commit ($(git rev-parse --short HEAD)).\nIt may be unstable — use stable releases for production." \
54            --prerelease \
55            --target master