name: CI on: push: branches: - main pull_request: branches: - main jobs: build-and-test: runs-on: CDCD container: dockerreg.eazygame.cn/node:22-bookworm steps: - name: Checkout uses: actions/checkout@v3 - name: Install dependencies run: npm ci - name: Lint run: npm run lint - name: Typecheck run: npm run typecheck - name: Build run: npm run build - name: Upload production build artifact uses: actions/upload-artifact@v3 with: name: next-build path: | .next package.json package-lock.json next.config.* tsconfig.json .npmrc public Dockerfile deploy: needs: build-and-test runs-on: CDCD container: image: dockerreg.eazygame.cn/node:22-bookworm steps: - name: Download artifacts uses: actions/download-artifact@v3 with: name: next-build - name: Install Docker CLI run: | apt-get update apt-get install -y docker.io - name: Deploy to Docker run: | docker build -t nextjs-app . docker stop nextjs-app || true docker rm nextjs-app || true docker run -d -p 3000:3000 --restart unless-stopped --name nextjs-app nextjs-app