2016-10-11 2 views
5

.gitlab-ci.yml에는 빌드, 테스트 및 배포의 3 단계가 있습니다.Gitlab은 조건부로 단계 실행

매일 밤 회귀 테스트 단계를 실행해야 - 잘 nightly :

가 여기에 해당 .gitlab-ci.yml 코드입니다 :

stages: 
    - build 
    - test 
    - deploy 

build_project: 
    stage: build 
    script: 
    - cd ./some-dir 
    - build-script.sh 
    except: 
    - tags 

#Run this only when say variable 'NIGHTLY_TEST == True'. But HOW? 
nightly_regression_test_project: 
    stage: test 
    script: 
    - cd ./some-dir 
    - execute test-script 

only 실행 test 단계로 매일 태그 바람직하지 않다.

다른 아이디어가 있습니까?

답변

0

gitlab은 이제 변수 덮어 쓰기 (매우 편리)가 포함 된 예약 빌드 기능을 구현했습니다. 문서 찾음 here.

이 답변이 주어진이 기능에 대한 지침에 관심있는 사람들을위한

, 여기 간다 :

사용하여 파이프 라인 일정

파이프 라인 예약하기 위해 :

  1. 이동합니다 프로젝트 파이프 라인 -> 일정으로 이동하고 새 일정 버튼을 클릭하십시오.
  2. 양식 입력
  3. 변경 내용 저장 파이프 라인 일정 변경 사항을 적용하려면 저장하십시오.

내가 가장 좋아하는 기능은 예약 된 파이프 라인 변수입니다.

변수 문서

here을 발견 할 수 있지만, 나에게 가장 유용한 정보는 여기 다시 입력 할 우선 순위였다 변수의

우선 순위

변수를 덮어 쓸 수 있으며 걸릴 이 순서에서 서로 앞서기를 :

  1. 트리거 변수 또는 예약 된 파이프 라인 변수는
  2. (모든보다 우선합니다)
  3. 프로젝트 수준의 비밀 변수 또는 보호 비밀 변수
  4. 그룹 수준의 비밀 변수 또는 보호 비밀 변수
  5. YAML 정의 작업 수준 변수
  6. YAML 정의 전역 변수
  7. 배포 변수
  8. 미리 정의 변수 (체인에서 가장 낮습니다)

희망이 있습니다. 그들이이 기능을 추가하게 된 것을 기쁘게 생각합니다.

+0

실제로 응답에 뭔가를 넣을 수 있다면 참조 용으로 유용 할 것입니다. – deepdive

+0

그런 일에 대해 생각했지만 다음 달에 지침이 바뀔 것이라고 걱정했습니다. 돌아가서 현재 방법에 대한 지침을 추가하고 변경하지 않기를 바랍니다 :) – trueCamelType

+0

도움이되는 경우 투표 해주세요. :) – trueCamelType

-1

방금 ​​찾은 예제를 따라이 "기능"을 구현했습니다. here 야간 테스트를 실행하기위한 트리거를 설정하려면 crontab 및 curl을 사용하십시오 (Linux를 사용하는 이유는 무엇입니까?).

30 0 * * * curl --request POST --form token=TOKEN --form ref=master https://gitlab.example.com/api/v3/projects/9/trigger/builds 
8

현재 환경 변수에 따라 작업을 실행할 수있는 방법이 없습니다 (기능 요청을 항상 열 수 있음). 환경 변수가 없으면 간단한 Bash 명령을 사용하여 즉시 종료 할 수 있습니다. 같은

뭔가 :

stages: 
    - build 
    - test 
    - deploy 

build_project: 
    stage: build 
    script: 
    - cd ./some-dir 
    - build-script.sh 
    except: 
    - tags 

# Run this only when NIGHTLY_TEST environment variable exists. 
nightly_regression_test_project: 
    stage: test 
    script: 
    - [ -z "$NIGHTLY_TEST" ] && exit 1; 
    - cd ./some-dir 
    - execute test-script 

변수가 실행되지 않습니다에 따라 테스트를 존재하지 않는 경우. 그렇지 않으면 그럴 것이다.

희망 하시겠습니까?