Add daily-use e2e journey to CI and docker checks #296
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#296
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The workspace daily-use journey Playwright test exists but only runs via manual
pnpm --filter @lapis-notes/workspace test:e2e. Forgejo checks andpnpm docker:ci-checkdo not execute it.Current follow-up work also includes refactoring Forgejo checks into independent
parallel lanes to isolate failures and maximize Turbo cache reuse.
Goal
Run the daily-use journey as a dedicated CI phase after app smoke, with a matching
local docker check entry point and skip flag.
And split Forgejo checks into cache-backed parallel lanes (
check:all,unit tests, app smoke, daily-use, official plugin install e2e) while keeping
release verification serial.
Acceptance Criteria
pnpm test:daily-useruns the workspace journey through a dedicatedPlaywright config.
.forgejo/workflows/checks.ymlruns cache-warming build separately and fans outto independent CI lanes that can succeed/fail independently:
repo-checksunit-testsapp-smokedaily-use-e2eofficial-plugin-e2e.github/actions/lapis-ci-verifyruns daily-use afterpnpm test:smoke.pnpm docker:ci-checksupports--skip-daily-useand runs daily-use aftersmoke by default.
lapis-notebookand opens.notebook.mdfilesthrough the notebook view helper before execution assertions.
actions/upload-artifact@v3and no longeruses v4 for playright artifacts.
scripts/ci-build-checks.mjs,pnpm ci:build:checks,xvfb-wrapped smoke/daily-use/official-lanecommands.
registry fixture runs with
--skip-build, it should still re-materializemissing official plugin
dist/outputs from Turbo cache in the current job.emit its startup snapshot diagnostics on CI failures instead of dying with a
raw runner timeout.
Implementation Notes
playwright.daily-use.config.ts, workspacetest:e2e:daily-use, androot
test:daily-use.run-lapis-ci-check-lib.mjs, composite CI verify action, and scripttests.
xvfb-runwithout the shared
.github/actions/lapis-ci-verifywrapper must bootstrapxauthfirst; otherwisexvfb-run -a pnpm test:official-pluginsfails inpublish-official-plugin-assets.ymlbefore Playwright starts.build-local-official-plugin-registry.mjsso--skip-buildreusesexisting outputs when present but falls back to one Turbo build materialize
pass when an isolated CI job lacks official plugin
dist/directories.vault creation more deterministically and still surface boot snapshots on
failure.
extra boot headroom (
180shelper budget,240sPlaywright test budget) andincludes chooser-loading state plus message text in timeout snapshots so
first-boot stalls are distinguishable from in-shell startup failures.
vault state only once per Playwright browser context instead of on every
document load, so cold Vite full-page reloads on CI cannot wipe the newly
created OPFS vault/profile and bounce the app back to the empty chooser.
openExistingNotebookNoteand officiallapis-notebookinstall (registry fixtures underrelease-artifacts/official-plugin-assets/forgejo-assetsplus siblinglapis-plugin-registry).Blocker
Local
pnpm test:daily-usestill fails while installinglapis-notebookin theChromium OPFS vault e2e harness.
that fulfilled >100MB plugin files over CDP (
Too large read data is pending/ DevTools pipe closure). Routing now only stubs registry metadata.
QuotaExceededErrorbecause the current signedlapis-notebookreleasepayload is ~604MB (101 required files, largest single file ~125MB), which
exceeds storage quota in this harness before the journey can continue.
Needs follow-up to make official notebook installs viable in browser e2e
storage limits (for example by reducing release payload size and/or adjusting
install semantics for unused runtime artifacts) before this issue can close.
Parallelized checks lane work can proceed independently of the notebook quota
limitations, but that existing blocker remains until addressed elsewhere.
Validation Commands
pnpm test:scriptspnpm test:daily-use(requires local official plugin registry fixtures)pnpm docker:ci-check -- --skip-checks --skip-tests --skip-smokeImplementation Summary
Populate when closing the issue.