This repository has been archived by the owner on Jun 24, 2024. It is now read-only.
깃허브 엑션 세팅 #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |