From e8455195eedec37cc0c8875b9ed038fcd60ce158 Mon Sep 17 00:00:00 2001 From: Flea Flicker Date: Tue, 14 Apr 2026 15:47:06 +0000 Subject: [PATCH 1/2] feat(GRO-631): add Docker HEALTHCHECK and update .dockerignore Co-Authored-By: Paperclip --- .dockerignore | 2 ++ apps/api/Dockerfile | 3 +++ apps/web/Dockerfile | 2 ++ 3 files changed, 7 insertions(+) diff --git a/.dockerignore b/.dockerignore index edb296c..feec617 100644 --- a/.dockerignore +++ b/.dockerignore @@ -7,3 +7,5 @@ apps/web/dist apps/api/dist packages/db/dist packages/types/dist +.turbo +screenshots/ diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index 1a89f85..fe0e0da 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -34,6 +34,9 @@ COPY --from=builder /app/packages/types/dist packages/types/dist RUN pnpm install --frozen-lockfile --prod EXPOSE 3000 +RUN apk add --no-cache curl +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD curl -f http://localhost:3000/health || exit 1 CMD ["node", "apps/api/dist/index.js"] # Migrate stage — runs drizzle-kit migrate against the database diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 704730b..eb110fa 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -20,3 +20,5 @@ FROM nginx:alpine AS runner COPY apps/web/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=builder /app/apps/web/dist /usr/share/nginx/html EXPOSE 80 +HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \ + CMD curl -f http://localhost:80/ || exit 1 From f4f522d5e6712ba47ab1cef66f2abaeddcb4dcd3 Mon Sep 17 00:00:00 2001 From: Flea Flicker Date: Tue, 14 Apr 2026 15:56:15 +0000 Subject: [PATCH 2/2] fix(GRO-631): pin pnpm version and guard against duplicate CD PRs - Pin pnpm/action-setup@v4 to version 9.15.4 in all 5 jobs - Add duplicate PR guard in CD job before gh pr create - Remove stale kubectl delete job migrate-schema command Co-Authored-By: Paperclip --- .github/workflows/ci.yml | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 69b8800..19f391c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,8 @@ jobs: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 + with: + version: '9.15.4' - uses: actions/setup-node@v4 with: @@ -42,6 +44,8 @@ jobs: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 + with: + version: '9.15.4' - uses: actions/setup-node@v4 with: @@ -62,6 +66,8 @@ jobs: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 + with: + version: '9.15.4' - uses: actions/setup-node@v4 with: @@ -101,6 +107,8 @@ jobs: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 + with: + version: '9.15.4' - uses: actions/setup-node@v4 with: @@ -238,7 +246,6 @@ jobs: echo "Deploying images tagged $TAG to groombook-dev..." # Run migration with PR image - kubectl delete job migrate-schema -n groombook-dev --ignore-not-found kubectl delete job "migrate-pr-$PR_NUM" -n groombook-dev --ignore-not-found cat <