Rezervacije/.gitea/workflows/build-deploy.yml

60 lines
2.0 KiB
YAML

name: Build and Deploy
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Update package lock
run: npm install --package-lock-only
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Deploy to server
env:
DEPLOY_SSH_KEY: ${{ secrets.DEPLOYER_KEY }}
run: |
echo "Deploying to app.spletnimojster.si on port 3169"
# Create deployment package
mkdir -p deploy
cp -r dist/* deploy/
cp server.cjs deploy/
cp package.json deploy/
# Setup SSH for deployment with more verbose output
mkdir -p ~/.ssh
echo "$DEPLOY_SSH_KEY" > ~/.ssh/deployer_key
chmod 600 ~/.ssh/deployer_key
echo "SSH key saved with proper permissions"
# Add server to known hosts
ssh-keyscan -t rsa 130.61.236.31 >> ~/.ssh/known_hosts
echo "Server added to known hosts"
# Test connection first
echo "Testing SSH connection..."
ssh -i ~/.ssh/deployer_key -o StrictHostKeyChecking=no -v deployer@130.61.236.31 'echo "SSH connection successful"'
# Deploy to server if connection successful
echo "Deploying files to server..."
rsync -avz -e "ssh -i ~/.ssh/deployer_key -o StrictHostKeyChecking=no" --delete deploy/ deployer@130.61.236.31:~/app.spletnimojster.si/
# Install dependencies and restart service on the server
echo "Installing dependencies and restarting service..."
ssh -i ~/.ssh/deployer_key -o StrictHostKeyChecking=no deployer@130.61.236.31 'cd ~/app.spletnimojster.si && npm install --omit=dev && pm2 restart rezervacije || pm2 start server.cjs --name "rezervacije" -- --port 3169'