shared package.json config
Build and Deploy / build-and-push (push) Failing after 2m58s
Details
|
|
@ -0,0 +1,32 @@
|
|||
name: Build and Deploy
|
||||
on: [ push ]
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest # This refers to your self-hosted runner
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to Gitea Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: git.ludops.com
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.GITEA_TOKEN }}
|
||||
|
||||
- name: Build and Push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: git.ludops.com/${{ gitea.repository }}:latest
|
||||
|
||||
- name: Deploy to Server
|
||||
run: |
|
||||
# Here we tell the server to pull the new image and restart
|
||||
docker compose -f docker-compose.prod.yml pull
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
FROM node:20-alpine AS base
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN corepack enable
|
||||
WORKDIR /app
|
||||
|
||||
# Install dependencies
|
||||
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
|
||||
COPY apps/api/package.json ./apps/api/
|
||||
COPY apps/web/package.json ./apps/web/
|
||||
COPY packages/shared/package.json ./packages/shared/
|
||||
|
||||
RUN pnpm install --frozen-lockfile
|
||||
|
||||
# Copy source and build
|
||||
COPY . .
|
||||
RUN pnpm turbo run build
|
||||
|
||||
# Runner Stage
|
||||
FROM node:20-alpine AS runner
|
||||
WORKDIR /app
|
||||
COPY --from=base /app/apps/api/dist ./api
|
||||
COPY --from=base /app/apps/web/dist ./web-dist
|
||||
COPY --from=base /app/node_modules ./node_modules
|
||||
# We need the shared package built files if they exist
|
||||
COPY --from=base /app/packages/shared ./packages/shared
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["node", "api/index.js"]
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
|
@ -11,6 +11,7 @@
|
|||
"check-types": "next typegen && tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ludops/shared": "workspace:^",
|
||||
"@repo/ui": "workspace:*",
|
||||
"next": "16.2.0",
|
||||
"react": "^19.2.0",
|
||||
|
Before Width: | Height: | Size: 645 B After Width: | Height: | Size: 645 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 367 B |
|
Before Width: | Height: | Size: 750 B After Width: | Height: | Size: 750 B |
|
|
@ -0,0 +1,5 @@
|
|||
export interface AppStatus {
|
||||
status: string;
|
||||
version: string;
|
||||
database: boolean;
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"name": "@ludops/shared",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./index.ts",
|
||||
"types": "./index.ts"
|
||||
}
|
||||
|
|
@ -18,6 +18,46 @@ importers:
|
|||
specifier: 5.9.2
|
||||
version: 5.9.2
|
||||
|
||||
apps/api:
|
||||
dependencies:
|
||||
'@ludops/shared':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/shared
|
||||
'@repo/ui':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/ui
|
||||
next:
|
||||
specifier: 16.2.0
|
||||
version: 16.2.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
react:
|
||||
specifier: ^19.2.0
|
||||
version: 19.2.0
|
||||
react-dom:
|
||||
specifier: ^19.2.0
|
||||
version: 19.2.0(react@19.2.0)
|
||||
devDependencies:
|
||||
'@repo/eslint-config':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/eslint-config
|
||||
'@repo/typescript-config':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/typescript-config
|
||||
'@types/node':
|
||||
specifier: ^22.15.3
|
||||
version: 22.15.3
|
||||
'@types/react':
|
||||
specifier: 19.2.2
|
||||
version: 19.2.2
|
||||
'@types/react-dom':
|
||||
specifier: 19.2.2
|
||||
version: 19.2.2(@types/react@19.2.2)
|
||||
eslint:
|
||||
specifier: ^9.39.1
|
||||
version: 9.39.1
|
||||
typescript:
|
||||
specifier: 5.9.2
|
||||
version: 5.9.2
|
||||
|
||||
apps/docs:
|
||||
dependencies:
|
||||
'@repo/ui':
|
||||
|
|
@ -57,6 +97,9 @@ importers:
|
|||
|
||||
apps/web:
|
||||
dependencies:
|
||||
'@ludops/shared':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/shared
|
||||
'@repo/ui':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/ui
|
||||
|
|
@ -128,6 +171,8 @@ importers:
|
|||
specifier: ^8.50.0
|
||||
version: 8.50.0(eslint@9.39.1)(typescript@5.9.2)
|
||||
|
||||
packages/shared: {}
|
||||
|
||||
packages/typescript-config: {}
|
||||
|
||||
packages/ui:
|
||||
|
|
@ -733,6 +778,7 @@ packages:
|
|||
|
||||
eslint-config-prettier@10.1.1:
|
||||
resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
eslint: '>=7.0.0'
|
||||
|
||||
|
|
@ -773,6 +819,7 @@ packages:
|
|||
eslint@9.39.1:
|
||||
resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
jiti: '*'
|
||||
peerDependenciesMeta:
|
||||
|
|
@ -1118,6 +1165,7 @@ packages:
|
|||
next@16.2.0:
|
||||
resolution: {integrity: sha512-NLBVrJy1pbV1Yn00L5sU4vFyAHt5XuSjzrNyFnxo6Com0M0KrL6hHM5B99dbqXb2bE9pm4Ow3Zl1xp6HVY9edQ==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.1.0
|
||||
'@playwright/test': ^1.51.1
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@
|
|||
"tasks": {
|
||||
"build": {
|
||||
"dependsOn": ["^build"],
|
||||
"inputs": ["$TURBO_DEFAULT$", ".env*"],
|
||||
"outputs": [".next/**", "!.next/cache/**"]
|
||||
"outputs": ["dist/**", ".dist/**"]
|
||||
},
|
||||
"lint": {
|
||||
"dependsOn": ["^lint"]
|
||||
|
|
@ -18,4 +17,4 @@
|
|||
"persistent": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||