GitHub Actions을 이용해 서버에 ssh로 접속하여 자동배포하는 과정을 기록합니다.
name: Node.js CI # Action 식별이름
on: # 조건
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs: # 수행할 일 목록
build:
runs-on: ubuntu-latest # 환경 설정
strategy: # 환경 설정
matrix:
node-version: [14.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps: # 수행 단계
- name: executing remote ssh commands using password # 수행 단계 식별이름
uses: appleboy/ssh-action@master # ssh 접속을 사용
with: # 함께 사용할 것
host: ${{ secrets.HOST }} # GitHub secret에 저장된 HOST
username: ${{ secrets.USERNAME }} # GitHub secret에 저장된 USERNAME
password: ${{ secrets.PASSWORD }} # GitHub secret에 저장된 PASSWORD
port: ${{ secrets.PORT }} # GitHub secret에 저장된 PORT
script: | # 서버에 접속 후 사용 할 스크립트 (아래는 예시 명령어)
killall node
killall nohub
echo "> node exit"
cd project && git pull
echo "> git cloen update"
cd client && npm install
npm run build
echo "> react build"
cd ..
cd server && npm install
{ nohup npm start > nohub.out < /dev/null & }
echo "> server on"
exit
자세한 내용 참고 : Github Action 사용법 정리
안녕하세요! 궁금한 점이 있어서 댓글 남겨봅니다!
echo "> node exit" echo "> git clone update" 여기서 echo를 쓰신 이유가 있으신가요??
echo 없이 다른 명령어들 처럼 그냥 git clone 이런식으로 하면 작동이 안되는 건지 궁금합니다!