Files
BridgeSwarm/.gitea/workflows/release.yml
T
snxraven 75275d7d91
CI / Build & Test (push) Successful in 28m9s
Fixes
2026-09-02 17:20:58 -04:00

102 lines
2.7 KiB
YAML

name: Release
on:
push:
tags:
- 'v*.*.*'
jobs:
release:
name: Build & Publish Release
runs-on: ssh
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check toolchain versions
run: node --version && npm --version
- name: Install root dependencies
run: npm install
- name: Install native-host dependencies
run: npm install
working-directory: native-host
- name: Build (host launcher, protomux, hrpc)
run: npm run build
- name: Build all platform binaries
run: node scripts/build-distributable.js --all --package
- name: Package extension (zip + xpi)
run: npm run pack
- name: Smoke test — run binary for current platform
run: |
echo "=== releases/ layout ==="
find releases/ -type f | sort
echo ""
MACHINE=$(uname -m)
echo "uname -m: $MACHINE"
BIN=""
for candidate in \
"releases/${MACHINE}/bridge-swarm-host" \
"releases/x86_64/bridge-swarm-host" \
"releases/aarch64/bridge-swarm-host" \
"releases/arm64/bridge-swarm-host" \
"releases/bridge-swarm-host"; do
if [ -f "$candidate" ]; then
BIN="$candidate"
break
fi
done
if [ -z "$BIN" ]; then
echo "No runnable binary found — skipping smoke test"
exit 0
fi
echo "Testing binary: $BIN"
chmod +x "$BIN"
OUTPUT=$(timeout 6 "$BIN" </dev/null 2>&1 || true)
echo "$OUTPUT"
if echo "$OUTPUT" | grep -q "\[bridge-swarm-host\] ready"; then
echo "PASS: binary started successfully"
else
echo "FAIL: binary did not print ready signal"
exit 1
fi
echo "Testing QVAC enable over native messaging"
python3 scripts/qvac-packed-selftest.py "$BIN"
- name: List release artifacts
run: |
echo "=== releases/ ==="
find releases/ -type f | sort
echo ""
find releases/ -type f -exec ls -lh {} \; | awk '{print $5, $9}'
- name: Generate checksums
run: |
cd releases
find . -name "*.zip" -o -name "*.xpi" | sort | xargs sha256sum > SHA256SUMS.txt
cat SHA256SUMS.txt
- name: Publish release
uses: gitea.com/actions/gitea-release-action@latest
with:
token: ${{ secrets.RELEASE_TOKEN }}
tag_name: ${{ gitea.ref_name }}
name: BridgeSwarm ${{ gitea.ref_name }}
files: |-
releases/*.zip
releases/*.xpi
releases/SHA256SUMS.txt
sha256sum: false