summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-08-11 15:22:35 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-08-11 15:22:35 +0200
commit39203f1adfc6fee3eca50f0cab99ffc597865200 (patch)
tree74a06153802ebb0161e3cd5dbeb6195efac89440 /features
parent2facade8f0700a5832dca94c86e512c1c276d601 (diff)
downloadgitlab-ce-39203f1adfc6fee3eca50f0cab99ffc597865200.tar.gz
Pre-create all builds for Pipeline when a trigger is received
This change simplifies a Pipeline processing by introducing a special new status: created. This status is used for all builds that are created for a pipeline. We are then processing next stages and queueing some of the builds (created -> pending) or skipping them (created -> skipped). This makes it possible to simplify and solve a few ordering problems with how previously builds were scheduled. This also allows us to visualise a full pipeline (with created builds). This also removes an after_touch used for updating a pipeline state parameters. Right now in various places we explicitly call a reload_status! on pipeline to force it to be updated and saved.
Diffstat (limited to 'features')
-rw-r--r--features/steps/shared/builds.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/features/steps/shared/builds.rb b/features/steps/shared/builds.rb
index 4d6b258f577..c7f61da05fa 100644
--- a/features/steps/shared/builds.rb
+++ b/features/steps/shared/builds.rb
@@ -10,20 +10,22 @@ module SharedBuilds
end
step 'project has a recent build' do
- @pipeline = create(:ci_pipeline, project: @project, sha: @project.commit.sha, ref: 'master')
+ @pipeline = create(:ci_empty_pipeline, project: @project, sha: @project.commit.sha, ref: 'master')
@build = create(:ci_build_with_coverage, pipeline: @pipeline)
+ @pipeline.reload_status!
end
step 'recent build is successful' do
- @build.update(status: 'success')
+ @build.success
end
step 'recent build failed' do
- @build.update(status: 'failed')
+ @build.drop
end
step 'project has another build that is running' do
create(:ci_build, pipeline: @pipeline, name: 'second build', status: 'running')
+ @pipeline.reload_status!
end
step 'I visit recent build details page' do