diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2016-11-30 11:16:53 +0000 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2016-11-30 11:16:53 +0000 |
commit | 7e5fa10b665835e3160eee4d333a17fbaef9c113 (patch) | |
tree | 4b5515119134b0ca92bc1f73b13ab19e4361be03 /spec/factories/ci | |
parent | 21b90ef8668ef888ff64e5a0f1a9c1b26ff0fccc (diff) | |
parent | 3761a0c50ea13b86152417a5e659b30879cb16b1 (diff) | |
download | gitlab-ce-7e5fa10b665835e3160eee4d333a17fbaef9c113.tar.gz |
Merge branch 'fix/create-pipeline-with-builds-in-transaction' into 'master'
Create pipeline along with builds in the transation
## What does this MR do?
This MR makes it possible to create pipeline along with all associated builds in the transaction, to avoid having empty pipelines when asynchronous job gets terminated.
This will simplify implementation of `PipelineUnlockWorker` in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6988 and improve reliability of the CI as a whole.
## What are the relevant issue numbers?
Related to #24361
See merge request !7742
Diffstat (limited to 'spec/factories/ci')
-rw-r--r-- | spec/factories/ci/pipelines.rb | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/spec/factories/ci/pipelines.rb b/spec/factories/ci/pipelines.rb index ac2a1ba5dff..1735791f644 100644 --- a/spec/factories/ci/pipelines.rb +++ b/spec/factories/ci/pipelines.rb @@ -7,26 +7,30 @@ FactoryGirl.define do project factory: :empty_project factory :ci_pipeline_without_jobs do - after(:build) do |commit| - allow(commit).to receive(:ci_yaml_file) { YAML.dump({}) } + after(:build) do |pipeline| + allow(pipeline).to receive(:ci_yaml_file) { YAML.dump({}) } end end factory :ci_pipeline_with_one_job do - after(:build) do |commit| - allow(commit).to receive(:ci_yaml_file) { YAML.dump({ rspec: { script: "ls" } }) } - end - end - - factory :ci_pipeline_with_two_job do - after(:build) do |commit| - allow(commit).to receive(:ci_yaml_file) { YAML.dump({ rspec: { script: "ls" }, spinach: { script: "ls" } }) } + after(:build) do |pipeline| + allow(pipeline).to receive(:ci_yaml_file) do + YAML.dump({ rspec: { script: "ls" } }) + end end end factory :ci_pipeline do - after(:build) do |commit| - allow(commit).to receive(:ci_yaml_file) { File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml')) } + transient { config nil } + + after(:build) do |pipeline, evaluator| + allow(pipeline).to receive(:ci_yaml_file) do + if evaluator.config + YAML.dump(evaluator.config) + else + File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml')) + end + end end end end |