Skip to content

fix(ci): use bootstrap v2 --assemble-only flag#8

Merged
nathanstitt merged 13 commits into
mainfrom
fix/ci-bootstrap-flag
May 31, 2026
Merged

fix(ci): use bootstrap v2 --assemble-only flag#8
nathanstitt merged 13 commits into
mainfrom
fix/ci-bootstrap-flag

Conversation

@nathanstitt
Copy link
Copy Markdown
Contributor

Summary

@tinycld/bootstrap v2 was published 2026-05-30 21:52 UTC and dropped the --tooling flag in favor of --assemble-only. CI on this repo started failing as soon as v2 propagated to latest — every PR opened after the v2 publish hits:

Bad arguments:
  --tooling: `--tooling` was removed in v2. Use `--assemble-only` instead.
##[error]Process completed with exit code 2.

One-line rename in .github/workflows/ci.yml (both the checks and e2e jobs, plus the comment block above them).

Related

Same fix applied to tinycld/app#9. core, drive, and text were already migrated alongside the bootstrap v2 release. Tracking for the remaining repos in tinycld/core#10.

@tinycld/bootstrap v2 (published 2026-05-30 21:52 UTC) removed the
--tooling flag in favor of --assemble-only. CI on this repo broke as
soon as v2 propagated to `latest`. Same one-line fix already applied
to tinycld/app#9; core, drive, and text were migrated alongside the
bootstrap v2 release.
Mirrors the canonical pattern in tinycld/text. Without this, Playwright's
trace.zip, screenshot, video, and error-context.md are written to the
runner's filesystem on test failure but evaporate when the runner shuts
down — making CI-only flakes hard to diagnose without re-running.

`if: failure()` skips the upload on green runs. 14-day retention.

Bootstrap template gets the same change in tinycld/bootstrap#3 so future
packages inherit it.
The local helper was using the pre-No-File-panel UI strings ('Calc'
heading + 'New spreadsheet' button). Those are gone — the calc index
now renders the shared No-File panel with 'A fresh sheet.' headline
and 'New sheet' button.

Aligns with the equivalent helper in calc.spec.ts (which was updated
when the No-File panel landed). All 10 pivot specs pass locally.
…time

Two unrelated fixes to the only two specs still failing on this branch:

1. calc.spec.ts:1683 (Import CSV) — was waiting for the pre-No-File
   'Calc' h2 heading + 'New spreadsheet' button. Aligns with the
   actual UI: 'A fresh sheet.' h1 (the No-File panel headline).
   Mirrors the pivot.spec.ts helper rewrite earlier on this branch.

2. calc.spec.ts:12 (opening Team Scorecard) — the first cell header
   ('Name') was timing out at the default 5s on CI under load. The
   xlsx parse + grid hydration is the slow path on the cold-cache
   first navigation; once the grid is up, subsequent header cells
   appear immediately. Bumps just the first toBeVisible to 15s so
   the gate matches reality; the next two stay at default.
Two stability fixes to the one spec still failing on calc#8:

1. calc.spec.ts:12 — `getByText('Team Scorecard.xlsx').click()` races
   the navigation to /a/<org>/calc/<id>; before the calc screen mounts,
   getByText('Name') was matching the drive recent-view's
   "Sort by Name" column-header button. Gates on the URL change first
   so subsequent assertions only fire after we're inside calc.

2. playwright.config.ts — bump per-test timeout to 60s. Calc tests
   routinely open xlsx files where the grid hydration + xlsx parse
   runs end-to-end inside the test body; on CI under parallel load
   the first navigation per worker can take 30-60s. Default 30s
   doesn't leave room after the navigation overhead.

Both spec-level + config-level — neither suppresses flakiness, they
just wait for the cold-cache compile to actually finish before
asserting on its output.
@nathanstitt nathanstitt merged commit 6476fd9 into main May 31, 2026
2 checks passed
@nathanstitt nathanstitt deleted the fix/ci-bootstrap-flag branch May 31, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant