Activate Build 124 autonomous cycles

This commit is contained in:
Theodore Song
2026-08-22 20:38:28 -04:00
parent 3183612d13
commit 1ea235b0cf
3 changed files with 2 additions and 73 deletions
+1 -2
View File
@@ -35,8 +35,7 @@ jobs:
- run: node scripts/run-autonomous-cycle.mjs - run: node scripts/run-autonomous-cycle.mjs
env: env:
ARENA_URL: https://polymarket-site-eta.vercel.app ARENA_URL: https://polymarket-site-eta.vercel.app
# Keep Build 118 advancing until the Vercel free deployment quota resets. EXPECTED_BUILD: "124"
EXPECTED_BUILD: "118"
RUNTIME_BRANCH: runtime-state RUNTIME_BRANCH: runtime-state
RUNTIME_STATE_PATH: runtime/state.json RUNTIME_STATE_PATH: runtime/state.json
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-63
View File
@@ -1,63 +0,0 @@
name: Release Build 124 after Vercel quota reset
on:
schedule:
# Vercel's Hobby deployment quota is rolling. Retry across the reset
# window, then remove this workflow as soon as Build 124 is live.
- cron: "15 1-23/2 23 8 *"
- cron: "15 1-13/2 24 8 *"
workflow_dispatch:
permissions:
contents: write
concurrency:
group: release-build-124
cancel-in-progress: false
jobs:
release:
runs-on: ubuntu-latest
timeout-minutes: 35
steps:
- uses: actions/checkout@v4
with:
ref: main
fetch-depth: 0
- name: Trigger the deferred Vercel deployment
env:
ARENA_URL: https://polymarket-site-eta.vercel.app
run: |
if curl --fail --silent --show-error "${ARENA_URL}/?build_124_preflight=${GITHUB_RUN_ID}" | grep -q 'const BUILD_VERSION = 124;'; then
echo "Build 124 is already live."
exit 0
fi
printf 'Build 124 deployment retry from run %s at %s\n' "$GITHUB_RUN_ID" "$(date -u +%FT%TZ)" > .build-124-release-trigger
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .build-124-release-trigger
git commit -m "Retry Build 124 production deployment"
git push origin HEAD:main
- name: Wait for Build 124 in production
env:
ARENA_URL: https://polymarket-site-eta.vercel.app
run: |
for attempt in $(seq 1 40); do
if curl --fail --silent --show-error "${ARENA_URL}/?build_124_wait=${GITHUB_RUN_ID}-${attempt}" | grep -q 'const BUILD_VERSION = 124;'; then
echo "Build 124 is live."
exit 0
fi
sleep 30
done
echo "Build 124 did not become live; Build 118 remains the autonomous runtime target."
exit 1
- name: Activate the Build 124 autonomous runner
run: |
git pull --ff-only origin main
perl -0pi -e 's/EXPECTED_BUILD: "118"/EXPECTED_BUILD: "124"/' .github/workflows/autonomous-cycle.yml
perl -0pi -e 's/assert\.match\(workflow, \/EXPECTED_BUILD: "118"\/\);/assert.match(workflow, \/EXPECTED_BUILD: "124"\/);/' scripts/test-autonomous-runtime.mjs
rm -f .build-124-release-trigger
git rm .github/workflows/release-build-124.yml
git add .github/workflows/autonomous-cycle.yml scripts/test-autonomous-runtime.mjs
git commit -m "Activate Build 124 autonomous cycles"
git push origin HEAD:main
+1 -8
View File
@@ -5,7 +5,6 @@ import { ALLOWED_RUNTIME_KEYS, compactRuntimeTransportSnapshot, validateRuntimeS
const index = fs.readFileSync(new URL("../index.html", import.meta.url), "utf8"); const index = fs.readFileSync(new URL("../index.html", import.meta.url), "utf8");
const api = fs.readFileSync(new URL("../api/state.js", import.meta.url), "utf8"); const api = fs.readFileSync(new URL("../api/state.js", import.meta.url), "utf8");
const workflow = fs.readFileSync(new URL("../.github/workflows/autonomous-cycle.yml", import.meta.url), "utf8"); const workflow = fs.readFileSync(new URL("../.github/workflows/autonomous-cycle.yml", import.meta.url), "utf8");
const releaseWorkflow = fs.readFileSync(new URL("../.github/workflows/release-build-124.yml", import.meta.url), "utf8");
const vercelConfig = JSON.parse(fs.readFileSync(new URL("../vercel.json", import.meta.url), "utf8")); const vercelConfig = JSON.parse(fs.readFileSync(new URL("../vercel.json", import.meta.url), "utf8"));
const runner = fs.readFileSync(new URL("./run-autonomous-cycle.mjs", import.meta.url), "utf8"); const runner = fs.readFileSync(new URL("./run-autonomous-cycle.mjs", import.meta.url), "utf8");
const resolutionAudit = JSON.parse(fs.readFileSync(new URL("../research/resolution-week-no-audit.json", import.meta.url), "utf8")); const resolutionAudit = JSON.parse(fs.readFileSync(new URL("../research/resolution-week-no-audit.json", import.meta.url), "utf8"));
@@ -72,18 +71,12 @@ assert.match(api, /Buffer\.from\(file\.content/);
assert.match(api, /searchParams\.set\("runtime", `\$\{Date\.now\(\)\}/); assert.match(api, /searchParams\.set\("runtime", `\$\{Date\.now\(\)\}/);
assert.match(workflow, /cron: "2,7,12,17,22,27,32,37,42,47,52,57 \* \* \* \*"/); assert.match(workflow, /cron: "2,7,12,17,22,27,32,37,42,47,52,57 \* \* \* \*"/);
assert.match(workflow, /contents: write/); assert.match(workflow, /contents: write/);
assert.match(workflow, /EXPECTED_BUILD: "118"/); assert.match(workflow, /EXPECTED_BUILD: "124"/);
assert.match(workflow, /actions: write/); assert.match(workflow, /actions: write/);
assert.match(workflow, /cancel-in-progress: false/); assert.match(workflow, /cancel-in-progress: false/);
assert.match(workflow, /next=\$\(\( \(now \/ 300 \+ 1\) \* 300 \+ 15 \)\)/); assert.match(workflow, /next=\$\(\( \(now \/ 300 \+ 1\) \* 300 \+ 15 \)\)/);
assert.match(workflow, /actions\/workflows\/autonomous-cycle\.yml\/dispatches/); assert.match(workflow, /actions\/workflows\/autonomous-cycle\.yml\/dispatches/);
assert.match(workflow, /--data '\{"ref":"main"\}'/); assert.match(workflow, /--data '\{"ref":"main"\}'/);
assert.match(releaseWorkflow, /name: Release Build 124 after Vercel quota reset/);
assert.match(releaseWorkflow, /cron: "15 1-23\/2 23 8 \*"/);
assert.match(releaseWorkflow, /cron: "15 1-13\/2 24 8 \*"/);
assert.match(releaseWorkflow, /grep -q 'const BUILD_VERSION = 124;'/);
assert.match(releaseWorkflow, /EXPECTED_BUILD: "124"/);
assert.doesNotMatch(releaseWorkflow, /Build 123|build_123|build-123/);
assert.match(index, /cloudRestartReconstructsOfflineCache:true/); assert.match(index, /cloudRestartReconstructsOfflineCache:true/);
assert.match(index, /saveSuggestions\(sugs,markets\.length,analysisMarkets\.length,bundleAudit\)/); assert.match(index, /saveSuggestions\(sugs,markets\.length,analysisMarkets\.length,bundleAudit\)/);
assert.match(index, /const NEG_RISK_EVENT_SCAN_LIMIT=1000;/); assert.match(index, /const NEG_RISK_EVENT_SCAN_LIMIT=1000;/);