2016-12-10 5 views
0

gitlab 환경을 설정하고있었습니다. 매번 푸시 한 후 5 개의 테스트 케이스를 실행합니다. 그러나 어떤 테스트 케이스가 떨어지면 다른 테스트 케이스는 건너 뜁니다. 모든 사례를 실행하고 싶습니다. 그것들은 서로 독립적이기 때문입니다.모든 테스트 케이스가 첫 번째 테스트가 실패한 대신 gitlab에서 실행해야합니다.

stages: 
    - build 
    - unit_test_1 
    - unit_test_2 
    - unit_test_3 

job1: 
    stage: build 
    script: 
     - bash build.sh 

job2: 
    stage: unit_test_1 
    script: 
     - bash ./unit_test_1.sh 

job3: 
    stage: unit_test_2 
    script: 
     - bash ./unit_test_2.sh 

job4: 
    stage: unit_test_3 
    script: 
     - bash ./unit_test_3.sh 

gitlab-ci.yml uint_test_1.sh 실패한 경우. 다른 테스트는 건너 뜁니다.

답변

0

당신은 다음과 같이 시도 할 수 있습니다 :

이 gitlab-ci.yml이

stages: 
    - build 
    - test 

job1: 
    stage: build 
    script: 
     - bash build.sh 

job2: 
    stage: test 
    script: 
     - bash ./unit_test_1.sh 

job3: 
    stage: test 
    script: 
     - bash ./unit_test_2.sh 

job4: 
    stage: test 
    script: 
     - bash ./unit_test_3.sh 

이 문서는 말 :

이 단계에서 요소의 순서가의 순서를 정의는 '실행을 구축 :

동일한 스테이지의 빌드가 병렬로 실행됩니다. 다음 단계의 빌드는 이전 단계의 작업이 성공적으로 완료된 후에 실행됩니다.

https://docs.gitlab.com/ce/ci/yaml/README.html#stages

에서 실행 당신이 당신의 작업은 작업의 상태에서 관계없이, 모든 시간을 실행하기 위해 https://docs.gitlab.com/ce/ci/pipelines.html#pipelines

+0

예 저는 이것을 시도했습니다. 그러나 모든 작업 job2, job3 및 job4가 실행됩니다. 나는 병렬로 실행하고 싶지 않다. 그것은 자원 위기를 만들 것입니다. 모든 스크립트를 실행하고 싶습니다. 그러나 첫 번째가 성공하지 못하면 다른 단계를 건너 뜁니다. – 10305059

+0

이 경우에는 한 단계를 원한다면 allow_failure'https : //docs.gitlab.com/ce/ci/yaml/README.html#allow_failure – pinage404

+0

(코멘트를 편집하는 방법을 모르겠습니다)이 필요할 수 있습니다. 'test'를 실행하고 모든 테스트 작업을 (순차적으로 : parrallel이 아닌) 실행합니다. 일부 테스트가 실패하더라도 솔루션에'dependencies'와'allow_failure'를 추가해야합니다. https://docs.gitlab.com/ce/ ci/yaml/README.html # dependencies docs.gitlab.com/ce/ci/yaml/README.html#allow_fa ilure – pinage404

2

당신이 사용할 수있는 같은 예명에게 when 속성을 넣어야 할 평행 빌드의 이전 단계. 당신이 만들고 싶어

stages: 
    - build 
    - test 

job1: 
    stage: build 
    when: always 
    script: 
     - bash build.sh 

job2: 
    stage: test 
    when: always 
    script: 
     - bash ./unit_test_1.sh 

job3: 
    stage: test 
    when: always 
    script: 
     - bash ./unit_test_2.sh 

job4: 
    stage: test 
    when: always 
    script: 
     - bash ./unit_test_3.sh 

또한, 반드시 그런 다음 동시성 한계로 주자를 구성 할 수 있습니다 병렬로 실행중인 작업을하지 않아도됩니다.

globally을 구성하면 모든 주자가 모든 주자간에 동시에 1 개의 작업 만 실행하도록 제한됩니다.

per runner을 구성하면 실행 프로그램이 빌드 토큰 당 하나의 작업 만 동시에 실행하도록 제한됩니다.

+0

감사합니다. 그것은 나를 위해 작동합니다. – 10305059