Add docker:ci-check script mirroring Forgejo checks workflow #152
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#152
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?
Local
pnpm check:allpasses but Forgejo CI sometimes fails because CI runs inside thelapis-cicontainer on Linux with a fresh install and smoke under xvfb.Problem
Forgejo checks run inside the
lapis-cicontainer on Linux with a fresh install and smoke under xvfb. CI-only failures are hard to debug without a local reproduction path.Goal
Finish and harden
pnpm docker:ci-checkso it mirrors.forgejo/workflows/checks.ymllocally in Docker with CI parity (platform, env, dependency isolation).Scope
docker:ci-check,scripts/run-lapis-ci-check.mjs, and spec docs already exist; harden gaps and validatepnpm install --frozen-lockfile, e2e vault prep,pnpm check:all,make spec-lint, electron deps guard,xvfb-run -a pnpm test:smoke--build,--pull,--skip-smoke,--shell,--platform,--native-platform,--concurrencyspec/src/80-maintenance/monorepo-scripts.mdNon-goals
lapis-ciimage tagAcceptance Criteria
pnpm docker:ci-check --helpdocuments all supported optionslapis-ciimage and workdir/__w/lapis/lapislinux/amd64for CI parity;--native-platformskips forced platform--build,--pull,--skip-smoke,--shell,--platform <value>, and--concurrency <n>behave predictablynode_modulesand package-localnode_modulesare not reused inside the container.forgejo/workflows/checks.ymlin command order and meaningful environmentxvfb-run -aunless--skip-smokeis passedCI=trueandLAPIS_SMOKE_DESKTOP_FULL_BUILD=1spec/src/80-maintenance/monorepo-scripts.mdmatches actual script behaviorpnpm check:allpasses after the changeImplementation Notes
Audit-first status
docker:ci-checkscript entryscripts/run-lapis-ci-check.mjsCLI and CI script bodyspec/src/80-maintenance/monorepo-scripts.mdchecks.ymlParity table (Forgejo → local)
code.ju.ma/lapis-notes/lapis-ci:latestscripts/lapis-ci-image.mjs/__w/lapis/lapispnpm install --frozen-lockfile~/Documents/vault-copypnpm check:allmake spec-lintxauthscripts/ensure-electron-linux-deps.shxvfb-run -a pnpm test:smoke--skip-smokeCI=trueLAPIS_SMOKE_DESKTOP_FULL_BUILD=1--build/--pullplatform paritynode_modulesisolationRelease desktop
verifyjob uses the same verification shape (no asset build); local check does not need release builds.Hardening tasks
LAPIS_SMOKE_DESKTOP_FULL_BUILD=1to container env--platformtodocker pullandpnpm ci:image:buildnode_modulespathsscripts/run-lapis-ci-check-lib.mjs+ unit testsSuggested Files or Specs To Inspect
.forgejo/workflows/checks.yml.forgejo/workflows/release-desktop.ymldocker/lapis-ci/Dockerfilescripts/run-lapis-ci-check.mjsscripts/lapis-ci-image.mjsscripts/build-lapis-ci-image.mjsspec/src/80-maintenance/monorepo-scripts.mdValidation Commands
Related Issues
Follow-up Tasks
Implementation Summary
Hardened pnpm docker:ci-check: added LAPIS_SMOKE_DESKTOP_FULL_BUILD=1, platform-aware image build (node scripts/build-lapis-ci-image.mjs) and pull (--platform linux/amd64), named-volume isolation for root and workspace package node_modules, startup logging, and run-lapis-ci-check-lib.mjs with 7 unit tests. Updated spec/src/80-maintenance/monorepo-scripts.md. Validated: docker:ci-check --help; pnpm test:scripts; pnpm check:all; make spec-lint; docker run confirmed CI=true, LAPIS_SMOKE_DESKTOP_FULL_BUILD=1, linux/amd64, and package volume mounts. Full docker:ci-check --skip-smoke reached check:all but failed on pre-existing @lapis-notes/lapis.md check:astro in container (unrelated to this script). --build blocked locally by Docker apt GPG errors; --pull blocked by disk space during layer extract.