Job: Check Runner: g1t, Linux X64 (Debian bookworm, Node 24, Python 3, Go, Rust) ##[group]G1T_TOKEN permissions contents: read metadata: read ##[endgroup] Checking out flagon-io/g1t into /home/runner/work/repo [command]git init --quiet [command]git remote add origin https://g1t.sh/flagon-io/g1t.git [command]git fetch --no-tags --prune --quiet --depth=1 origin refs/heads/main [command]git checkout --quiet --force -B main 767f267bec427211067f23a8d7031029f3c41014 Checked out 767f267bec427211067f23a8d7031029f3c41014 ##[group]Install Wrangler npm ci --workspaces=false --no-audit --no-fund ##[endgroup] shell: bash -e /home/runner/_temp/18ddc25a0605691a.sh added 37 packages in 10s npm warn install-scripts 2 packages have install scripts not yet covered by allowScripts: npm warn install-scripts esbuild@0.28.1 (postinstall: node install.js) npm warn install-scripts workerd@1.20261001.1 (postinstall: node install.js) npm warn install-scripts npm warn install-scripts Run `npm install-scripts ls` to review, or `npm install-scripts approve ` to allow. ##[group]The manifest matches every wrangler.jsonc node scripts/deploy.mjs manifest --check ##[endgroup] shell: bash -e /home/runner/_temp/18dec25cdfe9180d.sh deploy/stack.jsonc is consistent with every wrangler.jsonc. ##[group]The deploy tool's tests npm run test:deploy ##[endgroup] shell: bash -e /home/runner/_temp/18dfc25d24dd6dc4.sh > test:deploy > node --test "scripts/deploy/*.test.mjs" error: no matching package named `base64` found location searched: crates.io index required by package `g1t-api v0.1.0 (/home/runner/work/repo/apps/api)` note: offline mode (via `--offline`) can sometimes cause surprising resolution failures help: if this error is too confusing you may wish to retry without `--offline` ✔ the manifest matches every wrangler config in the repository (25.852122ms) ✔ every wrangler.jsonc is found, and only checked-in ones (67.718899ms) ✔ problems are found: an unlisted config, a later-stage binding, a wrong database, an unnamed KV (29.129858ms) ✔ stages follow bindings: nothing binds to a unit that ships after it (0.723931ms) ✔ Rust workers build with the shared script and the same wasm-opt level (0.712511ms) ✔ shared crates and packages are read from workspace metadata (0.404031ms) ✔ the runner's image is built from the runner crate and what it uses, on the base its lock names (0.581031ms) ✔ services/runner/base.json records the base its folder builds (60.424667ms) ✔ an image's hash ignores line endings, and its tags say what they are (118.763841ms) ✔ only the lockfile entries the runner is built from name its image (0.645781ms) ✔ the runner's deploy config names its image by reference, beside its wrangler.jsonc (17.084728ms) ✔ the registry is asked for an image's manifest, without Docker (1.219542ms) ✔ a push counts only when it ends with a digest, and is tried again (0.866442ms) ✔ a static Linux binary is told from a dynamic one (0.968141ms) ﹣ path dependencies agree with Cargo's own resolved graph (2171.924542ms) # cargo metadata could not resolve offline ✔ every import that leaves a unit's folder is covered by its dependencies or inputs (107.474093ms) ✔ a shared crate's change reaches every unit built from it, and no other (0.914981ms) ✔ a shared package's change reaches what imports it (1.874563ms) ✔ a crate's tests, benches and examples deploy nothing (0.430561ms) ✔ a Rust file compiled only for tests is found from what declares it (1.563453ms) ✔ this repository's test-only sources are read from git (697.942465ms) ✔ decide: a change only to tests deploys nothing (1.608453ms) ✔ own folders, declared inputs and root files (1.277112ms) ✔ a Cargo.lock change reaches only crates that use what changed (0.422961ms) ✔ a package-lock change reaches through workspace links (0.616921ms) ✔ decide: changed units deploy, others wait, unknown ones deploy (0.35233ms) ✔ decide: --force deploys unchanged units; a commit missing from history deploys (0.737212ms) ✔ decide: Cargo.lock counts only where it reaches (0.586491ms) ✔ decide: the runner's image rebuilds only when what it is built from changed (0.18899ms) ✔ the plan as data: migrations, and each stage's units in jobs that share a build (1.134752ms) ✔ units are picked by short name, folder or Worker name (0.565361ms) ✔ a CI job installs only what its units need (0.951552ms) ✔ a deploy is annotated with its commit, and read back (0.509731ms) ✔ the live commit: the live version's, looking through secret changes (0.39122ms) ✔ Wrangler's output: pending migrations and the version a deploy made (0.398021ms) ✔ the API's answers: the live commit as Wrangler's would give it (1.104302ms) ✔ the API's answers: a Worker never deployed, and a refusal, never throw (503.452681ms) ✔ the API is used only with the token Wrangler would be given (0.826361ms) ✔ pending migrations: the folder's files less the names in d1_migrations (1.465942ms) ✔ the pool runs everything, no more than its limit at once (15.620875ms) ✔ self-hosting builds every Rust service the manifest says it runs (0.731081ms) ✔ docs/SELF_HOSTING.md's table names every unit (0.358851ms) ✔ resolveStack works on a manifest with no workspace crates or packages (3.393706ms) ✔ decide: a commit older than what runs is never deployed by accident, even forced; --rollback means it (0.20846ms) ✔ a deploy by hand reports to the repository on g1t, and a workflow's does not (1.821463ms) ✔ webhooks: the hourly purge deletes old deliveries by time (3.740276ms) ✔ billing: this month's users are read from an index, not the ledger (41.820308ms) ✔ events: a repository's events of one type, newest first, page by page (2.452294ms) ✔ actions: a self-hosted runner's poll finds queued jobs by namespace, whatever its case (9.846706ms) ✔ chat: a channel's messages and a thread's replies, newest first, page by page (1.191312ms) ✔ chat: the sidebar's unread messages are read from each channel's index, after the last read (0.687861ms) scheduler: g1t-webhooks (* * * * *) is still running from the last time; skipped scheduler: g1t-webhooks (* * * * *): 200 {"outcome":"exception"} ✔ fields read numbers, ranges, lists and steps (1.799623ms) ✔ the services' crons match when hosted g1t's would fire (1.892513ms) ✔ what is due is each matching cron of each service (0.40846ms) ✔ a run asks Wrangler for the handler, and a slow one is not doubled (36.871389ms) ✔ a deploy is announced to status.g1t.sh with the token, and without one nothing is sent (34.495285ms) ✔ an announcement that fails is a warning, never a failed deploy (0.689071ms) ✔ the stages run inside the window: started before, finished after, even when they throw; a dry run says nothing (0.846582ms) ✔ deploy.mjs announces every deploy, and the workflow passes it the token (0.44711ms) ℹ tests 59 ℹ suites 0 ℹ pass 58 ℹ fail 0 ℹ cancelled 0 ℹ skipped 1 ℹ todo 0 ℹ duration_ms 4615.979362