summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-04-01 23:04:56 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-04-01 23:04:56 +0000
commitecb57058b81f804f8548d6af35874136fa37743c (patch)
tree231c319263d0284ea1772582aff2fb919aaf94fd
parent185bc3c3a4207333b084d4294c345c10b193dacc (diff)
parentedfe6539b4c39caaffce119b8d716e94c86c9169 (diff)
downloadgitlab-ci-ecb57058b81f804f8548d6af35874136fa37743c.tar.gz
Merge branch 'deploy_without_tests' into 'master'
Deploy without tests Fixes #127 See merge request !51
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/build.rb5
-rw-r--r--app/models/commit.rb8
-rw-r--r--app/services/create_commit_service.rb4
-rw-r--r--spec/models/commit_spec.rb11
-rw-r--r--spec/services/create_commit_service_spec.rb13
6 files changed, 28 insertions, 14 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 232e8b0..c3edd90 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,7 @@ v7.10.0
v7.9.2
- [Security] Already existing projects should not be served by shared runners
+ - Ability to run deploy job without test jobs (every push will trigger deploy job)
v7.9.1
- [Security] Adding explicit is_shared parameter to runner
diff --git a/app/models/build.rb b/app/models/build.rb
index 0cecc19..fa0cb8f 100644
--- a/app/models/build.rb
+++ b/app/models/build.rb
@@ -118,7 +118,10 @@ class Build < ActiveRecord::Base
WebHookService.new.build_end(build)
end
- build.commit.create_deploy_builds(build.ref)
+ if build.commit.success? && !build.job.deploy?
+ build.commit.create_deploy_builds(build.ref)
+ end
+
project.execute_services(build)
if project.coverage_enabled?
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 2e1bd52..5f1aa92 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -137,11 +137,9 @@ class Commit < ActiveRecord::Base
end
def create_deploy_builds(ref)
- if success? && !last_build.job.deploy?
- project.jobs.deploy.active.each do |job|
- if job.run_for_ref?(ref)
- create_build_from_job(job)
- end
+ project.jobs.deploy.active.each do |job|
+ if job.run_for_ref?(ref)
+ create_build_from_job(job)
end
end
end
diff --git a/app/services/create_commit_service.rb b/app/services/create_commit_service.rb
index e2e7053..1d1d3dc 100644
--- a/app/services/create_commit_service.rb
+++ b/app/services/create_commit_service.rb
@@ -48,6 +48,10 @@ class CreateCommitService
commit.create_builds
end
+ if commit.builds.empty?
+ commit.create_deploy_builds(ref)
+ end
+
commit
end
end
diff --git a/spec/models/commit_spec.rb b/spec/models/commit_spec.rb
index da57109..d4a516b 100644
--- a/spec/models/commit_spec.rb
+++ b/spec/models/commit_spec.rb
@@ -159,19 +159,14 @@ describe Commit do
end
describe "create_deploy_builds" do
- before do
- job = FactoryGirl.create :job, project: project
- job1 = FactoryGirl.create :job, project: project
+ it "creates deploy build" do
FactoryGirl.create :job, job_type: :deploy, project: project
- FactoryGirl.create :build, commit: commit, status: :success, job: job
- FactoryGirl.create :build, commit: commit, status: :success, job: job1
project.reload
- end
- it "creates new build for deploy" do
commit.create_deploy_builds(commit.ref)
+ commit.builds.reload
- commit.builds.size.should == 3
+ commit.builds.size.should == 1
end
end
end
diff --git a/spec/services/create_commit_service_spec.rb b/spec/services/create_commit_service_spec.rb
index d8f404e..725ea08 100644
--- a/spec/services/create_commit_service_spec.rb
+++ b/spec/services/create_commit_service_spec.rb
@@ -20,5 +20,18 @@ describe CreateCommitService do
it { should be_false }
end
+
+ context "deploy builds" do
+ it "calls create_deploy_builds if there are no builds" do
+ project.jobs.destroy_all
+ Commit.any_instance.should_receive(:create_deploy_builds)
+ service.execute(project, ref: 'refs/heads/master', before: '00000000', after: '31das312')
+ end
+
+ it "does not call create_deploy_builds if there is build" do
+ Commit.any_instance.should_not_receive(:create_deploy_builds)
+ service.execute(project, ref: 'refs/heads/master', before: '00000000', after: '31das312')
+ end
+ end
end
end