이 페이지는 Bamboo가 Artifact 공유와 GlobalStorage 관리하는 방법을 설명한다.
Build Plan은 동일한 build plan, 다른 build plan, 그리고 build plan에 연결된 deployment에서 사용가능한 artiffact를 정의할 수 있다.
빌드가 성공하면 정의된 artifact가 공유된 공간으로 복사되고, database에 등록된다.
SQL
select BUILD.BUILD_TYPE, FULL_KEY, ARTIFACT.BUILD_NUMBER, ARTIFACT.CHAIN_ARTIFACT as SHARED, STORAGE_TAG from BUILD join ARTIFACT on BUILD.FULL_KEY = ARTIFACT.PLAN_KEY join BRS_ARTIFACT_LINK on ARTIFACT.ARTIFACT_ID = BRS_ARTIFACT_LINK.ARTIFACT_ID join BUILDRESULTSUMMARY on BUILDRESULTSUMMARY.BUILDRESULTSUMMARY_ID = BRS_ARTIFACT_LINK.PRODUCERJOBRESULT_ID where GLOBALLY_STORED = FALSE order by PLAN_KEY, BUILD_NUMBER, SHARED; |
데이터 예시:
BUILD_ID | BUILD_TYPE | FULL_KEY | BUILD_NUMBER | SHARED | STORAGE_TAG |
---|---|---|---|---|---|
950273 | CHAIN | PROJ-ART | 1 | true | plan-950273 |
950273 | CHAIN | PROJ-ART | 2 | true | plan-950273 |
950273 | CHAIN | PROJ-ART | 3 | true | plan-950273 |
950275 | CHAIN_BRANCH | PROJ-ART0 | 1 | true | plan-950275 |
950275 | CHAIN_BRANCH | PROJ-ART0 | 2 | true | plan-950275 |
360449 | CHAIN | PROJ-PLAN | 1 | true | PROJ-PLAN |
360449 | CHAIN | PROJ-PLAN | 2 | true | PROJ-PLAN |
360449 | CHAIN | PROJ-PLAN | 4 | true | PROJ-PLAN |
360450 | JOB | PROJ-PLAN-JOB1 | 3 | false | (null) |
<bamboo home>/artifacts/plan-<build plan id>/shared/build-<build number>
globalStorage 는 배포에서 사용된 artifact를 보관하는 저장 공간으로 <bamboo-home>/artifacts/<artifact id> 에 위치한다.
Artifact 생성 조건 (아래의 두 조건이 모두 만족되는 경우, artifact/shared → globalStorage 폴더로 이동):
빌드 번호와 globalStorage에 보관된 artifact 간의 관계 목록:
자동 삭제 정책에 영향받지 않음
select ARTIFACT.ARTIFACT_ID, ARTIFACT.PLAN_KEY as BUILD_KEY, ARTIFACT.BUILD_NUMBER, ARTIFACT.CHAIN_ARTIFACT as SHARED from ARTIFACT where GLOBALLY_STORED = TRUE order by PLAN_KEY, BUILD_NUMBER; |
결과 예시)
ARTIFACT_ID | BUILD_KEY | BUILD_NUMBER | SHARED |
---|---|---|---|
8585219 | PROJ-PLAN | 3 | true |
SQL 결과를 바탕으로 파일의 위치를 얻을 수 있다.
<bamboo-home>/artifacts/<ARTIFACT_ID> 폴더
:ARTIFACT_ID | BUILD_KEY | BUILD_NUMBER | SHARED | Directory structure |
---|---|---|---|---|
8585219 | PROJ-PLAN | 3 | true | <bamboo-home>/artifacts/globalStorage/8585219/ |
Deployment에서 사용중인 globalStorage 내의 artifact 목록을 얻을 수 있다.
SELECT DP.Name as DeploymentProject, DE.name as Environment, version_name, A.plan_key as ArtifactSourceBuildPlan, A.build_number as ArtifactSourceBuildNumber, A.artifact_id, a.artifact_size, a.globally_stored, a.link_type FROM ARTIFACT A JOIN DEPLOYMENT_VERSION_ITEM_BA DVIB ON A.ARTIFACT_ID = DVIB.ARTIFACT_ID JOIN DEPLOYMENT_VERSION_ITEM DVI ON DVIB.VERSION_BAM_ARTIFACT_ITEM_ID = DVI.DEPLOYMENT_VERSION_ITEM_ID JOIN DEPLOYMENT_VERSION DV ON DVI.DEPLOYMENT_VERSION_ID = DV.DEPLOYMENT_VERSION_ID JOIN DEPLOYMENT_PROJECT DP ON DV.PROJECT_ID = DP.DEPLOYMENT_PROJECT_ID JOIN DEPLOYMENT_RESULT DR ON DV.DEPLOYMENT_VERSION_ID = DR.VERSION_ID JOIN DEPLOYMENT_ENVIRONMENT DE ON DE.ENVIRONMENT_ID = DR.ENVIRONMENT_ID WHERE GLOBALLY_STORED IS TRUE ORDER BY ARTIFACT_SIZE, ARTIFACT_ID |