updated ci/cd pipeline
This commit is contained in:
parent
6f68f2069d
commit
0d853e695f
@ -9,6 +9,11 @@ jobs:
|
|||||||
deploy:
|
deploy:
|
||||||
runs-on: linux
|
runs-on: linux
|
||||||
steps:
|
steps:
|
||||||
- name: Test Step
|
- name: Setup SSH Key
|
||||||
run: |
|
run: |
|
||||||
echo "Hello World from Gitea Actions!"
|
mkdir -p ~/.ssh
|
||||||
|
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
|
||||||
|
chmod 600 ~/.ssh/id_ed25519
|
||||||
|
ssh-keyscan -H "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts
|
||||||
|
- name: Deploy via SSH
|
||||||
|
run: ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "bash ~/deploy.sh ${{ secrets.PROJECT_DEPLOYMENT_PATH }}"
|
||||||
|
|||||||
@ -1,15 +1,11 @@
|
|||||||
# Use official Node.js image
|
|
||||||
FROM node:18-alpine
|
FROM node:18-alpine
|
||||||
|
|
||||||
# Install pnpm globally
|
|
||||||
RUN npm install -g pnpm
|
RUN npm install -g pnpm
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copy package manager files first for caching
|
|
||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
|
|
||||||
# Install dependencies using pnpm
|
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|||||||
15
deploy.sh
Normal file
15
deploy.sh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Usage: $0 <project_path>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROJECT_PATH=$1
|
||||||
|
|
||||||
|
echo "Deploying project..."
|
||||||
|
cd "$PROJECT_PATH" || { echo "Directory not found: $PROJECT_PATH"; exit 1; }
|
||||||
|
git pull origin main
|
||||||
|
docker-compose up -d --build
|
||||||
|
echo "Deployment finished!"
|
||||||
@ -13,10 +13,12 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.pablo-shortman-me.rule=Host(`pablo.shortman.me`)"
|
- "traefik.http.routers.pablo-shortman-me.rule=Host(`pablo.shortman.me`)"
|
||||||
- "traefik.http.routers.pablo-shortman-me.entrypoints=websecure"
|
- "traefik.http.routers.pablo-shortman-me.entrypoints=websecure"
|
||||||
|
- "traefik.http.services.pablo-shortman-me.loadbalancer.server.port=3000"
|
||||||
- "traefik.http.routers.pablo-shortman-me.tls.certresolver=myresolver"
|
- "traefik.http.routers.pablo-shortman-me.tls.certresolver=myresolver"
|
||||||
|
expose:
|
||||||
|
- "3000"
|
||||||
networks:
|
networks:
|
||||||
- webproxy
|
- webproxy
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
webproxy:
|
webproxy:
|
||||||
external: true
|
external: true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user