파이프라인 트리거

Bitbucket을 사용하면 수동으로 트리거하거나 지정된 시간에 트리거를 예약하여 여러 파이프라인을 실행할 수 있습니다.

튜토리얼

수동 파이프라인을 트리거하는 방법 또는 트리거를 예약하는 방법을 알아봅니다.

시작하기 전

파이프라인의 트리거에는 다음과 같은 제한이 있습니다.

수동으로 파이프라인 Step 실행

수동 Step을 사용하면 수동으로 트리거 된 경우에만 일부 Step을 실행하여 CI/CD 파이프라인을 사용자 지정할 수 있습니다. 이는 Step이 실행되기 전에 수동 테스트 또는 확인이 필요한 배포 단계와 같은 항목에 유용합니다.

bitbucket-pipelines.yml 파일의 Step에 trigger : manual을 추가하여 수동 Step을 구성합니다.

파이프라인은 커밋에서 트리거되므로 첫 번째 Step을 수동으로 만들 수 없습니다. 수동으로만 파이프라인이 실행되도록하려면 커스텀 파이프라인을 설정할 수 있습니다. 커스텀 파이프라인의 또 다른 장점은 변수 값을 임시로 추가하거나 업데이트 할 수 있다는 것 입니다. (예 : 버전 추가 또는 일회용 값 제공)

수동 파이프라인 설정

모든 기존의 파이프라인은 예약 된 빌드로 실행할 수도 있고 특정 커밋에 대해 수동적으로 실행 할 수도 있습니다.

파이프라인을 수동으로만 실행하려면 커스텀 파이프라인을 사용하십시오. 커스텀 파이프라인은 브랜치에 대한 커밋에서 자동으로 실행되지 않습니다.

커스텀 파이프라인을 정의하려면 bitbucket-pipelines.yml 파일의 custom 섹션에 파이프라인 구성을 추가하십시오. 커스텀 파이프라인으로 정의되지 않은 파이프라인도 브랜치로 푸시가 발생하면 자동으로 실행됩니다.

참고로 파이프라인을 수동으로 실행하려면 저장소에 대한 쓰기 권한 이 필요하며 Bitbucket Cloud UI에서 트리거 할 수 있습니다.

단계

  1. bitbucket-pipelines.yml 파일에 파이프라인을 추가합니다. bitbucket-pipelines.yml  파일에 포함 된 파이프라인 빌드의 빌드를 수동으로 트리거 할 수 있습니다. 
    예시

    pipelines: custom: # Pipelines that can only be triggered manually sonar: - step: script: - echo "Manual triggers for Sonar are awesome!" deployment-to-prod: - step: script: - echo "Manual triggers for deployments are awesome!" branches: # Pipelines that run automatically on a commit to a branch can also be triggered manually staging: - step: script: - echo "Automated pipelines are cool too.
  2. Bitbucket Cloud에서 파이프라인을 트리거합니다. 파이프라인은 Bitbucket Cloud 인터페이스의 브랜치 뷰 또는 커밋 뷰에서 수동으로 트리거 할 수 있습니다.

    • 분기 뷰에서 수동으로 파이프라인 실행

      1. Bitbucket에서 저장소를 선택하고 Branches로 이동합니다.

      2. 파이프라인을 실행할 브랜치를 선택합니다.

      3. (...)을 클릭하고 Run pipeline for a branch를 선택합니다.

      4. 파이프라인을 선택하고 Run을 클릭합니다.

    • 커밋 뷰에서 수동으로 파이프라인 실행

      1. Bitbucket에서 저장소를 선택하고 Commits로 이동합니다.

      2. 커밋을 위해 커밋 뷰로 이동합니다.

      3. 커밋 해시를 선택합니다.

      4. Run pipeline을 선택합니다.

      5. 파이프라인을 선택한 다음 Run을 클릭합니다.

    • 파이프라인 페이지에서 수동으로 파이프라인 실행

      1. Bitbucket에서 저장소를 선택하고 Pipelines으로 이동합니다.

      2.  Run pipeline을 클릭합니다. 

      3. 브랜치, 파이프라인을 선택하고 Run을 클릭합니다. 

  3. 또한 커스텀 파이프라인을 실행하여 파이프라인에 대한 변수를 수동으로 구문 분석 할 수 있습니다.
    변수를 활성화하려면 파이프라인을 실행할 때 입력 할 사용자 지정 파이프라인 아래에 변수를 정의합니다.
    예시:

    pipelines: custom: custom-name-and-region: #name of this pipeline - variables: #list variable names under here - name: Username - name: Region - step: script: - echo "User name is $Username" - echo "and they are in $Region"

    그런 다음에 Branches ⋯ Run pipeline for a branch > Custom.로 이동하여 커스텀 파이라인을 실행했을 떄의 화면입니다.

schedule

예약 된 파이프라인을 사용하면 매시간, 매일 또는 매주 간격으로 파이프라인을 실행할 수 있습니다.

  • 예약 된 파이프라인은 커밋에 의해 트리거되거나 수동으로 트리거되는 모든 빌드와 함께 실행됩니다.

  • bitbucket-pipelines.yml 파일에 정의 된 모든 파이프라인에 대한 일정을 생성 할 수 있습니다  .

  • 커스텀 파이프라인은 예약되거나 수동으로 트리거 될 때만 실행됩니다.

단계

파이프라인 생성

  1. 다음은 bitbucket-pipelines.yml 파일에서 커스텀 파이프라인을 정의하는 방법을 보여주는 간단한 예  입니다.
    예시

    pipelines: custom: # defines that this can only be triggered manually or by a schedule staging: # The name that is displayed in the list in the Bitbucket Cloud GUI - step: script: - echo "Scheduled builds in Pipelines are awesome!"

파이프라인에 대한 일정 만들기

  1. Bitbucket의 저장소로 이동합니다.

  2. Pipelines을 클릭한 다음 Schedules(우측상단)을 클릭합니다. 그리고나서 New schedule을 클릭합니다.

  3. 예약하고 싶은 PipelineBranch를 선택합니다.

    • schedule은 브랜치의 HEAD 커밋을 실행합니다.

    • 여러분이 선택한 브랜치의 bitbucket-pipelines.yml에 파이프라인이 정의가 되어있어야만 합니다.

  4. Schedule을 설정합니다.

    • 파이프라인을 얼마나 자주 실행할 것인지 선택합니다.(매시간, 매일 또는 매주)

    • 시간을 선택합니다. (현지 시간) 하지만 파이프라인은 UTC 시간으로 예약됩니다.

    • 예약 된 파이프라인은 선택한 기간에서 언제든지 실행할 수 있습니다. 이는 한 시간에 걸쳐 트리거되는 파이프라인의 모든 일정을 배포하기위한 것입니다.

일정 제거

Pipelines > Schedules(우측상단)으로 이동하여 저장소의 모든 일정을 볼 수 있습니다.

  • 일정 오른쪽에있는 '휴지통'아이콘을 사용하여 일정을 삭제합니다.

  • API를 사용하여 생성 된 일정은 Cron 표현식(예 :  0 10 15 * * )으로 표시됩니다.

브랜치 워크플로우

푸시하는 브랜치에 따라 파이프라인이 수행하는 작업을 변경할 수 있습니다. bitbucket-pipelines.yml 파일 에 몇 가지 브랜치 별 구성만 있으면 됩니다.
예시:

위 예는 마스터 브랜치를 기반으로 하는 두 개의 브랜치를 보여줍니다.

  • feature/BB-123-fix-links라는 이름의 기능 브랜치

  • experimental이라는 이름의 브랜치

각 브랜치의 루트 디렉터리에 동일한 bitbucket-pipelines.yml 파일이 있습니다. 브랜치에 푸시 할 때마다 파이프라인은 bitbucket-pipelines.yml 파일에서 해당 브랜치에 할당 된 스크립트를 실행합니다.

  • 마스터 Step 정의에는 마스터에 대한 커밋에서 실행되는 지침이 포함됩니다.

  • feature / * 정의에는 모든 기능 브랜치( BB-123-fix-links  브랜치)에 대한 커밋에서 실행되는 지침이 포함됩니다. 

  • 기본 정의에는 마스터 또는 기능이 아닌 브랜치( 실험  브랜치)에 대한 커밋에서 실행되는 지침이 포함됩니다. 

커밋을 푸시하고 파이프라인 트리거를 건너뛰려는 경우 커밋 메시지에 [skip ci]  또는  [ci skip]을 추가 할 수 있습니다  .

키워드

기본 브랜치: 다른 섹션의 파이프라인 정의와 일치하지 않는 모든 브랜치에 대한 파이프라인 정의를 포함합니다. 기본 파이프라인은 브랜치 별 파이프라인이 정의되지 않은 경우 저장소에 대한 모든 푸시에서 실행됩니다. 브랜치 섹션에서 브랜치 파이프라인을 정의 할 수 있습니다.

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

예시:

태그 : 모든 태그 별 빌드 파이프라인을 정의합니다. 이 섹션의 이름 또는 표현식은 Git 저장소의 태그 및 주석이 달린 태그와 일치합니다.

예시: 이 태그는 "release-"로 시작하는 태그가 푸시 될 때 파이프라인을 트리거합니다.

pull-request : 저장소 내에서 시작된 풀 요청에서만 실행되는 특수 파이프라인입니다. 실행하기 전에 대상 브랜치를 작업 브랜치로 병합합니다. 포크 된 저장소의 풀 요청은 파이프라인을 트리거하지 않습니다. 병합이 실패하면 파이프라인이 중지됩니다.

풀 요청 파이프라인은 정의 된 브랜치 및 기본 파이프라인과 함께 실행되므로 정의가 겹치는 경우 동시에 2 개의 파이프라인이 실행될 수 있습니다.

구성에 이미 브랜치가 있고 모두 풀 요청에서만 실행하려면 키워드 branchespull-requests으로 변경합니다.

예시:

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

예시:

위와 같은 구성을 사용하면 Bitbucket Cloud의 파이프라인 실행 대화 상자에 다음 파이프라인이 표시됩니다.

예시:

variables [사용자 지정 파이프라인 만 해당]: 파이프라인이 시작될 때 제공되는 변수가 포함됩니다. 변수를 활성화하려면 파이프라인을 실행할 때 입력하려는 커스텀 파이프라인 아래에 변수를 정의합니다.

예시:

그런 다음 커스텀 파이프라인을 실행할 때 (Branches ⋯ Run pipeline for a branch > Custom:..) 변수들을 채울 수 있습니다.

bookmarks: 모든 북마크 관련 빌드 파이프라인을 정의합니다. 이 섹션의 이름 또는 표현식은 Mercurial 저장소의 북마크와 일치합니다.

예시: