summaryrefslogtreecommitdiff
path: root/spec/factories/ci
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2016-11-30 11:16:53 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2016-11-30 11:16:53 +0000
commit7e5fa10b665835e3160eee4d333a17fbaef9c113 (patch)
tree4b5515119134b0ca92bc1f73b13ab19e4361be03 /spec/factories/ci
parent21b90ef8668ef888ff64e5a0f1a9c1b26ff0fccc (diff)
parent3761a0c50ea13b86152417a5e659b30879cb16b1 (diff)
downloadgitlab-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.rb28
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