GitHub Actions?
GitHub Actions은 GitHub에서 호스팅되는 자동화 및 워크플로우 도구
이를 사용하여 소프트웨어 개발 및 배포 과정을 자동화하고 사용자 지정할 수 있다.
- 지속적 통합 (CI): 코드가 커밋될 때마다 빌드, 테스트 및 검증을 자동으로 실행하여 코드의 품질을 보장
- 지속적 배포 (CD): 코드가 통합 및 테스트를 통과하면 자동으로 배포를 시작하여 실제 환경으로 적용
- 자동화된 워크플로우: GitHub Actions을 사용하여 코드 저장소에서 발생하는 이벤트에 대한 자동화된 작업 흐름을 정의할 수 있다. 예를 들어, 코드를 푸시할 때마다 빌드 및 테스트를 실행하거나, 새로운 이슈가 열릴 때마다 알림을 보내는 등의 작업을 설정할 수 있다.
- 커뮤니티 액션: GitHub Actions의 풍부한 커뮤니티가 제공하는 다양한 작업들을 활용하여 작업을 빠르게 설정할 수 있다. 이는 다양한 작업을 실행하는 데 도움이 되는 사전 작성된 작업들을 포함
GitHub Actions은 YAML 파일을 사용하여 작업 워크플로우를 정의하며, 이를 통해 소스 코드 관리와 함께 코드 작업 흐름을 관리할 수 있다. 이러한 기능은 개발자들이 소프트웨어를 효율적으로 개발, 테스트 및 배포할 수 있도록 지원한다.
GCE와 Git, Local 폴더 연동
우선 GCE+Git+Github 연동 후 Local에 git repo clone하기
- vscode에서 Readme 파일 수정하고 commit
- SSH 클라우드에서 git pull 후 vi README.md 해보면 vscode에서 수정한 내용이 들어있는 것을 확인
Github Actions 설정
Workflows 정의
1. github에서 새로운 폴더 생성
폴더 이름은 .github/workflows/streamlit-gcp.yml
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----"
** 저장 후 SSH 클라우드와 vscode에서 꼭 git pull 해주기
2. git repo에서 SSH Key / HOST / USER Name 생성
settings > Secrets and variables > Actions
2-1. SSH_KEY 설정
New repository secret 클릭 후 Name 입력
Secret 부분에는 sshkey 입력
- SSH KEY 확인 방법
아래 코드 입력 후 -----BIGIN부터 끝까지 다 복사해서 New repository secret에 붙여넣기
$ cat ~/.ssh/id_rsa
2-2. HOST 설정
New repository secret 클릭 후 Name
Secret에는 외부IP 복사해서 붙여넣기 (빨간색 부분)
2-3. USER NAME 설정
SSH 클라우드에 있는 아이디(?) 입력 (메타데이터 > SSH키 > 사용자이름에 있는 아이디)
CI/CD 설정
- SSH 클라우드에서 아래 코드 입력
vi deploy.sh
- vi deploy.sh 편집기에서 아래 코드 입력 후 저장
새로운 코드가 원격 저장소에 푸시되면 스크립트를 실행하여 서버에 변경 사항을 자동으로 배포하는 데 사용
#!/bin/bash
git pull origin main
- git push해주기
- Local에서도 git pull (vscode)
Workflows 설정이 잘 되었는지 확인
- vscode에서 README.md 파일에 글 추가
- git push
- github action에서 동일한 commit 메시지로 push된 부분 확인
- SSH 클라우드에서 README.md 파일에 들어가보면 파일이 업데이트 된 것을 확인할 수 있다.
streamlit 파일 생성 후에 workflow에 연동하기
- vscode에서 가상환경 만들고 app.py 파일 생성 후에 streamlit run app.py로 파일 잘 열리는지 확인
- git push
- workflow 설정을 해두었기 때문에 SSH 클라우드에서 확인 가능!
최종배포
- SSH 클라우드에서도 streamlit run app.py 파일 실행 후 정상적으로 열리는 것 확인
- 확인되면 SSH클라우드에서 아래 코드 실행 (최종배포)
nohup streamlit run app.py > streamlit.log 2>&1 &
- 외부IP:8501 했을 때 화면이 잘 뜨면 성공!
'Google Cloud Platform' 카테고리의 다른 글
BigQuery Local 환경 연동 (0) | 2024.04.22 |
---|---|
BigQuery 구글코랩 연동 (0) | 2024.04.22 |
GCE + Git + Github 연동 (0) | 2024.04.18 |
GCE Streamlit 설치 (0) | 2024.04.18 |
GCP에서 spark 설치하기 (1) | 2024.04.18 |