mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-08-28 05:27:41 +00:00
setup-bun installed the latest Bun at run time, so every job floated to new Bun releases the day they shipped. Bun bundles the SPA embedded in release binaries, so an unvetted Bun release could break or silently change shipped artifacts. Pin to 1.3.14, the version the last green nightly used, and hold off on the day-old 1.4.0 until it has soaked. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
73 lines
2.4 KiB
YAML
73 lines
2.4 KiB
YAML
name: Nightly
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 9 * * *"
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: nightly-release
|
|
cancel-in-progress: false
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
tag-nightly:
|
|
name: Tag nightly
|
|
runs-on: ubuntu-24.04-x86-32-cores
|
|
environment: nightly
|
|
permissions:
|
|
contents: read
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
steps:
|
|
- name: Mint GitHub App token
|
|
id: app-token
|
|
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
|
with:
|
|
client-id: ${{ vars.FABRO_RELEASES_APP_CLIENT_ID }}
|
|
private-key: ${{ secrets.FABRO_RELEASES_APP_PRIVATE_KEY }}
|
|
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
fetch-depth: 0 # full history + tags for nightly probing
|
|
persist-credentials: false
|
|
|
|
- name: Skip if HEAD is already a nightly tag
|
|
id: skip
|
|
run: |
|
|
last_tag=$(git describe --tags --match 'v*-nightly.*' --abbrev=0 2>/dev/null || true)
|
|
if [[ -n "$last_tag" ]] && [[ "$(git rev-parse HEAD)" == "$(git rev-parse "$last_tag^{commit}")" ]]; then
|
|
echo "HEAD already tagged as $last_tag — nothing to release."
|
|
echo "skip=true" >> "$GITHUB_OUTPUT"
|
|
fi
|
|
|
|
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
|
|
if: steps.skip.outputs.skip != 'true'
|
|
with:
|
|
bun-version: 1.3.14
|
|
no-cache: true
|
|
|
|
- name: Install bun deps (for SPA verify)
|
|
if: steps.skip.outputs.skip != 'true'
|
|
run: bun install --frozen-lockfile
|
|
|
|
- name: Set up Rust
|
|
if: steps.skip.outputs.skip != 'true'
|
|
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
|
|
with:
|
|
toolchain: 1.97.1
|
|
|
|
- uses: taiki-e/install-action@773334c0e05d7e699e4d78234494308223f3a2cf # nextest
|
|
if: steps.skip.outputs.skip != 'true'
|
|
|
|
- name: Release nightly
|
|
if: steps.skip.outputs.skip != 'true'
|
|
run: |
|
|
git config user.name "fabro-releases[bot]"
|
|
git config user.email "fabro-releases[bot]@users.noreply.github.com"
|
|
release_token='${{ steps.app-token.outputs.token }}'
|
|
git remote set-url origin \
|
|
"https://x-access-token:${release_token}@github.com/${GITHUB_REPOSITORY}.git"
|
|
unset release_token
|
|
cargo --locked dev release --nightly
|