2015-01-19 3 views
4
최신 CHANGELOG

Gitlab CI 5.4+에서 특정 분기/태그에 대한 작업을 어떻게 수행합니까? Gitlab CI <a href="https://github.com/gitlabhq/gitlab-ci/blob/master/CHANGELOG" rel="nofollow">github.com repo</a>에

  • 작업이 분기 별 또는 태그가 특정 될 수 또는 두 가지 모두

사람이이 기능을 시도했다고 주장한다? 특정 분기에 대한 빌드를 작성하려면 어떻게해야합니까? 나는 그것에 대한 확실한 선택을 보지 못했다.

Here is a screenshot 신품 작업 페이지보기.

  • 트리거 옵션을 사용하면 커밋, 태그 또는 모두 빌드를 선택할 수 있습니다.
  • AFAIK, 그리고 도움말 메시지를 바탕으로 태그 입력은 당신이 그들과 함께 임의의 태그를 연결할 수 있습니다,이 작업을 실행해야합니다 러너 (또는 그룹 또는 그들)를 결정하는 것입니다. 이들은 이 아니라 자식 태그입니다. 나 맞아? 어쨌든, 이것은 다소 혼란 스럽습니다.

따라서 어떤 특정 작업에 대해 지점/태그 이름을 구성 할 수 있습니까? 내 시나리오에서

은, 내가 무엇을 달성하고자하는 것은 다음과 같다 :

  • , 테스트를 실행 릴리스를 수행하고 생산과 같은 서버에 배포해야합니다 master에 푸시.
  • 기능 분기에서 master으로의 병합 요청은 테스트를 실행하고 적용 범위를보고해야합니다.
  • GitLab CI 5.2

답변

3

당신은 당신의 gilab-ci.ymlonly: 속성 아래에있는 지점을 지정하여이 작업을 수행 할 수

if [ "$CI_BUILD_REF_NAME" == "master" ]; then 
    //run jobs specific to master branch 
fi 

또는

if [ "$CI_BUILD_REF_NAME" != "master" ]; then 
    // skip if not on master branch 
    exit 0 
fi 
+0

좋습니다. 유용합니다. 그러나 내가 말한'CHANGELOG' 라인은 어떨까요? 단일 작업 환경에서 전체 작업을 구성하려면 어떻게해야합니까? 모든 스크립트에 조건문을 써야합니까? –

+0

또한 Gitlab CI 5.4.0에서는 사용자의 접근 방식이 작동하지 않는 것 같습니다. 모든 빌드는 첫 줄에서 끝납니다 :'[ "$ CI_BUILD_REF_NAME"== "master"]; (브랜치 **가 실제로 ** master 인 경우에도) –

+0

** 업데이트 ** : 나는 (^)이 CI 버전의 버그로 인한 것이라고 생각합니다. github.com repo에서 [https://github.com/gitlabhq/gitlab-ci/issues/542] 문제를 열었습니다. –

3

같은 조건을 추가 할 수 있습니다

 
production: 
    script: 
    - echo 'hello world' 
    only: 
    - master 

참고 문헌 예는 here을 참조하십시오.