뉴스 분석 프로젝트 <news crawl><5>

프로젝트 개요 및 각 글들의 링크: https://namth.tistory.com/18

 

news crawl 단계의 마지막 단계이다.

배포에 필요한 dockerfile까지 작성이 완료되었으므로 GCP cloudrun에 배포를 하고자 한다.

현재 보유 중인 서버는 너무 작아서 docker image를 빌드를 할 수가 없고,

자동적으로 빌드 배포되는 것을 원해서 GCP build를 이용하기로 했다.

 

빌드 및 배포는 아래와 같이 동작한다.

 

  1. GitHub main브랜치에 push
  2. GCP build에서 해당 브랜치의 push 이벤트 발생 시 빌드 시작(cloudbuild.yaml)
  3. GCP build에서 빌드가 완료되면 GCP cloud run에 배포(cloudbuild.yaml)

 


 

GITHUB 트리거 등록

 

1. 클라우드 콘솔, build 진입

 

https://console.cloud.google.com/cloud-build/triggers?hl=ko&project=yourproject  와 같이 콘솔에 들어가게 되면

 

왼쪽 사이드바에 트리거라는 목록이 보인다.

GCP build 사이드 메뉴


 

2. 트리거 생성 화면 진입

 

트로거 목록을 클릭하면 트리거 만들기 버튼을 눌러준다.

 

트리거 화면 버튼

 

 


 

3. 트리거 생성(정보 입력)

이제 트리거에 대한 정보를 넣어주면 되는데

 

트리거 정보

  • 이름: 트리거의 이름
    말 그대로 트리거의 이름으로 프로젝트의 리전(지역) 내에서 고유해야 한다.

  • 리전: 빌드가 진행되는 영역
    빌드를 어느 지역에서 진행할지 선택 가능(서울: asia-northeast3)

 

이벤트 정보

 

GitHub 브랜치에 push시 빌드되는 것을 원했으므로 이벤트는 "브랜치로 푸시"로 선택했다.

 

트리거 정보 입력, 이벤트 설정

 


4. GCP build - GitHub 연결(저장소 등록)

 

이제 GITHUB저장소와 연결을 해야 하는데 이벤트소스에서 저장소를 연결할 수 있다.

저장소를 누르고  "새 저장소 연결"을 눌러준다.(이미 트리거를 만든 상태여서 저장소와 연결이 되어있다.)

 

GitHub 저장소 연결1, 기존에 연결되어있는 저장소 출력

 

 

새 저장소 연결을 누르고 나면 오른쪽에 사이드바가 나온다.

GitHub저장소와 연결을 할 예정이기에 그대로 계속 버튼을 눌러준다.

 

GitHub 저장소 연결2, 이벤트 소스 선택

 

 

인증단계의 경우 GitHub페이지에서 인증을 하게 된다.

인증을 마치게 되면 아래와 같이 GitHub 계정 칸이 채워 저 있으며, 저장소가 선택 가능해진다.

 

GitHub 저장소 연결3, GitHub계정 인증 및 저장소 선택

 


 

 

5. GCP build - GitHub 연결(브랜치 등록)

 

이제 저장소를 선택하고 PUSH이벤트 발생 시 빌드가 되길 원하는 브랜치를 선택하면 된다.

이번 트리거는 main브랜치에 PUSH이벤트가 발생이 빌드되기를 원했으므로 아래와 같이 설정했다.

정규식 반전과 자동완성을 이용하면 쉽게 원하는 브랜치의 표현식을 만들 수 있다.

 

 

이벤트 GitHub 저장소 및 브랜치 설정

 


6. GCP build 설정 파일 등록(cloudbuild.yaml)

 

이제 빌드 진행에 필요한 설정 파일들을 등록할 차례이다.

나의 경우 cloudbuild.yaml 파일을 통해 빌드를 진행했다.

 

GitHub저장소에 같이 업로드가 되어있으며, 위치는 프로젝트의 root 디렉토리에 위치해 있다.

 

따라서 구성은 아래와 같이 설정했다.

  • 유형: cloud build
  • 위치: 저장소
  • cloud build 구성파일 위치: /cloudbuild.yaml

트리거 구성 파일 설정

 

 

구성 파일의 경우 아래와 같다.

아는 한도 내에서 주석을 달아 놓았고, 그것만 바꾸어도 사용이 가능할 것 같다.

 

 


7. 트리거 생성

 

이제 남은 단계는 옵션 및 고급 설정이 남았다.

나 같은 경우에는 '빌드 실행 전에 승인 필요' 을 체크하여서 push이벤트 후 콘솔에서 승인하도록 설정하였다.(빌드 요금이 조금 비싸다.)

딱히 필요 없는 경우가 있어서 알아보지 않고 빈칸으로 두고 트리거를 생성했다.

 

옵션에 대한 자세한 설명은 아래 링크에 있다.

https://cloud.google.com/build/docs/automating-builds/create-manage-triggers#build_trigger

 

만들기를 누르고 생성이 되면 지정한 브랜치에 push 이벤트가 발생 시

yaml 파일을 바탕으로 빌드 및 배포가 시작된다.

 

트리거 고급 옵션 설정

 

번외. 빌드 승인

만약 트리거 옵션 중 '빌드 실행 전에 승인 필요' 옵션이 체크한 경우 GCP build 콘솔 기록들 중에서 상태가 아래처럼 생긴 기록이 생긴다.

 

빌드 대기 화면1

 

해당 기록의 드랍다운 메뉴(오른쪽 끝 메뉴)를 눌러서 빌드를 승인할지 거부할지 정할 수 있다.

 

빌드 대기 화면2

 

빌드 거부를 누르면 아래와 같이 거부 사유를 적을 수 있으며 거부 버튼을 마저 누르면 빌드가 거부된다.

 

거부 팝업

 

빌드 승인을 누르면 거부와 같이 창이 뜨고 메시지를 적고 빌드를 승인할 수 있다.

 

승인 팝업

 


8. 빌드 상태 확인

 

빌드 및 배포 상태를 확인하고 싶다면

가장 좋은 방법은 GCP console -> build에서 대시보드(기록)를 보면 확인이 가능하고

쉽고 편한 방법은 GitHub을 이용하는 방법이다.

 

아래와 같이 커밋 왼쪽에 표시가 되는데, 4가지의 상태를 표시해준다.

 

 

빌드 상태 로고

 

 

추가) GitHub 커밋 목록에 표시되는 상태들

 

GitHub 커밋 목록, 성공 실패 대기

 

 


GCP Build 공식 문서

https://cloud.google.com/build/docs/overview

 

Cloud Build 개요  |  Cloud Build 문서  |  Google Cloud

의견 보내기 Cloud Build 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Cloud Build는 Google Cloud에서 빌드를 실행하는 서비스입니다. Cloud Build는 다양한 저장

cloud.google.com

 

# 2022.09.30 수정