


HOST : EC2의 IP
SSH_PRIVATE_KEY : ppk를 변환한 pem파일 안의 내용 전체
USER : 접속할 유저 (기본적으로 ec2-user)

'set up a workflow yourself' 을 누르면 만들기로 넘어간다.
name: deploy
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches:
- main
jobs:
SSH:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: ssh to ec2
uses: appleboy/ssh-action@master
with:
key: ${{ secrets.SSH_PRIVATE_KEY }} # 내가 변수로 저장한 pem key
host: ${{ secrets.HOST }} # 내가 변수로 저장한 ip
username: ${{ secrets.USER }} # 내가 변수로 저장한 User
script: |
cd Github/Data_Project_2 # 내가 Clone한 폴더 안으로 들어간다.
git pull # 자동으로 pull해서 주기적 업데이트
# 깃허브 레파지토리가 프라이빗으로 만들어져 있을때.
# git pull https://${{ secrets.GIT_USER }}:${{ secrets.GIT_PASSWORD }}@github.com/blockenters/streamlit_kmeans.git
코드를 정상적으로 작성했다면, 한번 확인할 수 있다.
틀리게 작성했다면 작동이 정상적으로 안될테니 확인하는 것이 좋다.
성공 작성
해당 표시가 안되어있다면, 코드를 다시 확인하거나 변수에 저장했던 값들을 다시 적어보자.
# Controls when the workflow will run
on: # 이럴때 실행 해달라
# Triggers the workflow on push or pull request events but only for the main branch
push: # push를 할때
branches: #어떤것이?
- main #main이
# main의 정보에 push될때마다 실행을 해달라
# 실행
jobs:
SSH:
runs-on: ubuntu-latest # 우분투 최신버전으로 컴퓨터를 준비하라 ()
steps:
- uses: actions/checkout@v3 # 레파지토리 참고하라
- name: ssh to ec2 # ec2에 접속하라.
uses: appleboy/ssh-action@master # 접속 제공 코드
with:
key: ${{ secrets.SSH_PRIVATE_KEY }} # 키페어 필요
host: ${{ secrets.HOST }} # ip
username: ${{ secrets.USER }} # 해당 유저 접속
script: | # 실행 할 코드
cd Github/car_price_dash_board/ #경로 이동 (실제 존재하는 경로로 이동해야한다.)
git pull # git pull
# 깃허브 레파지토리가 프라이빗으로 만들어져 있을때.
# git pull https://${{ secrets.GIT_USER }}:${{ secrets.GIT_PASSWORD }}@github.com/blockenters/streamlit_kmeans.git
===============================================
=> 이후 로컬 작업 서버에서 git을 최신화로 다운받는다. (작업 서버 git pull)