pm2 ci cd github action

deploy.ymlYAML

deploy.yml

name: Deploy

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: "20"

      - name: Deploy to server
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
          SSH_HOST: your-host
        run: |
          mkdir -p ~/.ssh
          echo "$SSH_PRIVATE_KEY" > ~/.ssh/key.pem
          chmod 600 ~/.ssh/key.pem
          ssh-keyscan -H $SSH_HOST >> ~/.ssh/known_hosts
          chmod 644 ~/.ssh/known_hosts
          npx pm2 deploy ecosystem.config.js main
Updated: 11/7/2024