Skip to content

Commit

Permalink
[fix] heroku가 아닌 aws ec2 개발 서버로 업로드 되도록 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
hyejungg committed Sep 9, 2022
1 parent e2483ad commit 81924f6
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 5 deletions.
86 changes: 86 additions & 0 deletions .github/workflows/developDeploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Server Production Server CI&CD Work Flow
on:
push:
branches:
- dev

jobs:
devlop_CICD:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.13.2] # 개발환경과 동일하게 맞춤

steps:
# 브랜치에 checkout해 코드를 가져온다
- name: Checkout source code.
uses: actions/checkout@v2

# node 설치 및 버전 확인한다.
- name: Node.js ${{ matrix.node-version }} install
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Check Npm -v
run: npm -v

# npm ci를 통해 npm install 진행
- name: Npm CI
run: npm ci

#lint 통과 확인
- name: Check ESLint
run: npm run lint

# .env 파일 생성
- name: Create .env file
run: |
touch .env
echo PORT=${{ secrets.PORT }} >> .env
echo DB_HOST=${{ secrets.DB_HOST }} >> .env
echo DB_USER=${{ secrets.DB_USER }} >> .env
echo DB_PASSWORD=${{ secrets.DB_PASSWORD }} >> .env
echo DB_NAME=${{ secrets.DB_NAME }} >> .env
echo DB_PORT=${{ secrets.DB_PORT }} >> .env
echo WISHBOARD_GMAIL_ID=${{ secrets.WISHBOARD_GMAIL_ID }} >> .env
echo WISHBOARD_GMAIL_PW=${{ secrets.WISHBOARD_GMAIL_PW }} >> .env
echo JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }} >> .env
echo SLACK_API_TOKEN=${{ secrets.SLACK_API_TOKEN }} >> .env
echo AWS_ACCESS_KEY=${{ secrets.AWS_S3_IMAGE_ACCESS_KEY }} >> .env
echo AWS_SECRET_KEY=${{ secrets.AWS_S3_IMAGE_SECRET_KEY }} >> .env
echo BUCKET_NAME=${{ secrets.AWS_S3_IMAGE_BUCKET_NAME }} >> .env
# 빌드하여 S3에 업로드
- name: Run build (main)
run: |
npm run build --if-present
- name: Copy ecosystem.config.js
run: |
cp ./ecosystem.config.js ./dist
# S3에 빌드 파일 저장
- name: zip file
run: zip -r wishboard-dev.zip ./dist ./ecosystem.config.js ./scripts ./appspec.yml

- name: AWS configure credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_DEPLOY_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_DEPLOY_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2

- name: upload to S3
run: aws s3 cp --region ap-northeast-2 ./wishboard-dev.zip s3://wishboard-dev-build/deploy/

- name: deploy with AWS codeDeploy
run: aws deploy create-deployment
--application-name wishboard-dev-codedeploy
--deployment-config-name CodeDeployDefault.OneAtATime
--deployment-group-name GROUP
--s3-location bucket=wishboard-dev-build,bundleType=zip,key=deploy/wishboard-dev.zip
5 changes: 1 addition & 4 deletions .github/workflows/prCheck.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
name: Server PR Check Work Flow
on:
push:
branches:
- dev
pull_request:
branches:
- main
- dev

jobs:
CICD:
PR_Check:
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/productDeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
- main

jobs:
CICD:
prod_CICD:
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down
18 changes: 18 additions & 0 deletions appspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/build
overwrite: yes

permissions:
- object: /home/ubuntu
pattern: '**'
owner: ubuntu
group: ubuntu

hooks:
AfterInstall:
- location: scripts/after-deploy.sh
timeout: 300
runas: ubuntu
10 changes: 10 additions & 0 deletions script/after-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash
REPOSITORY=/home/ubuntu/server

cd $REPOSITORY

sudo /usr/bin/yarn

cd ./dist

sudo pm2 reload ecosystem.config.js

0 comments on commit 81924f6

Please sign in to comment.