[Other skills]

GCE + Git + Github 연동 & Github Actions (3)

indongspace 2024. 4. 20. 09:52

https://indong1998.tistory.com/50 

 

GCE + Git + Github 연동 & Github Actions (2)

https://indong1998.tistory.com/49 GCE + Git + Github 연동 & Github Actions (1) - 구글 클라우드 플랫폼에서 프로젝트를 하나 생성한다. - Compute Engine API 사용하기를 클릭한다. - Compute Engine -> VM인스턴스 -> 인스턴

indong1998.tistory.com

- 이전 글에서 이어 진행된다.

 

 

- 이젠 깃 repository를 gce 네트워크와 연동한다. git clone ~

- SSH의 url을 복사해서 입력한다.  -> yes 입력

 

- exercise0419 repository로 들어가야 한다. 다음 코드 입력

cd exercise0419/

- 경로를 잘 확인하고 vi 편집기를 이용해 deploy.sh를 생성 후 편집한다.

- 터미널에 다음 코드 입력

vi deploy.sh

 

 

- 열린 deploy.sh 파일에 다음 코드를 입력 후 저장한다.

#!/bin/bash
git pull origin main

 

- git add / commit / push 진행

 

 

- repository에 deploy.sh 가 나타난 걸 확인. 잘 연동된 것이다.

 

 

- 이번엔 GCE + Git + Github 연동 & Github Actions 기술에 Streamlit을 활용해보자.

name: CICD-SSH
on: [push, pull_request]
jobs:
 build:
   runs-on: ubuntu-latest
   steps:
   - name: executing remote ssh commands using ssh key
     uses: appleboy/ssh-action@v1.0.0
     with:
       host: ${{ secrets.HOST }} 
       username: ${{ secrets.USERNAME }}
       key: ${{ secrets.SSH_KEY }}
       port: 22
       script: |
         whoami
         ls -al
         cd ${{ github.event.repository.name }}
         echo "Hello World!"
         chmod +x deploy.sh
         sh deploy.sh
         echo "Done----"

- repository에서 새로운 파일 생성한다.

- '.github/workflows/이름.yml' : 규칙을 지켜야 한다. -> 주어진 코드를 입력 -> Commit changes

 

 

- 이번엔 로컬과 깃허브 repository를 연동시켜보자

- HTTPS 경로 복사 후 git clone 해주고 vscode를 열어준다.

 

 

import streamlit as st 

def main():
    st.title("Hello World FROM Local")

if __name__ == "__main__":
    main()

- app.py 파일을 생성 후, git bash 터미널을 열어 가상환경에서 진행시켜보자.

- pip install streamlit을 통해 streamlit을 설치 후,

- streamlit run app.py

 

- streamlit 대시보드가 원활하게 돌아가는지 확인

 

 

- 중요한 것은 항상 로컬과 GCE 네트워크 모두 git의 repository와 연동되어있기 때문에,

GCE 네트워크에서 작업을 진행하여 변경된 git repository의 변경사항은 로컬에서 git pull 해 주었을때, 로컬에도 반영된다는 것이다.

 

 

- git add .

- git commit -m "메시지"

- git push 를 진행한 뒤,

 

- repository의 Action을 들어가보면 편집한 진행상황이 자동으로 등록되는 걸 확인할 수 있다.

- app.py가 생성 되었는지 확인해 볼 수 있다.

 

# app.py에 코드 추가
st.title("Hello World FROM Local2")

- 코드 한 줄을 추가한 뒤

- git add .

- git commit -m "메시지"

- git push를 진행하고 repository의 Action을 들어가면,

 

- Action이 원활하게 작동되는지 확인할 수 있다.

 

- 결과적으로, Github Action은 Workflow 자동화를 위한 도구인 것이다.

 

 

- 다음 코드를 입력해 Local 환경을 구축해보자.

nohup streamlit run app.py > streamlit.log 2>&1 &

- streamlit.log가 생성되었다. 

- app.py를 수정해보자.

 

 

- st.title 한 줄 추가한 뒤,

 

- streamlit 대시보드를 새로고침하면 바로 코드가 반영되는 것을 확인할 수 있다.

 

끝