diff --git a/.github/workflows/restart-dev-and-test.yaml b/.github/workflows/restart-dev-and-test.yaml new file mode 100644 index 000000000..8b85bb069 --- /dev/null +++ b/.github/workflows/restart-dev-and-test.yaml @@ -0,0 +1,36 @@ +name: "Dev Environment Test" + +on: push + +env: + SHELL: /usr/bin/bash + +jobs: + test: + runs-on: ubicloud-standard-8 + timeout-minutes: 20 + steps: + - uses: actions/checkout@v3 + + - name: Setup Node.js v20 + uses: actions/setup-node@v3 + with: + node-version: 20 + + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 9.1.2 + + - name: Install packages + run: pnpm install + + - name: Start dev environment + run: pnpm run restart-dev-environment + + - name: Run tests + run: pnpm test + + - name: Print dev server logs + run: cat dev-server.log.untracked.txt + if: always() diff --git a/package.json b/package.json index 80176564f..c6d70baa6 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,8 @@ "build:dashboard": "pnpm pre && turbo run build --filter=@stackframe/stack-dashboard...", "build:demo": "pnpm pre && turbo run build --filter=demo-app...", "build:packages": "pnpm pre && turbo run build --filter=./packages/*", + "restart-dev-in-background": "pnpm pre && (pnpm run kill-dev:named) && (pnpm run dev:named > dev-server.log.untracked.txt 2>&1 &) && echo 'Starting dev server in background... (Logs are in dev-server.log.untracked.txt)' && npx wait-on http://localhost:8102 -t 120000 && echo 'Dev server running.'", + "restart-dev-environment": "pnpm pre && pnpm run build:packages && pnpm run codegen && pnpm run restart-deps && pnpm run restart-dev-in-background", "clean": "pnpm pre && turbo run clean && rimraf --glob **/.next && rimraf --glob **/.turbo && rimraf .turbo && rimraf --glob **/node_modules", "codegen": "pnpm pre && turbo run codegen && pnpm run generate-from-template", "deps-compose": "docker compose -p stack-dependencies -f docker/dependencies/docker.compose.yaml", @@ -30,6 +32,8 @@ "fern": "pnpm pre && pnpm run --filter=@stackframe/docs fern", "dev": "concurrently -k \"pnpm run generate-from-template:watch\" \"turbo run dev --concurrency 99999\"", "dev:basic": "concurrently -k \"pnpm run generate-from-template:watch\" \"turbo run dev --concurrency 99999 --filter=@stackframe/stack-backend --filter=@stackframe/stack-dashboard --filter=@stackframe/mock-oauth-server\"", + "dev:named": "concurrently -k \"pnpm run dev\" \"node -e \\\"process.title='node (stack-named-dev-server)'; process.stdin.resume();\\\"\"", + "kill-dev:named": "(pgrep -f 'stack-named-dev-server' | xargs -r -n1 pkill -P); echo 'Killed named dev server (if found). Sleeping to give some time for it to shut down...' && sleep 10", "start": "pnpm pre && turbo run start --concurrency 99999", "start:backend": "pnpm pre && turbo run start --concurrency 99999 --filter=@stackframe/stack-backend", "start:dashboard": "pnpm pre && turbo run start --concurrency 99999 --filter=@stackframe/stack-dashboard",