이전 수업에서 작성한 PyTest 코드를 Github Action Workflow로 작성해보겠습니다.
실습 준비
Github Action CI Workflow
- Pytest CI Workflow는 코드가 업로드 될 때마다 수행이 되어야하고, 우리가 기존에 설정한 파이썬 개발 환경과 동일하도록 환경을 설정해야합니다.
- 다음 스크립트를 추가합니다.
-
.github/workflows/ci_workflow.yaml
Github Action CD Workflow
- CD Workflow는 코드가 Main 브랜치에 업로드 될 때마다 수행이 되어야하고, Docker 이미지 빌드 후 클라우드 컨테이너 스토리지 Push 및 서비스 배포 명령을 보내야합니다.
- 다음 스크립트를 추가합니다.
-
Dockerfile
-
entrypoint.sh
-
.github/workflows/cd_workflow.yaml
배포 준비
- MemoryStore(Redis) 설정
- 서비스에서 사용할 Redis를 생성해야합니다.
- Memory Store로 이동해서 인스턴스 만들기를 선택합니다.
- 이름, 등급, 용량, 리전, 네트워크를 설정합니다.
- 비공개 서비스 액세스 설정
- 설정 완료
- GCP Service 계정 생성
- 먼저 Cloud Run 배포를 하기 위해 필요한 권한들을 세팅해둔 Service Account를 생성해야 합니다.
- ‘IAM 및 관리자 - 서비스 계정’ 탭으로 이동합니다. → 서비스 계정 만들기 선택
- 서비스 계정 이름을 작성합니다. → 만들고 계속하기 선택
- 프로젝트에 대한 액세스 권한을 설정합니다. → 완료 선택
- Service 계정 키 다운로드
- 생성한 키를 선택한 뒤 키 항목에서 키 추가를 눌러 JSON 포맷으로 다운받습니다.
- Artifact Registry 생성
- Docker Image를 저장할 Artifact Registry를 생성합니다.
- 이름, 형식, 리전만 설정하고 나머지는 기본 값을 사용합니다.
- 이제 해당 레포지토리에 Docker Image를 저장할 수 있습니다.
- Docker Image Build & Push
- Cloud Run을 처음 설정할 때는 Docker Image가 있어야합니다. 따라서 먼저 Docker Image를 빌드하고 업로드 합니다.
- Docker Image Build
- GCP Login
- Docker Registry 리전 설정
- Docker Image Push