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 74d69101e1481fd899e4f5703973abc4d3b713b4
Checked out 74d69101e1481fd899e4f5703973abc4d3b713b4
##[group]Install Wrangler
npm ci --workspaces=false --no-audit --no-fund
##[endgroup]
shell: bash -e /home/runner/_temp/18dc5c6d9ef27da6.sh

added 39 packages in 21s
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 <pkg>` to allow.
##[group]The manifest matches every wrangler.jsonc
node scripts/deploy.mjs manifest --check
##[endgroup]
shell: bash -e /home/runner/_temp/18df5c72f73ef53b.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/18de5c7328318ad8.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 (97.229296ms)
✔ every wrangler.jsonc is found, and only checked-in ones (80.869669ms)
✔ problems are found: an unlisted config, a later-stage binding, a wrong database, an unnamed KV (120.699858ms)
✔ stages follow bindings: nothing binds to a unit that ships after it (0.89286ms)
✔ inside a stage, a Worker that does not exist yet goes before those bound to it (1.149831ms)
✔ Rust workers build with the shared script and the same wasm-opt level (1.25129ms)
✔ shared crates and packages are read from workspace metadata (0.509951ms)
✔ the runner's image is built from the runner crate and what it uses, on the base its lock names (0.61778ms)
✔ services/runner/base.json records the base its folder builds (13.527856ms)
✔ an image's hash ignores line endings, and its tags say what they are (265.453936ms)
✔ only the lockfile entries the runner is built from name its image (1.896651ms)
✔ the runner's deploy config names its image by reference, beside its wrangler.jsonc (94.896956ms)
✔ the registry is asked for an image's manifest, without Docker (1.53239ms)
✔ a push counts only when it ends with a digest, and is tried again (3.811132ms)
✔ a static Linux binary is told from a dynamic one (1.318451ms)
﹣ path dependencies agree with Cargo's own resolved graph (915.795767ms) # cargo metadata could not resolve offline
✔ every import that leaves a unit's folder is covered by its dependencies or inputs (778.796141ms)
✔ a shared crate's change reaches every unit built from it, and no other (7.477574ms)
✔ a shared package's change reaches what imports it (0.52837ms)
✔ a crate's tests, benches and examples deploy nothing (11.339825ms)
✔ a Rust file compiled only for tests is found from what declares it (9.960345ms)
✔ this repository's test-only sources are read from git (1788.000483ms)
✔ decide: a change only to tests deploys nothing (2.840481ms)
✔ own folders, declared inputs and root files (1.721031ms)
✔ a Cargo.lock change reaches only crates that use what changed (0.982211ms)
✔ a package-lock change reaches through workspace links (1.34825ms)
✔ decide: changed units deploy, others wait, unknown ones deploy (0.603041ms)
✔ decide: --force deploys unchanged units; a commit missing from history deploys (0.27443ms)
✔ decide: Cargo.lock counts only where it reaches (0.78795ms)
✔ decide: the runner's image rebuilds only when what it is built from changed (0.731871ms)
✔ the plan as data: migrations, and each stage's units in jobs that share a build (2.032621ms)
✔ units are picked by short name, folder or Worker name (0.73594ms)
✔ a CI job installs only what its units need (1.973261ms)
✔ a deploy is annotated with its commit, and read back (0.39988ms)
✔ the live commit: the live version's, looking through secret changes (0.58455ms)
✔ Wrangler's output: pending migrations and the version a deploy made (0.56183ms)
✔ the API's answers: the live commit as Wrangler's would give it (1.570251ms)
✔ the API's answers: a Worker never deployed, and a refusal, never throw (503.26973ms)
✔ the API is used only with the token Wrangler would be given (1.591951ms)
✔ pending migrations: the folder's files less the names in d1_migrations (2.536261ms)
✔ the pool runs everything, no more than its limit at once (16.995389ms)
✔ self-hosting builds every Rust service the manifest says it runs (1.801651ms)
✔ the self-hosting architecture page names every unit (0.43064ms)
✔ resolveStack works on a manifest with no workspace crates or packages (3.981642ms)
✔ decide: a commit older than what runs is never deployed by accident, even forced; --rollback means it (0.42123ms)
✔ a deploy by hand reports to the repository on g1t, and a workflow's does not (2.730761ms)
✔ webhooks: the hourly purge deletes old deliveries by time (4.776102ms)
✔ billing: this month's users are read from an index, not the ledger (73.746515ms)
✔ events: a repository's events of one type, newest first, page by page (49.407393ms)
✔ actions: a self-hosted runner's poll finds queued jobs by namespace, whatever its case (14.826617ms)
✔ chat: a channel's messages and a thread's replies, newest first, page by page (3.621612ms)
✔ chat: the sidebar's unread messages are read from each channel's index, after the last read (3.415422ms)
✔ chat: a page's reactions are read by message, and a workspace's emoji by name (9.769985ms)
scheduler: g1t-webhooks (* * * * *) is still running from the last time; skipped
scheduler: g1t-webhooks (* * * * *): 200 {"outcome":"exception"}
✔ fields read numbers, ranges, lists and steps (4.088912ms)
✔ the services' crons match when hosted g1t's would fire (5.542642ms)
✔ what is due is each matching cron of each service (1.391921ms)
✔ a run asks Wrangler for the handler, and a slow one is not doubled (123.336549ms)
✔ a deploy is announced to status.g1t.sh with the token, and without one nothing is sent (111.519893ms)
✔ an announcement that fails is a warning, never a failed deploy (2.359741ms)
✔ the stages run inside the window: started before, finished after, even when they throw; a dry run says nothing (2.409862ms)
✔ deploy.mjs announces every deploy, and the workflow passes it the token (1.01913ms)
ℹ tests 61
ℹ suites 0
ℹ pass 60
ℹ fail 0
ℹ cancelled 0
ℹ skipped 1
ℹ todo 0
ℹ duration_ms 6268.156978
