https://indong1998.tistory.com/50
- 이전 글에서 이어 진행된다.
- 이젠 깃 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 대시보드를 새로고침하면 바로 코드가 반영되는 것을 확인할 수 있다.
끝
'[Other skills]' 카테고리의 다른 글
제품 분석의 큰 흐름 flow chart (0) | 2024.09.01 |
---|---|
가독성을 챙기기 위한 SQL 스타일 가이드 (0) | 2024.05.11 |
GCE + Git + Github 연동 & Github Actions (2) (0) | 2024.04.19 |
GCE + Git + Github 연동 & Github Actions (1) (0) | 2024.04.19 |
Git 브랜치의 생성과 checkout , 분산관리 시스템 (1) | 2024.02.08 |