Skip to content
This repository has been archived by the owner on Jun 24, 2024. It is now read-only.

깃허브 엑션 세팅 #3

깃허브 엑션 세팅

깃허브 엑션 세팅 #3

Workflow file for this run

name: ssh for dev deploy # workflow의 이름을 지정해준다.
on: # 작동 트리거로 설정할 부분을 작성하는 곳이다.
push: # 이 스크립트는 개발서버용 이므로 dev 브렌치에 push될 때 작동하도록 해두었다.
branches: [ master ]
# jobs에선 action의 단계(step)를 설정할 수 있다.
# 여러 개의 job을 사용할 수 있고, job끼리 서로 정보를 교환할 수도 있다.
jobs:
build:
name: Build # job의 이름을 지정해 준다.
runs-on: ubuntu-latest # job을 실행할 환경을 정해준다.
steps:
# Github Actions는 해당 프로젝트를 리눅스 환경에 checkout하고 나서 실행한다.
# 꼭 필요한 과정!
# 누가 만들어 놓은 Action을 사용할 때에는 uses 키워드를 사용한다.
- uses: actions/checkout@v2
# step의 이름을 지정해준다.
- name: SSH Remote Commands
# 위에 말했던 appleboy의 Action을 사용
uses: appleboy/[email protected]
# with라는 키워드로 Action에 값을 전달할 수 있다.
# 아까 설정했던 secrets를 사용해서 값을 가져오자.
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.USER_NAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.SSH_PORT }}
# ssh 연결이 아무리 늦어도 20초 정도면 된다.
# 이 이상 끌게되면 사실상 접속 실패이므로 40초 타임아웃을 걸어두자
timeout: 40s
# ssh 접속이 되면 실행할 스크립트
script: |
echo "#START"
cd /root/REST_API_Server
echo "############# GIT PULL #############"
pass=$(sudo git pull origin master)
echo $pass
if [ -n "$pass" ]; then
echo "############# Server Start #############"
else
echo "############## git pull: Error ##############"
exit 1;
fi