페이지 트리

이 페이지는 Bamboo가 Artifact 공유와 GlobalStorage 관리하는 방법을 설명한다.

Shared/Unshared artifacts 정의

Build Plan은 동일한 build plan, 다른 build plan, 그리고 build plan에 연결된 deployment에서 사용가능한 artiffact를 정의할 수 있다.

  • Job > Artifacts > Create definition > Shared (checked)

빌드가 성공하면 정의된 artifact가 공유된 공간으로 복사되고, database에 등록된다.

  • 파일 위치: <bamboo-home>/artifacts
  • SQL

    v5.12 이상
    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

    950275CHAIN_BRANCHPROJ-ART02trueplan-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)


Shared Artifacts 위치

<bamboo home>/artifacts/plan-<build plan id>/shared/build-<build number>

  • 예시: <bamboo server home>/artifacts/plan-45350939/shared/build-00050/app.jar

GlobalStorage

globalStorage 는 배포에서 사용된 artifact를 보관하는 저장 공간으로 <bamboo-home>/artifacts/<artifact id> 에 위치한다.

  • 예시: <bamboo home>/artifacts/globalStorage/52461603

Artifact 생성 조건 (아래의 두 조건이 모두 만족되는 경우, artifact/shared → globalStorage 폴더로 이동):

  • deployment에서 사용되는 shared artifacts
  • 생성된 후 삭제된 artifact (수동 또는 자동 삭제 정책에 의해 build 이력 삭제 또는 build number의 artifact 삭제)

SQL

globalStorage 내의 artifact 목록 얻기

빌드 번호와 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/

사용중인 globalStorage 목록 얻기

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


  • 레이블 없음