name: streamtop CI example
on:
workflow_dispatch:
jobs:
summary:
runs-on: ubuntu-latest
steps:
- name: Install streamtop
run: |
curl -fsSL -o streamtop.tgz \
"https://github.com/Jorji49/streamtop/releases/latest/download/streamtop-x86_64-unknown-linux-gnu.tar.gz"
tar -xzf streamtop.tgz
sudo install -m 755 streamtop /usr/local/bin/streamtop
streamtop --version
- name: Headless PASS/FAIL (JSON schema v1)
env:
STREAM_URL: ${{ vars.STREAM_URL }}
run: |
if [ -z "${STREAM_URL:-}" ]; then
echo "Set repository variable STREAM_URL to run this gate."
exit 0
fi
streamtop "$STREAM_URL" --summary --summary-format json --timeout 12 --probe-headers | tee summary.json
python3 - <<'PY'
import json, sys
doc = json.load(open("summary.json"))
assert doc.get("schema") == "streamtop.summary.v1", doc
assert doc.get("schema_version") == 1, doc
sys.exit(0 if doc.get("ok") else 1)
PY