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 "Saving SSH key..." echo "$DEPLOY_SSH_KEY" > ~/.ssh/deployer_key chmod 600 ~/.ssh/deployer_key echo "SSH key saved with proper permissions" # Debug - show ssh key format (redacting content) head -n 1 ~/.ssh/deployer_key # 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 -v -i ~/.ssh/deployer_key -o StrictHostKeyChecking=no 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'