From 0eb35f2221243cae671fb4720695ae68f0719c7c Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Sun, 8 Jun 2025 16:56:21 +0200 Subject: [PATCH 01/11] Create test.yml --- .github/workflows/test.yml | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..31c497be --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,53 @@ +name: Run Tests + +on: + pull_request: + branches: + - main + - dev + push: + branches: + - main + - dev + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Copy config file + run: cp config/config.example.yml config/config.yml + + - name: Install dependencies + run: npm ci + + - name: Generate database migrations + run: npm run db:sqlite:generate + + - name: Apply database migrations + run: npm run db:sqlite:push + + - name: Start app in background + run: nohup npm run dev & + + - name: Wait for app availability + run: | + for i in {1..5}; do + if curl --silent --fail http://localhost:3002/auth/login; then + echo "App is up" + exit 0 + fi + echo "Waiting for the app... attempt $i" + sleep 5 + done + echo "App failed to start" + exit 1 + + - name: Build Docker container + run: make build From b353a8f9b4fe963ba785b4e10d31645f2ebda721 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Sun, 8 Jun 2025 16:56:46 +0200 Subject: [PATCH 02/11] Update Makefile --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fdf5daa1..c2c01b9a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ +.PHONY: build build-release build-arm build-x86 test clean + build-release: @if [ -z "$(tag)" ]; then \ - echo "Error: tag is required. Usage: make build-all tag="; \ + echo "Error: tag is required. Usage: make build-release tag="; \ exit 1; \ fi docker buildx build --platform linux/arm64,linux/amd64 -t fosrl/pangolin:latest -f Dockerfile --push . From 6f8c538086b814f7ad8121c12eebbb0afd7ae6ee Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Sun, 8 Jun 2025 16:57:01 +0200 Subject: [PATCH 03/11] Update Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index adfe2597..d2b8ecc4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM node:20-alpine AS builder WORKDIR /app # COPY package.json package-lock.json ./ -COPY package.json ./ +COPY package*.json ./ RUN npm install COPY . . @@ -22,7 +22,7 @@ WORKDIR /app RUN apk add --no-cache curl # COPY package.json package-lock.json ./ -COPY package.json ./ +COPY package*.json ./ RUN npm install --only=production && npm cache clean --force COPY --from=builder /app/.next/standalone ./ From 3c7a91a0478cd172c94f1e6d6a80edb2bdd6dfa2 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 08:42:09 +0200 Subject: [PATCH 04/11] Update test.yml --- .github/workflows/test.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 31c497be..4212cc1c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,10 +5,6 @@ on: branches: - main - dev - push: - branches: - - main - - dev jobs: test: From 92caac309a197d05c67d2c29e24d83a31bcafc99 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 08:43:16 +0200 Subject: [PATCH 05/11] Update Dockerfile --- Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index d2b8ecc4..50ade32f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,11 @@ -FROM node:20-alpine AS builder +ARG NODE_VERSION=20-alpine +FROM node:${NODE_VERSION} AS builder WORKDIR /app # COPY package.json package-lock.json ./ COPY package*.json ./ -RUN npm install +RUN npm ci COPY . . @@ -14,7 +15,7 @@ RUN npx drizzle-kit generate --dialect sqlite --schema ./server/db/sqlite/schema RUN npm run build:sqlite -FROM node:20-alpine AS runner +FROM node:${NODE_VERSION} AS runner WORKDIR /app @@ -23,7 +24,7 @@ RUN apk add --no-cache curl # COPY package.json package-lock.json ./ COPY package*.json ./ -RUN npm install --only=production && npm cache clean --force +RUN npm ci --omit=dev && npm cache clean --force COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static From ced34dd2c6f0aa0549a38cdd2f22c41e59200fc7 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 08:47:25 +0200 Subject: [PATCH 06/11] Update Dockerfile.pg --- Dockerfile.pg | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Dockerfile.pg b/Dockerfile.pg index 58c54d8c..d476c9b6 100644 --- a/Dockerfile.pg +++ b/Dockerfile.pg @@ -1,10 +1,11 @@ -FROM node:20-alpine AS builder +ARG NODE_VERSION=20-alpine +FROM node:${NODE_VERSION} AS builder WORKDIR /app # COPY package.json package-lock.json ./ -COPY package.json ./ -RUN npm install +COPY package*.json ./ +RUN npm ci COPY . . @@ -14,7 +15,7 @@ RUN npx drizzle-kit generate --dialect postgresql --schema ./server/db/pg/schema RUN npm run build:pg -FROM node:20-alpine AS runner +FROM node:${NODE_VERSION} AS runner WORKDIR /app @@ -22,8 +23,8 @@ WORKDIR /app RUN apk add --no-cache curl # COPY package.json package-lock.json ./ -COPY package.json ./ -RUN npm install --only=production && npm cache clean --force +COPY package*.json ./ +RUN npm ci --omit=dev && npm cache clean --force COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static From 9897c53ed3a23739a39c3dff594b06f089a17b25 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 08:49:48 +0200 Subject: [PATCH 07/11] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 50ade32f..013998d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG NODE_VERSION=20-alpine +ARG NODE_VERSION="20-alpine" FROM node:${NODE_VERSION} AS builder WORKDIR /app From fc6c93a08adace2566b7053e009832604e69a584 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 08:49:56 +0200 Subject: [PATCH 08/11] Update Dockerfile.pg --- Dockerfile.pg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.pg b/Dockerfile.pg index d476c9b6..2a4d02d7 100644 --- a/Dockerfile.pg +++ b/Dockerfile.pg @@ -1,4 +1,4 @@ -ARG NODE_VERSION=20-alpine +ARG NODE_VERSION="20-alpine" FROM node:${NODE_VERSION} AS builder WORKDIR /app From ff9e5a383b5343acc2aea6b2b0b3006a19d32359 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 14:00:34 +0200 Subject: [PATCH 09/11] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4212cc1c..d2612cf5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,5 +45,5 @@ jobs: echo "App failed to start" exit 1 - - name: Build Docker container + - name: Build Docker image run: make build From b1cbb1b50fcc03d995bb1fb820ca15c3fafef2dc Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 15:59:30 +0200 Subject: [PATCH 10/11] Update Dockerfile.pg --- Dockerfile.pg | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile.pg b/Dockerfile.pg index 2a4d02d7..46bd7180 100644 --- a/Dockerfile.pg +++ b/Dockerfile.pg @@ -1,5 +1,4 @@ -ARG NODE_VERSION="20-alpine" -FROM node:${NODE_VERSION} AS builder +FROM node:20-alpine AS builder WORKDIR /app @@ -15,7 +14,7 @@ RUN npx drizzle-kit generate --dialect postgresql --schema ./server/db/pg/schema RUN npm run build:pg -FROM node:${NODE_VERSION} AS runner +FROM node:20-alpine AS runner WORKDIR /app From 83b4976305a7e8d2d82d4da530cdcaf54a635a15 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Tue, 10 Jun 2025 15:59:58 +0200 Subject: [PATCH 11/11] Update Dockerfile --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 013998d0..8a954585 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ -ARG NODE_VERSION="20-alpine" -FROM node:${NODE_VERSION} AS builder +FROM node:20-alpine AS builder WORKDIR /app @@ -15,7 +14,7 @@ RUN npx drizzle-kit generate --dialect sqlite --schema ./server/db/sqlite/schema RUN npm run build:sqlite -FROM node:${NODE_VERSION} AS runner +FROM node:20-alpine AS runner WORKDIR /app