Skip to content

Merge pull request #26 from ije90s/dev #11

Merge pull request #26 from ije90s/dev

Merge pull request #26 from ije90s/dev #11

Workflow file for this run

name: CI/CD Test
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install Package
run: npm ci
- name: Test
run: npm test
- name: Build
run: npm run build
- name: Set current date
run: echo "DEPLOY_FILENAME=app_$(date +'%Y%m%d_%H%M%S').tar.gz" >> $GITHUB_ENV
- name: Zip
run: tar -czf ${{ env.DEPLOY_FILENAME }} dist package.json package-lock.json ecosystem.config.js
- name: Copy files to EC2
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
source: "${{ env.DEPLOY_FILENAME }}"
target: "/home/ubuntu/temp"
- name: SSH to EC2
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
script_stop: true
envs: DEPLOY_FILENAME
script: |
cd /home/ubuntu
mkdir -p app
rm -rf app/*
tar -xzf /home/ubuntu/temp/$DEPLOY_FILENAME -C app
cd app
cp ../.env.prod ./.env
chmod 600 .env
npm ci --only=production
npx typeorm migration:run -d ./dist/typeorm.datasource.js
pm2 startOrReload ecosystem.config.js --env production