페이지 트리

이 문서는 Bitbucket yml pipeline을 기본 구성하는 가이드를 공유하기 위해 작성되었다.





기본구성

스크립트를 작성하여 프로젝트를 빌드 및 배포하고 캐시를 구성하여 빌드 속도를 높일 수 있습니다. 또한 각 단계에 대해 서로 다른 이미지를 지정하여 파이프라인에서 수행 중인 작업 간에 서로 다른 종속성을 관리할 수도 있습니다.

파이프라인은 단계 목록으로 구성되며 구성 파일에서 여러 파이프라인을 정의할 수 있습니다. 

yml파일 사전확인 사항

  • 파일에는 하나 이상의 step과 step 내부에 하나의 script로 구성된 파이프라인 섹션이 하나 이상 포함되어야 합니다.

  • 각 step에는 4GB의 메모리를 사용할 수 있습니다.

  • 단일 파이프라인은 최대 100개의 step을 포함할 수 있습니다.

  • 파이프라인의 각 step은 별도의 Docker 컨테이너를 실행합니다. 원하는 경우 서로 다른 이미지를 선택하여 각 step에 대해 서로 다른 유형의 컨테이너를 사용할 수 있습니다.

시작하기

Bitbucket에 파이프라인 기능을 사용하기 위해서는 설정에서 해당 기능을 Enable해주어야 합니다.

  1. Repository setting > Pipelines > Settings 선택
  2. Enable Pipelines 
  3. bitbucket-pipelines.yml 작성하기

yml 각 단계 설명

Default

다른 섹션의 파이프라인 정의와 일치하지 않는 모든 분기에 대한 파이프라인 정의를 포함합니다.(기본 실행 파이프라인)

기본 파이프라인은 분기별 파이프라인이 정의되지 않은 한 저장소로 푸시할 때마다 실행됩니다.

참고: 기본 파이프라인은 태그 또는 책갈피에서 실행되지 않습니다.


branches

모든 분기별 빌드 파이프라인에 대한 섹션을 정의합니다. git repository에서 정의한 브랜치 이름과 일치하는 경우 실행 됩니다.

리포지토리에서 특정 분기를 빌드하도록 파이프라인을 구성하는 방법에 대한 자세한 내용은 분기 워크플로를 참조하십시오.



tags

모든 태그별 빌드 파이프라인을 정의합니다. git repository에서 정의한 tag 이름 및 annotated tags 이름과 일치하는 경우 실행 됩니다. 



bookmarks

모든 북마크별 빌드 파이프라인을 정의합니다.



pull requests

저장소 내에서 시작된 pull requests에서만 실행되는 특수 파이프라인입니다. 파이프라인이 수행되기 전에 병합을 시도하고  병합이 실패하면 파이프라인이 중지됩니다.  forked된 리포지토리에서는 pull requests 파이프라인을 사용할 수 없습니다.

pull requests 파이프라인은 정의된 branch 및 default 파이프라인 외에 실행되므로 정의가 겹치는 경우 동시에 2개의 파이프라인이 실행될 수 있습니다.

yml파일에 이미 branch가 있고 pull requests에서만 파이프라인이 실행되도록 하려면 branch 키워드를 pull requests로 변경합니다.


pipelines:
  pull-requests:
    '**': #this runs as default for any branch not elsewhere defined
      - step:
          script:
            - ...
    feature/*: #any branch with a feature prefix
      - step:
          script:
            - ...
  branches: #these will run on every push of the branch
    staging:
      - step:
          script:
            - ...




Custom

Bitbucket Cloud 인터페이스에서 수동으로만 트리거하거나 스케줄링할 수 있는 파이프라인을 정의합니다.


pipelines:
  custom:
    customPipelineWithRunnerStep:
      - step:
          name: Step 1
          runs-on: 
            - 'self.hosted'
            - 'my.custom.label'
          script:
            - echo "This step will run on a self hosted runner with 128 GB of memory.";
      - step:
          name: Step 2
          script:
            - echo "This step will run on Atlassian's infrastructure as usual.";





참조

내용


  • 레이블 없음