Optimize CI pipeline: merge check jobs, remove docker install, improve layer caching #63
3 changed files with 27 additions and 24 deletions
|
|
@ -1,4 +1,15 @@
|
|||
.react-router
|
||||
build
|
||||
node_modules
|
||||
README.md
|
||||
README.md
|
||||
.forgejo
|
||||
.git
|
||||
.claude
|
||||
.grepai
|
||||
docs
|
||||
plans
|
||||
cypress
|
||||
*.log
|
||||
.env*
|
||||
!.env.example
|
||||
tsconfig.*.tsbuildinfo
|
||||
|
|
|
|||
|
|
@ -44,24 +44,10 @@ jobs:
|
|||
DATABASE_URL: postgresql://test:test@postgres:5432/brackt_test
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
|
||||
typecheck:
|
||||
name: ʦ TypeScript
|
||||
check:
|
||||
name: ʦ🔍 Typecheck & Lint
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: ⬇️ Checkout repo
|
||||
uses: https://github.com/actions/checkout@v4
|
||||
|
||||
- name: 📥 Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: 🔎 Type check
|
||||
run: npm run typecheck
|
||||
|
||||
lint:
|
||||
name: 🔍 Lint
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- name: ⬇️ Checkout repo
|
||||
uses: https://github.com/actions/checkout@v4
|
||||
|
|
@ -72,9 +58,12 @@ jobs:
|
|||
- name: 🔍 Lint (oxlint)
|
||||
run: npm run lint
|
||||
|
||||
- name: 🔎 Type check
|
||||
run: npm run typecheck
|
||||
|
||||
build:
|
||||
name: 🐳 Build
|
||||
needs: [test, typecheck, lint]
|
||||
needs: [test, check]
|
||||
if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }}
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
|
|
@ -82,9 +71,6 @@ jobs:
|
|||
- name: ⬇️ Checkout repo
|
||||
uses: https://github.com/actions/checkout@v4
|
||||
|
||||
- name: 🐳 Install Docker CLI
|
||||
run: apt-get update -qq && apt-get install -y -qq docker.io
|
||||
|
||||
- name: 🐳 Set up Docker Buildx
|
||||
uses: https://github.com/docker/setup-buildx-action@v3
|
||||
|
||||
|
|
|
|||
10
Dockerfile
10
Dockerfile
|
|
@ -9,9 +9,15 @@ WORKDIR /app
|
|||
RUN --mount=type=secret,id=npmrc,target=/app/.npmrc npm ci --omit=dev
|
||||
|
||||
FROM node:20-alpine AS build-env
|
||||
COPY . /app/
|
||||
COPY --from=development-dependencies-env /app/node_modules /app/node_modules
|
||||
WORKDIR /app
|
||||
COPY --from=development-dependencies-env /app/node_modules /app/node_modules
|
||||
COPY package.json package-lock.json tsconfig*.json vite.config.ts react-router.config.ts drizzle.config.ts ./
|
||||
COPY scripts/ /app/scripts/
|
||||
COPY app/ /app/app/
|
||||
COPY server/ /app/server/
|
||||
COPY database/ /app/database/
|
||||
COPY public/ /app/public/
|
||||
COPY instrument.server.mjs ./
|
||||
RUN npm run build
|
||||
|
||||
FROM node:20-alpine
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue