ci/*.sh — shell-only, client-side-only so `git clone && make test` works on any Linux or macOS dev box without network or shared state. One script per testing layer so both Makefile targets and the CI workflow can call them without duplicating logic. Rewrite of the existing ci/test.sh to shell out to dart + flutter layers in one pass (analyze, format, dart test, flutter test) plus five new scripts for the other layers. smoke_bundle.sh is the "tests passed but app doesn't start" gate the user flagged: builds the Linux release bundle, runs it under xvfb for 5s, fails on any non-SIGTERM exit — catches dynamic-linker errors, missing-asset regressions, plugin-init crashes that widget tests can't see. .gitea/workflows/test.yml is a four-job pipeline (unit, integration, startup-bundle, e2e) that shells out to the ci/*.sh scripts. NOT activated — Gitea Actions has to be enabled in the instance settings first. GitHub-Actions-compatible, so copying to .github/workflows/ is the whole migration if the repo moves. Co-Authored-By: Claude <noreply@anthropic.com>
19 lines
564 B
Bash
Executable File
19 lines
564 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# End-to-end layer: daemon subprocess + web WASM Playwright smoke.
|
|
# Neither fits in `make test`; together they're the "everything still
|
|
# works across process/runtime boundaries" gate.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "==> build bin/clide (required by daemon subprocess test)"
|
|
make build
|
|
|
|
echo "==> daemon subprocess test"
|
|
dart test test/daemon/
|
|
|
|
echo "==> browser WASM smoke (Playwright)"
|
|
./tools/ui/build.sh
|
|
./tools/ui/serve.sh
|
|
trap './tools/ui/stop.sh >/dev/null 2>&1' EXIT
|
|
(cd tools/ui && npx playwright test smoke.spec.ts)
|