diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 396acc811c5a..92d2808a7cc3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,6 +87,23 @@ jobs: test "$(./build/bin/bitcoin-cli -datadir="$DD" -chain=regtest getblockcount)" = "101" ./build/bin/bitcoin-cli -datadir="$DD" -chain=regtest stop + # Strip before packaging: the Linux artifact was 132MB of mostly debug + # symbols, which is a long download for something we hand to beginners. + - name: Strip + run: | + strip build/bin/bitcoind build/bin/bitcoin-cli 2>/dev/null || \ + strip -S build/bin/bitcoind build/bin/bitcoin-cli 2>/dev/null || true + ls -lh build/bin/bitcoind + + # The README offers "download the app" from /releases/latest, so every + # release has to carry it — otherwise that link 404s the moment a + # node-only release becomes the latest one. + - name: Build the Mac app + if: runner.os == 'macOS' + run: | + sh contrib/vibes/macos/build-app.sh --dmg + ls -lh dist/BitcoinVibes.dmg + - name: Package run: | SHA=$(git rev-parse HEAD) @@ -105,4 +122,5 @@ jobs: files: | vibes-node-${{ matrix.slug }}.tar.gz vibes-node-${{ matrix.slug }}.tar.gz.sha256 + ${{ runner.os == 'macOS' && 'dist/BitcoinVibes.dmg' || '' }} fail_on_unmatched_files: true diff --git a/.github/workflows/sync-alias.yml b/.github/workflows/sync-alias.yml new file mode 100644 index 000000000000..a547c1d41ad0 --- /dev/null +++ b/.github/workflows/sync-alias.yml @@ -0,0 +1,38 @@ +# Keep the legacy `vibes` branch pointing at `master`. +# +# `vibes` exists only so install links published before the rename keep +# resolving. It has drifted behind master three times because syncing it was a +# manual step somebody had to remember, so it is a manual step no longer. +# +# Fast-forward only: master always contains vibes, so this can never rewrite +# history or lose a commit. If it ever isn't a fast-forward, that means +# something unexpected happened and the job fails loudly rather than forcing. +name: Sync alias branch + +on: + push: + branches: [master] + workflow_dispatch: + +permissions: + contents: write + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Fast-forward vibes to master + run: | + set -e + git fetch origin master vibes + if git merge-base --is-ancestor origin/vibes origin/master; then + git push origin origin/master:refs/heads/vibes + echo "vibes fast-forwarded to $(git rev-parse --short=10 origin/master)" + else + echo "::error::vibes is not an ancestor of master — refusing to force. Resolve by hand." + exit 1 + fi