Skip to content

Update integration.yml #15

Update integration.yml

Update integration.yml #15

Workflow file for this run

name: Integration
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm install
- run: npm run build
unit-test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm install
- run: npm run test
deploy:
runs-on: ubuntu-latest
needs: [build, unit-test] # Wait for both build and unit-test jobs to finish
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup SSH Agent
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
# - name: Transfer files to VM
# run: |
# scp -r -o StrictHostKeyChecking=no ./ ubuntu@${{ secrets.VM_IP }}:/home/ubuntu/app
- name: Connect to VM and deploy
run: |
ssh -o StrictHostKeyChecking=no ubuntu@${{ secrets.VM_IP }} << 'EOF'
cd /home/ubuntu/app
npm install
npm run build
pm2 restart all || pm2 start npm --name "my-app" -- run start
EOF