diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..966a68e --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,38 @@ +name: CI/CD + +on: + push: + branches: + - main + +env: + NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }} + NEXT_PUBLIC_API_KEY: ${{ secrets.NEXT_PUBLIC_API_KEY }} + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: 14 + + - name: Install dependencies + run: npm ci + + - name: Build Next.js application + run: npm run build + + - name: Run tests + run: npm run test + + - name: Deploy to production + run: npm run deploy + env: + NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }} + NEXT_PUBLIC_API_KEY: ${{ secrets.NEXT_PUBLIC_API_KEY }} diff --git a/projects/fastgpt/Dockerfile b/projects/fastgpt/Dockerfile index 00487e5..add569e 100644 --- a/projects/fastgpt/Dockerfile +++ b/projects/fastgpt/Dockerfile @@ -1,5 +1,5 @@ # Install dependencies only when needed -FROM node:18.15-alpine AS deps +FROM node:14 AS deps # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. RUN apk add libc6-compat && npm install -g pnpm WORKDIR /app @@ -47,7 +47,7 @@ ENV NODE_ENV production ENV NEXT_TELEMETRY_DISABLED 1 ENV PORT=3000 -EXPOSE 3000 +EXPOSE $PORT USER nextjs diff --git a/projects/xiaoyi/Dockerfile b/projects/xiaoyi/Dockerfile index 547f4ac..9c99b79 100644 --- a/projects/xiaoyi/Dockerfile +++ b/projects/xiaoyi/Dockerfile @@ -1,5 +1,5 @@ # Install dependencies only when needed -FROM node:18.15-alpine AS deps +FROM node:14 AS deps # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. RUN apk add libc6-compat && npm install -g pnpm WORKDIR /app @@ -24,7 +24,7 @@ ENV NEXT_TELEMETRY_DISABLED 1 RUN npm install -g pnpm RUN pnpm run build -FROM node:18.15-alpine AS runner +FROM node:14 AS runner WORKDIR /app # create user and use it @@ -46,7 +46,7 @@ ENV NODE_ENV production ENV NEXT_TELEMETRY_DISABLED 1 ENV PORT=3000 -EXPOSE 3000 +EXPOSE $PORT USER nextjs