2016-12-10 5 views
0

私はgitlab環境を設定していました。 1回押すごとに1つのテストケースが実行されます。しかし、いずれかのテストケースが落ちている場合、他のテストケースはスキップされます。 すべてのケースを実行したいです。彼らはお互いに独立しているからです。すべてのテストケースは、最初のものが失敗した代わりに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

あなたがあなたの仕事にかかわらずからのジョブの状態、毎回実行するためにwhenプロパティを使用することができ、同じ芸名 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#依存関係docs.gitlab.com/ce/ci/yaml/README.html#allow_fa ilure – pinage404

2

を配置する必要がありますビルドの前の段階。

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を設定すると、ランナーはビルドトークンごとに同時に1つのジョブしか実行できません。

+0

ありがとうございます。わたしにはできる。 – 10305059

関連する問題