이 페이지에서는 Bitbucket 서버 저장소를 Cloud Build에 연결하는 방법을 설명합니다.
시작하기 전에
- 
  
  
    
      Enable the Cloud Build, Secret Manager, and Compute Engine APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 저장소를 연결하기 전에 Bitbucket 서버 호스트 연결 안내를 따르세요.
Bitbucket 서버 저장소에 연결
콘솔
Google Cloud 콘솔을 사용하여 Bitbucket 서버 저장소를 Cloud Build에 연결하려면 다음 안내를 따르세요.
- Google Cloud 콘솔에서 저장소 페이지를 엽니다. 
- 페이지 상단에서 1세대 탭을 선택합니다. 
- 저장소 연결을 클릭합니다. 
- Bitbucket 서버를 선택합니다. - 저장소 연결 패널이 표시됩니다. 다음 단계를 완료하여 Bitbucket 서버 저장소를 연결합니다. - 리전: 연결이 있는 리전을 선택합니다. 
- 소스 코드 관리 제공업체 선택에서 Bitbucket 서버를 선택합니다. 
- 호스트 연결: 드롭다운 메뉴에서 호스트 연결의 이름을 선택합니다. 
- 계속을 클릭합니다. 
- 저장소 선택에서 Cloud Build에 연결할 Bitbucket 서버 저장소를 선택합니다. 
- Bitbucket 서버 계정 및 저장소를 선택한 후 동의 면책조항을 읽고 그 옆에 있는 체크박스를 선택하여 표시된 약관에 동의합니다. 
- 연결을 클릭하여 저장소를 연결합니다. 
 - 저장소가 연결되면 Cloud Build가 Bitbucket 서버 인스턴스의 저장소에 웹훅을 구성합니다. 그런 다음 저장소는 웹훅을 전송하여 저장소를 변경할 때 해당 Bitbucket 서버 트리거를 호출합니다. 저장소는 여러 호스트 연결로 여러 번 연결될 수도 있습니다. 웹훅을 관리하는 방법은 웹훅 관리를 참조하세요. - 웹훅을 찾으려면 웹훅 ID가 필요합니다. 연결된 각 저장소의 웹훅 ID는 - BitbucketServerConfig에서 확인할 수 있습니다.- 다음 명령어를 입력하여 웹훅 ID를 검색합니다. - gcloud alpha builds enterprise-config bitbucketserver describe CONFIG_NAME --region=REGION- 각 항목의 의미는 다음과 같습니다. - CONFIG_NAME은 Bitbucket 서버 구성의 이름입니다.
- REGION은 Bitbucket 서버 연결의 리전입니다.
 
- 완료를 클릭합니다. 선택적으로 트리거 만들기를 클릭하여 트리거를 만듭니다. 
API
API를 사용하여 Bitbucket 서버 저장소를 Cloud Build에 연결하려면 다음 단계를 따르세요.
- 아래의 JSON 템플릿을 사용하여 저장소를 연결하세요. - { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "requests": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "bitbucketServerConnectedRepository": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "repo": { "projectKey": "PROJECT_KEY", "repoSlug": "REPO_SLUG" } } } }- 각 항목의 의미는 다음과 같습니다. - PROJECT_NUMBER: Cloud 프로젝트의 프로젝트 번호입니다.
- REGION은 Bitbucket 서버 구성과 연결된 리전입니다.
- BITBUCKET_SERVER_CONFIG_NAME은 Bitbucket 서버 구성의 이름입니다.
- PROJECT_KEY는 Bitbucket 서버 프로젝트의 키입니다.
개인 저장소를 연결하려면 프로젝트 키에 사용자 이름 앞에 물결표(~) 기호가 포함되어 있어야 합니다.~${USERNAME}). 호스트 저장소의 전체 URL은https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}와 같습니다.
- REPO_SLUG는 Bitbucket 서버 저장소의 슬러그입니다.
 
- 터미널에 다음 - curl명령어를 입력합니다.- curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.json- 각 항목의 의미는 다음과 같습니다. - PROJECT_NUMBER는 클라우드 프로젝트 번호입니다.
- PROJECT_ID는 Cloud 프로젝트 ID입니다.
- REGION은 Bitbucket 서버 구성과 연결된 리전입니다.
- BITBUCKET_SERVER_CONFIG_NAME은 Bitbucket 서버 구성의 이름입니다.
 - 요청이 성공하면 응답 본문에 새로 생성된 Operation의 인스턴스가 포함됩니다. 
- 터미널에 다음 - curl명령어를 입력합니다.- curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID- 각 항목의 의미는 다음과 같습니다. - PROJECT_NUMBER는 클라우드 프로젝트 번호입니다.
- PROJECT_ID는 Cloud 프로젝트 ID입니다.
- REGION은 Bitbucket 서버 구성과 연결된 리전입니다.
- OPERATION_ID는 Bitbucket 서버 구성 만들기 작업의 ID입니다.
응답의 name필드에서 작업 ID를 찾을 수 있습니다. 응답의name필드 형식은 다음과 같습니다.projects/project-id/locations/region/operations/operation-id
 - 작업이 완료되었음을 나타내는 - done: true가 포함될 때까지- GetOperationAPI 명령어를 계속 실행해야 할 수 있습니다. Bitbucket 서버 저장소가 성공적으로 연결되면- response.bitbucketServerConnectedRepositories필드에 연결된 저장소를 볼 수 있습니다. 그렇지 않은 경우- error필드를 참조하여 자세한 오류 보고서를 확인합니다.
다음 단계
- Bitbucket 서버에서 저장소를 빌드하는 방법 알아보기
- 비공개 네트워크의 Bitbucket 서버에서 저장소를 빌드하는 방법 알아보기
- Compute Engine에서 블루/그린 배포 수행 방법 알아보기