Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- run: pnpm lint-check
- run: pnpm build
- run: pnpm tsc
- run: make test-setup
- run: make db/reset
- run: npx playwright install chromium
- run: pnpm test-e2e
- run: E2E_WEB_SERVER_COMMAND='pnpm preview' pnpm test-e2e
Expand Down
36 changes: 9 additions & 27 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,37 +1,19 @@
# everything phony
.PHONY: $(shell grep --no-filename -E '^([a-zA-Z_-]|/)+:' $(MAKEFILE_LIST) | sed 's/:.*//')

# use ad-hoc script rather than wrangler migration cli e.g.
# https://github.com/cloudflare/workers-sdk/blob/1ce32968b990fef59953b8cd61172b98fb2386e5/packages/wrangler/src/d1/migrations/apply.tsx#L152-L159
db/reset: db/reset/dev db/reset/test db/reset/preview

db/reset:
db/reset/dev:
rm -rf .wrangler/.node-env/development
mkdir -p .wrangler/.node-env/development
rm -f .wrangler/.node-env/development/d1.sqlite
echo 'PRAGMA table_list' | sqlite3 .wrangler/.node-env/development/d1.sqlite
pnpm -s migrate latest

db/reset/test:
rm -rf .wrangler/.node-env/test
mkdir -p .wrangler/.node-env/test
rm -f .wrangler/.node-env/test/d1.sqlite
echo 'PRAGMA table_list' | sqlite3 .wrangler/.node-env/test/d1.sqlite

db/migrate:
sqlite3 .wrangler/.node-env/development/d1.sqlite < src/db/migrations/2023-07-08-11-49-30-create-table-counter/up.sql

db/migrate/test:
sqlite3 .wrangler/.node-env/test/d1.sqlite < src/db/migrations/2023-07-08-11-49-30-create-table-counter/up.sql
NODE_ENV=test pnpm -s migrate latest

db/reset/preview:
rm -rf .wrangler/state/v3/d1/demo-preview/db.sqlite

db/migrate/preview:
npx wrangler d1 execute demo --env preview --local --file src/db/migrations/2023-07-08-11-49-30-create-table-counter/up.sql

db/migrate/production:
npx wrangler d1 execute demo --file src/db/migrations/2023-07-08-11-49-30-create-table-counter/up.sql

db/migrate/production/down:
npx wrangler d1 execute demo --file src/db/migrations/2023-07-08-11-49-30-create-table-counter/down.sql

test-setup:
rm -rf .wrangler/.node-env/test .wrangler/state
make db/reset/test db/migrate/test db/migrate/preview
rm -rf .wrangler/state/v3/{d1,kv}
mkdir -p .wrangler/state/v3/d1/demo-preview
D1_SQLITE_PATH=.wrangler/state/v3/d1/demo-preview/db.sqlite pnpm -s migrate latest
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,19 @@ trying out cloudflare workers and wrangler cli workflow.
```sh
# dev
pnpm i
make db/migrate
make db/reset
pnpm dev

# run local workerd
pnpm build
make db/migrate/preview
pnpm preview

# release
pnpm build
make db/migrate/production
pnpm release

# migration on D1
pnpm migrate-production status
```

## summary
Expand All @@ -25,6 +26,7 @@ pnpm release
- [x] API server
- [x] client assets on `bucket`
- [x] persistence on `KV` and `D1`
- [x] kysely for both local and remote `D1` migration (see `./src/db/migrate-cli.ts`)
- [x] HMR dev server with `vite`
- [x] local preview server with `wrangler dev`
- [x] E2E testing on CI
6 changes: 6 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
"tsc": "tsc -b tsconfig.all.json",
"dev:tsc": "pnpm tsc --watch --preserveWatchOutput",
"test-e2e": "playwright test",
"repl": "tsx ./src/db/repl.ts",
"migrate": "tsx ./src/db/migrate-cli.ts",
"migrate-production": "D1_DATABASE_ID=b7ae526e-5a2b-4c16-8d7d-4a5983c4f1f1 tsx ./src/db/migrate-cli.ts",
"lint": "run-s lint:*",
"lint-check": "run-s lint-check:*",
"lint:isort": "pnpm lint-check:isort --fix",
Expand All @@ -21,6 +24,7 @@
"lint-check:prettier": "prettier -c --cache ."
},
"dependencies": {
"kysely": "^0.26.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
Expand Down Expand Up @@ -50,10 +54,12 @@
"@types/react-dom": "^18.2.6",
"@vavite/connect": "^1.8.1",
"@vitejs/plugin-react": "^4.0.2",
"consola": "^3.2.3",
"esbuild": "^0.18.11",
"npm-run-all": "^4.1.5",
"prettier": "^3.0.0",
"react-hot-toast": "^2.4.1",
"tsx": "^3.12.7",
"typescript": "^5.1.6",
"unocss": "^0.53.4",
"vite": "^4.4.2",
Expand Down
Loading