steps: - group: ":hammer: Build & Test" steps: - label: ":typescript: Type Check" command: | npm ci npx tsc --noEmit plugins: - docker#v5.11.0: image: "node:20-alpine" - label: ":vitest: Tests" command: | npm ci npm run build npm test plugins: - docker#v5.11.0: image: "node:20-alpine" - label: ":nextjs: Landing Page Build" command: | cd landing npm ci npm run build plugins: - docker#v5.11.0: image: "node:20-alpine" - wait - block: ":fly: Deploy to Fly.io" branches: "main" - label: ":rocket: Deploy" command: | apk add --no-cache curl curl -L https://fly.io/install.sh | sh export FLYCTL_INSTALL="/root/.fly" export PATH="$FLYCTL_INSTALL/bin:$PATH" fly deploy --remote-only branches: "main" plugins: - docker#v5.11.0: image: "node:20-alpine" environment: - FLY_API_TOKEN