Cloud Build를 사용하여 빌드 자동화

이 페이지에서는 Cloud Build를 사용하여 빌드를 자동화하는 방법을 설명합니다.

Cloud Build는 빌드 트리거를 사용하여 CI/CD 자동화를 사용 설정합니다. 새 커밋을 저장소에 푸시할 때 또는 pull 요청이 시작될 때와 같은 수신 이벤트를 리슨하고 새 이벤트가 수신되면 빌드를 자동으로 호출하도록 트리거를 구성할 수 있습니다.

GitHub 저장소에 변경사항을 푸시할 때마다 빌드를 호출하도록 트리거를 만들고 이 트리거를 구성하게 됩니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Enable the Cloud Build API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  9. Enable the Cloud Build API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. 아직 계정이 없다면 GitHub에서 계정을 만드세요.

  13. GitHub에서 2단계 인증을 설정한 경우 명령줄에 GitHub 비밀번호 대신 사용할 개인 액세스 토큰을 만듭니다.

샘플 GitHub 저장소 포크 및 클론

빌드할 샘플 소스 코드가 필요합니다. 이 섹션에서는 Go의 Hello World 예시가 포함된 기존 소스 저장소를 자체 GitHub 사용자 계정으로 클론합니다.
  1. 아직 계정이 없다면 GitHub에서 계정을 만드세요.

  2. GitHub에서 2단계 인증을 설정한 경우 명령줄에 GitHub 비밀번호 대신 사용할 개인 액세스 토큰을 만듭니다.

  3. cloud-build-samples 저장소를 고유 GitHub 계정으로 포크합니다.

    1. Cloud Build cloud-build-samples 저장소로 이동합니다.

    2. 페이지 오른쪽 상단 모서리에 있는 포크 아이콘을 클릭합니다.

    3. 저장소를 포크할 GitHub 사용자 계정을 클릭합니다.

      cloud-build-samples 저장소의 포크된 버전이 있는 페이지로 자동으로 리디렉션됩니다.

  4. 로컬 환경에서 터미널을 엽니다.

  5. 다음 명령어를 실행하여 포크된 저장소를 클론합니다. 여기서 GITHUB_USERNAME은 GitHub 계정의 사용자 이름입니다.

    git clone https://github.com/GITHUB_USERNAME/cloud-build-samples.git

저장소에 Cloud Build 연결

트리거를 사용하여 GitHub에서 소스 코드를 빌드하려면 먼저 Cloud Build를 GitHub 저장소에 연결해야 합니다. 이 섹션에서는 cloud-build-samples 저장소를 Cloud Build에 연결합니다.
  1. Google Cloud 콘솔 탐색 메뉴에서 Cloud Build > 트리거를 클릭합니다.

    트리거 페이지 열기

  2. 프로젝트를 선택하고 열기를 클릭합니다.

  3. 저장소 연결을 클릭합니다.

  4. 소스 선택에서 GitHub(Cloud Build GitHub 앱)를 선택합니다.

  5. 계속을 클릭합니다.

  6. GitHub 계정을 인증합니다.

  7. 저장소 선택 섹션에서 GitHub 계정의 사용자 이름을 선택합니다. 사용자 이름이 목록에 표시되지 않는 경우 다음 단계를 따릅니다.

    1. GitHub 계정 목록에서 +추가를 클릭합니다.

      Cloud Build GitHub 앱을 설치하라는 팝업이 표시됩니다.

    2. GitHub 사용자 이름을 클릭합니다.

    3. 특정 저장소만을 클릭하여 특정 저장소에 Cloud Build GitHub 앱을 설치합니다.

    4. 드롭다운 메뉴에서 GITHUB_USERNAME/cloud-build-samples를 선택합니다. 여기서 GITHUB_USERNAME은 GitHub 계정의 사용자 이름입니다.

    5. 설치를 클릭합니다.

      계속하기 전에 GitHub 계정과 연결된 비밀번호를 입력하라는 메시지가 표시될 수 있습니다.

    6. Cloud Build GitHub 앱을 설치하면 이제 GitHub 계정 필드의 드롭다운 메뉴에 사용자 이름이 표시됩니다. 사용자 이름을 선택합니다.

  8. 저장소에서 GITHUB_USERNAME/cloud-build-samples를 저장소로 선택합니다.

  9. 체크표시를 클릭하여 트리거 연결에 대한 이용약관에 동의합니다.

  10. 연결을 클릭합니다.

  11. 완료를 클릭합니다.

다음 섹션에서는 트리거를 만들게 됩니다.

트리거 만들기

  1. Google Cloud Console에서 트리거 페이지를 엽니다.

    트리거 페이지 열기

  2. 페이지 상단의 프로젝트 선택기 드롭다운 메뉴에서 프로젝트를 선택합니다.

  3. 열기를 클릭합니다.

  4. 트리거 페이지에서 트리거 만들기를 클릭합니다.

  5. 트리거 만들기 페이지에서 다음 설정을 입력합니다.

    • 이름: 트리거 이름으로 hello-world-trigger를 입력합니다.

    • 이벤트: 트리거를 호출할 저장소 이벤트로 브랜치로 푸시를 선택합니다.

    • 소스: cloud-build-samples 저장소를 소스로 선택합니다. 여기에는 소스 코드 및 빌드 구성 파일이 포함됩니다.

    • 빌드 구성: Cloud Build 구성 파일을 빌드 구성 파일로 선택합니다.

    • Cloud Build 구성 파일 위치: Cloud Build 구성 파일 경로를 quickstart-automate/cloudbuild.yaml로 지정합니다.

  6. 만들기를 클릭하여 빌드 트리거를 저장합니다.

변경사항 커밋

이 섹션에서는 고유 GitHub 계정에서 클론된 cloud-build-samples 저장소에 변경사항을 커밋합니다.

  1. 터미널에서 quickstart-automate 디렉터리로 이동합니다.

    cd cloud-build-samples/quickstart-automate
  2. main.go 파일을 열고 'Hello, world!'가 포함된 줄을 'Hello, universe!'로 업데이트합니다.

      package main
    
      import (
          "fmt"
      )
    
      func main() {
          fmt.Println("Hello, universe!")
      }
      
  3. Cloud Build에서 사용되는 빌드 구성 파일인 cloudbuild.yaml을 검토합니다. 트리거로 빌드가 호출되면 이 파일의 빌드 단계는 Cloud Build가 Docker Hub의 golang 이미지를 사용하여 main.go 파일을 빌드하고 실행하도록 지시합니다.

       steps:
       - name: golang
         script: go run quickstart-automate/main.go
       
  4. 저장소의 루트 디렉터리로 다시 돌아갑니다.

       cd ..
  5. 다음 명령어를 실행하여 변경사항을 GitHub에 커밋합니다.

        
        git add quickstart-automate/main.go
        git commit -m "update text"
        git push

    저장소에 코드를 푸시할 때 사용자 인증 정보를 입력하라는 메시지가 표시될 수 있습니다. 메시지가 표시되면 사용자 이름과 비밀번호 또는 인증 토큰을 입력합니다.

이제 저장소에 변경사항이 푸시되었습니다. 푸시로 인해 트리거의 자동 빌드가 수행됩니다.

빌드 세부정보 보기

이 섹션에서는 변경사항을 커밋한 후 호출된 빌드와 연관된 빌드 세부정보를 확인합니다.
  1. Google Cloud 콘솔 탐색 메뉴에서 Cloud Build > 기록을 클릭합니다.

    Cloud Build 페이지 열기

  2. 프로젝트를 선택하고 열기를 클릭합니다.

    빌드 기록 페이지가 표시됩니다.

    자동화를 위한 빌드 기록 페이지의 스크린샷

  3. 빌드 열에서 빌드 이름을 클릭합니다.

  4. 빌드 세부정보 페이지에서 빌드 아티팩트를 클릭합니다.

    다음과 비슷한 출력이 표시됩니다.

    빌드 아티팩트 스크린샷

  5. 빌드 로그를 보려면 다운로드 아이콘을 클릭하여 다운로드한 파일을 확인하세요.

트리거를 사용하여 Cloud Build 빌드를 성공적으로 호출하고 빌드 세부정보를 확인했습니다.

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.

  1. Google Cloud Console 탐색 메뉴에서 Cloud Build > 트리거를 클릭합니다.

    트리거 페이지 열기

  2. 프로젝트를 선택하고 열기를 클릭합니다.

  3. hello-world-trigger 행에서 행의 오른쪽 끝에 있는 작업 메뉴(세로 줄임표)를 클릭합니다.

  4. 삭제를 선택합니다.

이제 클론된 저장소와 연관된 트리거가 삭제되었습니다.

다음 단계