Commit 5701879f authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

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
parents cbeaa57a ddd04dec
# This file is generated by GitLab CI
before_script: before_script:
- export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin - export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
- ruby -v - ruby -v
...@@ -7,33 +8,44 @@ before_script: ...@@ -7,33 +8,44 @@ before_script:
- echo $PATH - echo $PATH
- cp config/database.yml.mysql config/database.yml - cp config/database.yml.mysql config/database.yml
- cp config/gitlab.yml.example config/gitlab.yml - cp config/gitlab.yml.example config/gitlab.yml
- ! 'sed "s/username\:.*$/username\: runner/" -i config/database.yml' - 'sed "s/username\:.*$/username\: runner/" -i config/database.yml'
- ! 'sed "s/password\:.*$/password\: ''password''/" -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 - sed "s/gitlabhq_test/gitlabhq_test_$((RANDOM/5000))/" -i config/database.yml
- touch log/application.log - touch log/application.log
- touch log/test.log - touch log/test.log
- bundle install --without postgres production --jobs $(nproc) - bundle install --without postgres production --jobs $(nproc)
- bundle exec rake db:create RAILS_ENV=test - bundle exec rake db:create RAILS_ENV=test
jobs: Rspec:
- script: script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec
name: Rspec tags:
runner: ruby,mysql - ruby
- script: - mysql
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach
name: Spinach Spinach:
runner: ruby,mysql script:
- script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach
- RAILS_ENV=test SIMPLECOV=true bundle exec rake jasmine:ci tags:
name: Jasmine - ruby
runner: ruby,mysql - mysql
- script:
- bundle exec rubocop Jasmine:
name: Rubocop script:
runner: ruby,mysql - RAILS_ENV=test SIMPLECOV=true bundle exec rake jasmine:ci
- script: tags:
- bundle exec rake brakeman - ruby
name: Brakeman - mysql
runner: ruby,mysql
deploy_jobs: [] Rubocop:
skip_refs: '' script:
- bundle exec rubocop
tags:
- ruby
- mysql
Brakeman:
script:
- bundle exec rake brakeman
tags:
- ruby
- mysql
...@@ -40,10 +40,14 @@ class GitlabCiService < CiService ...@@ -40,10 +40,14 @@ class GitlabCiService < CiService
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
ci_yaml_file = ci_yaml_file(data) sha = data[:checkout_sha]
if ci_yaml_file if sha.present?
data.merge!(ci_yaml_file: ci_yaml_file) file = ci_yaml_file(sha)
if file && file.data
data.merge!(ci_yaml_file: file.data)
end
end end
service_hook.execute(data) service_hook.execute(data)
...@@ -129,15 +133,15 @@ class GitlabCiService < CiService ...@@ -129,15 +133,15 @@ class GitlabCiService < CiService
private private
def ci_yaml_file(data) def ci_yaml_file(sha)
ref = data[:checkout_sha] repository.blob_at(sha, '.gitlab-ci.yml')
repo = project.repository
commit = repo.commit(ref)
blob = Gitlab::Git::Blob.find(repo, commit.id, ".gitlab-ci.yml")
blob && blob.data
end end
def fork_registration_path def fork_registration_path
project_url.sub(/projects\/\d*/, "#{API_PREFIX}/forks") project_url.sub(/projects\/\d*/, "#{API_PREFIX}/forks")
end end
def repository
project.repository
end
end end
...@@ -113,4 +113,4 @@ ...@@ -113,4 +113,4 @@
Your account is currently an owner in these groups: Your account is currently an owner in these groups:
%strong #{@user.solo_owned_groups.map(&:name).join(', ')} %strong #{@user.solo_owned_groups.map(&:name).join(', ')}
%p %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.
...@@ -27,7 +27,7 @@ module Gitlab ...@@ -27,7 +27,7 @@ module Gitlab
# Get latest 20 commits ASC # Get latest 20 commits ASC
commits_limited = commits.last(20) commits_limited = commits.last(20)
# For performance purposes maximum 20 latest commits # For performance purposes maximum 20 latest commits
# will be passed as post receive hook data. # will be passed as post receive hook data.
commit_attrs = commits_limited.map(&:hook_attrs) commit_attrs = commits_limited.map(&:hook_attrs)
...@@ -70,8 +70,11 @@ module Gitlab ...@@ -70,8 +70,11 @@ module Gitlab
end end
def checkout_sha(repository, newrev, ref) 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. # 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_name = Gitlab::Git.ref_name(ref)
tag = repository.find_tag(tag_name) tag = repository.find_tag(tag_name)
......
...@@ -58,7 +58,7 @@ describe GitlabCiService do ...@@ -58,7 +58,7 @@ describe GitlabCiService do
service_hook = double service_hook = double
service_hook.should_receive(:execute) service_hook.should_receive(:execute)
@service.should_receive(:service_hook).and_return(service_hook) @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) @service.execute(push_sample_data)
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment