본문 바로가기
GITHUB.COM

[Git] github Actions로 EC2 리눅스에 git pull 자동화하는 방법

by 처카푸 2024. 5. 7.

github.com 에서 EC2에 git pull 자동화하는 방법

 

1. 내가 자동화 하고 싶은 레파지토리에 Settings에 들어간다.

레파지토리 settings

2. 세팅 Secrets and variables 에 Actions 에 들어가서 pull하는데에 필요한 3가지 정보를 입력해준다.

Secrets and variables 에 Actions

2-1. HOST : ip 주소 저장

- 나의 AWS IP주소 또는 DNS 를 복사해서 가져온다.

IP 주소 입력

2-2. SSH_PRIVATE_KEY : 인증키 PPK(윈도우즈 용)를 PEM(리녹스 용)으로 변환하여 저장

- 변환을 위해서 PuTTY 설치할때 같이 설치되는 PuTTYgen 에서 인증키 변환해준다.

PuTTYgen

- ppk load 하고, Key comment 작성

ppk load

- Conversions 에서 ppk를 pem으로 변환할때, 확장자 꼭 .pem으로 해준다.

conversions_Export OpenSSH key
pem 이름

- github.com 에서 새로운 시크릿 엑션즈 만들기

- pem 파일 폴더 드래그해서 넣으면 창이 뜨는데 창에 떠 있는 글 전체 복사해서 붙여 넣는다.

pem 넣기
pem 전체 복사

 

 

2-3. USER : 유저 명 저장

USER

2-4. 3가지 모두 저장 완료 된 상태

complete

 

3. 내가 자동화 하고 싶은 레파지토리 파일 경로 알려준다.

- github.com 에 actions 에서 작성

set up a workflow yourself

- 나의 branches 확인하고, 작성하기

- .yml (야믈파일)은 클론과 들여쓰기를 사용하여 작성되고, 환경설정할 때 많이 사용된다.

branches 의 main 확인하고 branches : main 으로 작성완료.

- 작성 방법

# 이름은 자유
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 확인하여 작성
    branches:
      - main


jobs:
 # github에서 리녹스 컴퓨터 하나 만들어서 접속하라는 명령어
  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 }}
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USER }}
         # 내가 자동화 시키고 싶은 데렉토리 경로 작성 및 git pull 하기
          script: |
            cd Github/streamlit_car_price/                        
            git pull

 

3-1. 잘 설정되었는지 초록색 체크 박스로 확인

create main.yml

 

4. GitHub Desktop 에서

   해당 레파지토리 pull -> 코드 수정 -> 로컬에서 확인 -> commit -> push 하고,

   자동으로 잘 변경되는지 확인한다.  내가 적은 커밋 제목으로 제대로 pull 된 것을 확인할 수 있다.

최종 확인 완료