Merge pull request 'Optimize CI pipeline: merge check jobs, remove docker install, improve layer caching' (#63) from ci/optimize-pipeline-further into main
Some checks failed
🚀 Deploy / 🧪 Test (push) Successful in 2m27s
🚀 Deploy / ʦ🔍 Typecheck & Lint (push) Successful in 1m26s
🚀 Deploy / 🐳 Build (push) Failing after 1m43s
🚀 Deploy / 🚀 Deploy (push) Has been skipped

Reviewed-on: #63
This commit is contained in:
chrisp 2026-06-01 04:42:13 +00:00
commit c0503a91a6
3 changed files with 27 additions and 24 deletions

View file

@ -2,3 +2,14 @@
build
node_modules
README.md
.forgejo
.git
.claude
.grepai
docs
plans
cypress
*.log
.env*
!.env.example
tsconfig.*.tsbuildinfo

View file

@ -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

View file

@ -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