Atlassian Bamboo
당신이 GitLab 프로젝트에 변경 사항을 푸시할 때 Atlassian Bamboo에서 빌드를 자동으로 트리거할 수 있습니다.
Bamboo는 웹훅 및 커밋 데이터를 수락할 때 기존 빌드 시스템과 같은 기능을 제공하지 않습니다. GitLab의 통합을 구성하기 전에 Bamboo 빌드 계획을 구성해야 합니다.
Bamboo 구성
- Bamboo에서 빌드 계획으로 이동하고 Actions > Configure plan을 선택하세요.
- Triggers 탭을 선택하세요.
- 트리거 추가를 선택하세요.
-
GitLab 트리거
와 같은 설명을 입력하세요. - 리포지터리가 변경되면 빌드를 트리거함을 선택하세요.
- 하나 이상의 리포지터리에 대한 확인란을 선택하세요.
- 트리거 IP 주소에 GitLab IP 주소를 입력하세요. 이 IP 주소들은 Bamboo 빌드를 트리거할 수 있습니다.
- 트리거를 저장하세요.
- 좌측 창에서 빌드 단계를 선택하세요. 여러 개의 빌드 단계가 있는 경우 Git 체크아웃 작업을 포함한 마지막 단계를 선택하세요.
- Miscellaneous 탭을 선택하세요.
-
패턴 일치 라벨링 아래 Labels에
${bamboo.repository.revision.number}
를 입력하세요. - 저장을 선택하세요.
Bamboo는 GitLab로부터의 트리거를 수용할 준비가 되었습니다. 이제 GitLab에서 Bamboo 통합을 설정하세요.
GitLab 구성
- 왼쪽 사이드바에서 검색 또는 이동하여를 선택하여 프로젝트를 찾으세요.
- Settings > Integrations을 선택하세요.
- Atlassian Bamboo을 선택하세요.
- Active 확인란이 선택되었는지 확인하세요.
- Bamboo 서버의 기본 URL을 입력하세요. 예:
https://bamboo.example.com
. - 선택 사항. SSL verification을 비활성화하려면 Enable SSL verification 확인란을 선택 취소하세요.
- Bamboo 빌드 계획에서 빌드 키를 입력하세요.
- 인증이 필요한 경우 Bamboo 빌드 계획을 트리거할 수 있는 Bamboo 사용자의 사용자 이름과 암호를 입력하세요. 인증이 필요하지 않은 경우 이 필드를 비워두세요.
- 선택 사항. 테스트 설정을 선택하세요.
- 변경 사항 저장을 선택하세요.
Bamboo 빌드 계획 빌드 키 식별
빌드 키는 일반적으로 프로젝트 키와 계획 키로 구성된 고유 식별자입니다.
빌드 키는 짧고 대문자로 이루어지며 대시로 구분되어 있습니다 (예: PROJ-PLAN
).
빌드 키는 Bamboo에서 계획을 보는 경우 브라우저 URL에 포함됩니다. 예: https://bamboo.example.com/browse/PROJ-PLAN
.
GitLab에서 Bamboo 빌드 상태 업데이트
커밋 상태 API와 Bamboo 빌드 변수를 사용하는 스크립트를 사용하여 다음 작업을 수행할 수 있습니다:
- 빌드 상태로 커밋 업데이트
- Bamboo 빌드 계획 URL을 커밋의
target_url
로 추가
예:
- GitLab에서
:api
권한으로 액세스 토큰을 생성하세요. - Bamboo에서
$GITLAB_TOKEN
변수로 토큰을 저장하세요. -
다음 스크립트를 Bamboo 계획의 작업에 최종 작업으로 추가하세요.
#!/bin/bash # GitLab에서 CI 상태 업데이트하는 스크립트. # 이 스크립트를 Bamboo 작업의 최종 인라인 스크립트로 추가하세요. # # 일반 문서: https://docs.gitlab.com/ee/user/project/integrations/bamboo.html # https://gitlab.com/gitlab-org/gitlab/-/issues/34744에서 영감을 받은 수정 # 처음 오류에서 중지 set -e # 액세스 토큰. Bamboo의 CI 변수로 설정하세요. #GITLAB_TOKEN= # 상태 cistatus="failed" if [ "${bamboo_buildFailed}" = "false" ]; then cistatus="success" fi repo_url="${bamboo_planRepository_repositoryUrl}" # SSH 또는 HTTPS를 사용하는지 확인 protocol=${repo_url::4} if [ "$protocol" == "git@" ]; then repo=${repo_url:${#protocol}}; gitlab_url=${repo%%:*}; else protocol="https://" repo=${repo_url:${#protocol}}; gitlab_url=${repo%%/*}; fi start=$((${#gitlab_url} + 1)) # +1 for the / (https) or : (ssh) end=$((${#repo} - $start -4)) # .git 제외 repo=${repo:$start:$end} repo=$(echo "$repo" | sed "s/\//%2F/g") # 요청 전송 url="https://${gitlab_url}/api/v4/projects/${repo}/statuses/${bamboo_planRepository_revision}?state=${cistatus}&target_url=${bamboo_buildResultsUrl}" echo "$url로 요청 전송" curl --fail --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "$url"
문제 해결
빌드가 트리거되지 않는 경우
빌드가 트리거되지 않는 경우, Bamboo의 Trigger IP addresses에 올바른 GitLab IP 주소를 입력했는지 확인하세요. 또한, 요청 실패에 대한 통합 웹훅 로그를 확인하세요.
GitLab UI에서 사용할 수 없는 고급 Atlassian Bamboo 기능
고급 Atlassian Bamboo 기능은 GitLab과 호환되지 않습니다. 이러한 기능에는 GitLab UI에서 빌드 로그를 볼 수 있는 능력 등이 포함됩니다.