diff options
author | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2015-06-15 19:26:17 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2015-06-15 19:26:17 +0000 |
commit | 5701879f73b5999a1e91129d95898599779b1601 (patch) | |
tree | 11a5166ab1b3a44cc7a36590ac27a1f6bdeb6c82 | |
parent | cbeaa57a4afff922a7cacd5a10d1b25c7492a1f8 (diff) | |
parent | ddd04dec93e8d006d1d8f9a9708bf07d0443bd48 (diff) | |
download | gitlab-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.yml | 62 | ||||
-rw-r--r-- | app/models/project_services/gitlab_ci_service.rb | 22 | ||||
-rw-r--r-- | app/views/profiles/accounts/show.html.haml | 2 | ||||
-rw-r--r-- | lib/gitlab/push_data_builder.rb | 7 | ||||
-rw-r--r-- | spec/models/project_services/gitlab_ci_service_spec.rb | 2 |
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 |