summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-06-15 19:26:17 +0000
committerDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-06-15 19:26:17 +0000
commit5701879f73b5999a1e91129d95898599779b1601 (patch)
tree11a5166ab1b3a44cc7a36590ac27a1f6bdeb6c82
parentcbeaa57a4afff922a7cacd5a10d1b25c7492a1f8 (diff)
parentddd04dec93e8d006d1d8f9a9708bf07d0443bd48 (diff)
downloadgitlab-ce-5701879f73b5999a1e91129d95898599779b1601.tar.gz
Merge branch '7-12-rc2' into '7-12-stable'
Fixes for RC2 we need it to make GitLab works with new CI cc @jacobvosmaer See merge request !1864
-rw-r--r--.gitlab-ci.yml62
-rw-r--r--app/models/project_services/gitlab_ci_service.rb22
-rw-r--r--app/views/profiles/accounts/show.html.haml2
-rw-r--r--lib/gitlab/push_data_builder.rb7
-rw-r--r--spec/models/project_services/gitlab_ci_service_spec.rb2
5 files changed, 57 insertions, 38 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1411a9194b5..7a33061e474 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,4 @@
+# This file is generated by GitLab CI
before_script:
- export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
- ruby -v
@@ -7,33 +8,44 @@ before_script:
- echo $PATH
- cp config/database.yml.mysql config/database.yml
- cp config/gitlab.yml.example config/gitlab.yml
- - ! 'sed "s/username\:.*$/username\: runner/" -i config/database.yml'
- - ! 'sed "s/password\:.*$/password\: ''password''/" -i config/database.yml'
+ - 'sed "s/username\:.*$/username\: runner/" -i config/database.yml'
+ - 'sed "s/password\:.*$/password\: ''password''/" -i config/database.yml'
- sed "s/gitlabhq_test/gitlabhq_test_$((RANDOM/5000))/" -i config/database.yml
- touch log/application.log
- touch log/test.log
- bundle install --without postgres production --jobs $(nproc)
- bundle exec rake db:create RAILS_ENV=test
-jobs:
-- script:
- - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec
- name: Rspec
- runner: ruby,mysql
-- script:
- - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach
- name: Spinach
- runner: ruby,mysql
-- script:
- - RAILS_ENV=test SIMPLECOV=true bundle exec rake jasmine:ci
- name: Jasmine
- runner: ruby,mysql
-- script:
- - bundle exec rubocop
- name: Rubocop
- runner: ruby,mysql
-- script:
- - bundle exec rake brakeman
- name: Brakeman
- runner: ruby,mysql
-deploy_jobs: []
-skip_refs: ''
+Rspec:
+ script:
+ - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec
+ tags:
+ - ruby
+ - mysql
+
+Spinach:
+ script:
+ - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach
+ tags:
+ - ruby
+ - mysql
+
+Jasmine:
+ script:
+ - RAILS_ENV=test SIMPLECOV=true bundle exec rake jasmine:ci
+ tags:
+ - ruby
+ - mysql
+
+Rubocop:
+ script:
+ - bundle exec rubocop
+ tags:
+ - ruby
+ - mysql
+
+Brakeman:
+ script:
+ - bundle exec rake brakeman
+ tags:
+ - ruby
+ - mysql
diff --git a/app/models/project_services/gitlab_ci_service.rb b/app/models/project_services/gitlab_ci_service.rb
index a9354754686..19b5859d5c9 100644
--- a/app/models/project_services/gitlab_ci_service.rb
+++ b/app/models/project_services/gitlab_ci_service.rb
@@ -40,10 +40,14 @@ class GitlabCiService < CiService
def execute(data)
return unless supported_events.include?(data[:object_kind])
- ci_yaml_file = ci_yaml_file(data)
+ sha = data[:checkout_sha]
- if ci_yaml_file
- data.merge!(ci_yaml_file: ci_yaml_file)
+ if sha.present?
+ file = ci_yaml_file(sha)
+
+ if file && file.data
+ data.merge!(ci_yaml_file: file.data)
+ end
end
service_hook.execute(data)
@@ -129,15 +133,15 @@ class GitlabCiService < CiService
private
- def ci_yaml_file(data)
- ref = data[:checkout_sha]
- repo = project.repository
- commit = repo.commit(ref)
- blob = Gitlab::Git::Blob.find(repo, commit.id, ".gitlab-ci.yml")
- blob && blob.data
+ def ci_yaml_file(sha)
+ repository.blob_at(sha, '.gitlab-ci.yml')
end
def fork_registration_path
project_url.sub(/projects\/\d*/, "#{API_PREFIX}/forks")
end
+
+ def repository
+ project.repository
+ end
end
diff --git a/app/views/profiles/accounts/show.html.haml b/app/views/profiles/accounts/show.html.haml
index a26d4e0c757..ed009c86568 100644
--- a/app/views/profiles/accounts/show.html.haml
+++ b/app/views/profiles/accounts/show.html.haml
@@ -113,4 +113,4 @@
Your account is currently an owner in these groups:
%strong #{@user.solo_owned_groups.map(&:name).join(', ')}
%p
- You must transfer ownership or delete these groups before you can delete yur account.
+ You must transfer ownership or delete these groups before you can delete your account.
diff --git a/lib/gitlab/push_data_builder.rb b/lib/gitlab/push_data_builder.rb
index f97784f5abb..d010ade704e 100644
--- a/lib/gitlab/push_data_builder.rb
+++ b/lib/gitlab/push_data_builder.rb
@@ -27,7 +27,7 @@ module Gitlab
# Get latest 20 commits ASC
commits_limited = commits.last(20)
-
+
# For performance purposes maximum 20 latest commits
# will be passed as post receive hook data.
commit_attrs = commits_limited.map(&:hook_attrs)
@@ -70,8 +70,11 @@ module Gitlab
end
def checkout_sha(repository, newrev, ref)
+ # Checkout sha is nil when we remove branch or tag
+ return if Gitlab::Git.blank_ref?(newrev)
+
# Find sha for tag, except when it was deleted.
- if Gitlab::Git.tag_ref?(ref) && !Gitlab::Git.blank_ref?(newrev)
+ if Gitlab::Git.tag_ref?(ref)
tag_name = Gitlab::Git.ref_name(ref)
tag = repository.find_tag(tag_name)
diff --git a/spec/models/project_services/gitlab_ci_service_spec.rb b/spec/models/project_services/gitlab_ci_service_spec.rb
index ebd8b545aa7..c92cf3cdae6 100644
--- a/spec/models/project_services/gitlab_ci_service_spec.rb
+++ b/spec/models/project_services/gitlab_ci_service_spec.rb
@@ -58,7 +58,7 @@ describe GitlabCiService do
service_hook = double
service_hook.should_receive(:execute)
@service.should_receive(:service_hook).and_return(service_hook)
- @service.should_receive(:ci_yaml_file).with(push_sample_data)
+ @service.should_receive(:ci_yaml_file).with(push_sample_data[:checkout_sha])
@service.execute(push_sample_data)
end