ci: install idb-companion from its tap and stop interpolating inputs

idb-companion is not in homebrew-core, so the ios leg died before it
built anything. replay-ui expanded dispatch inputs into the shell.
This commit is contained in:
pj committed 2026-08-14 22:41:53 +05:30
1 parent f1989324a2
commit 5ad545a6ba
2 files changed
+19 -7

No files matched your search

+3 -1
View File
@@ -126,8 +126,10 @@ jobs:
with: with:
bun-version: "1.3.13" bun-version: "1.3.13"
# idb-companion is not in homebrew-core, only in facebook/homebrew-fb, so
# it has to be named by its full tap path. xcodegen and just are core.
- name: Install idb-companion, xcodegen and just - name: Install idb-companion, xcodegen and just
run: brew install idb-companion xcodegen just run: brew install facebook/fb/idb-companion xcodegen just
- name: Set up JDK 17 - name: Set up JDK 17
uses: actions/setup-java@v4 uses: actions/setup-java@v4
+16 -6
View File
@@ -4,9 +4,10 @@ name: replay-ui
# and it is a demo of the product loop, not a merge gate. # and it is a demo of the product loop, not a merge gate.
# #
# The shape is: produce a real trace, serve it with `sanderling replay`, then run # The shape is: produce a real trace, serve it with `sanderling replay`, then run
# a spec against that UI. Any violation fails the job, because every property in # a spec against that UI. Any violation fails the job. Six of the seven
# replay-ui/sanderling/spec.ts is a cross-panel agreement that holds for any # properties in replay-ui/sanderling/spec.ts are cross-panel agreements that hold
# trace. # for any trace; the seventh is the stock noUncaughtExceptions. None of them
# needs recalibrating when the fixture changes.
on: on:
workflow_dispatch: workflow_dispatch:
@@ -89,6 +90,9 @@ jobs:
echo "RUN_URL=http://127.0.0.1:8793/runs/$run_id/steps/1" >> "$GITHUB_ENV" echo "RUN_URL=http://127.0.0.1:8793/runs/$run_id/steps/1" >> "$GITHUB_ENV"
curl -sf "http://127.0.0.1:8793/runs/$run_id/steps/1" >/dev/null curl -sf "http://127.0.0.1:8793/runs/$run_id/steps/1" >/dev/null
# Inputs go through env rather than into the script text: a `${{ }}` is
# substituted before bash ever sees the line, so a seed of `$(id)` would
# run as a command.
- name: Fuzz the replay UI - name: Fuzz the replay UI
run: | run: |
./bin/sanderling test \ ./bin/sanderling test \
@@ -96,10 +100,13 @@ jobs:
--spec replay-ui/sanderling/spec.ts \ --spec replay-ui/sanderling/spec.ts \
--bundle-id "$RUN_URL" \ --bundle-id "$RUN_URL" \
--duration 10m \ --duration 10m \
--max-steps "${{ inputs.max-steps }}" \ --max-steps "$MAX_STEPS" \
--seed "${{ inputs.seed }}" \ --seed "$SEED" \
--exit-on-violation \ --exit-on-violation \
--output runs/dogfood --output runs/dogfood
env:
SEED: ${{ inputs.seed }}
MAX_STEPS: ${{ inputs.max-steps }}
- name: Summarise - name: Summarise
if: always() if: always()
@@ -107,13 +114,16 @@ jobs:
{ {
echo "### replay-ui dogfood" echo "### replay-ui dogfood"
echo echo
echo "- seed \`${{ inputs.seed }}\`, budget ${{ inputs.max-steps }} steps" echo "- seed \`$SEED\`, budget $MAX_STEPS steps"
for dir in runs/dogfood/*/; do for dir in runs/dogfood/*/; do
steps=$(wc -l < "$dir/trace.jsonl" | tr -d ' ') steps=$(wc -l < "$dir/trace.jsonl" | tr -d ' ')
violations=$(grep -c '"violations":\[' "$dir/trace.jsonl" || true) violations=$(grep -c '"violations":\[' "$dir/trace.jsonl" || true)
echo "- $steps steps recorded, $violations step(s) with violations" echo "- $steps steps recorded, $violations step(s) with violations"
done done
} >> "$GITHUB_STEP_SUMMARY" } >> "$GITHUB_STEP_SUMMARY"
env:
SEED: ${{ inputs.seed }}
MAX_STEPS: ${{ inputs.max-steps }}
- name: Upload runs - name: Upload runs
if: always() if: always()