Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
e9956456
Commit
e9956456
authored
Jul 31, 2017
by
Jacob Vosmaer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CI fixes for gitaly-ruby
parent
a9f56ae1
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
50 additions
and
11 deletions
+50
-11
.gitlab-ci.yml
.gitlab-ci.yml
+3
-0
lib/tasks/gitlab/gitaly.rake
lib/tasks/gitlab/gitaly.rake
+9
-3
scripts/gitaly-test-build
scripts/gitaly-test-build
+10
-0
scripts/gitaly-test-spawn
scripts/gitaly-test-spawn
+7
-0
spec/support/test_env.rb
spec/support/test_env.rb
+7
-4
spec/tasks/gitlab/gitaly_rake_spec.rb
spec/tasks/gitlab/gitaly_rake_spec.rb
+14
-4
No files found.
.gitlab-ci.yml
View file @
e9956456
...
@@ -96,6 +96,7 @@ stages:
...
@@ -96,6 +96,7 @@ stages:
-
export KNAPSACK_GENERATE_REPORT=true
-
export KNAPSACK_GENERATE_REPORT=true
-
export CACHE_CLASSES=true
-
export CACHE_CLASSES=true
-
cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
-
cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
-
scripts/gitaly-test-spawn
-
knapsack rspec "--color --format documentation"
-
knapsack rspec "--color --format documentation"
artifacts
:
artifacts
:
expire_in
:
31d
expire_in
:
31d
...
@@ -221,6 +222,7 @@ setup-test-env:
...
@@ -221,6 +222,7 @@ setup-test-env:
-
bundle exec rake gettext:po_to_json
-
bundle exec rake gettext:po_to_json
-
bundle exec rake gitlab:assets:compile
-
bundle exec rake gitlab:assets:compile
-
bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init'
-
bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init'
-
scripts/gitaly-test-build
# Do not use 'bundle exec' here
artifacts
:
artifacts
:
expire_in
:
7d
expire_in
:
7d
paths
:
paths
:
...
@@ -486,6 +488,7 @@ karma:
...
@@ -486,6 +488,7 @@ karma:
BABEL_ENV
:
"
coverage"
BABEL_ENV
:
"
coverage"
CHROME_LOG_FILE
:
"
chrome_debug.log"
CHROME_LOG_FILE
:
"
chrome_debug.log"
script
:
script
:
-
scripts/gitaly-test-spawn
-
bundle exec rake gettext:po_to_json
-
bundle exec rake gettext:po_to_json
-
bundle exec rake karma
-
bundle exec rake karma
coverage
:
'
/^Statements
*:
(\d+\.\d+%)/'
coverage
:
'
/^Statements
*:
(\d+\.\d+%)/'
...
...
lib/tasks/gitlab/gitaly.rake
View file @
e9956456
...
@@ -19,7 +19,10 @@ namespace :gitlab do
...
@@ -19,7 +19,10 @@ namespace :gitlab do
Dir
.
chdir
(
args
.
dir
)
do
Dir
.
chdir
(
args
.
dir
)
do
create_gitaly_configuration
create_gitaly_configuration
Bundler
.
with_original_env
{
run_command!
([
command
])
}
# In CI we run scripts/gitaly-test-build instead of this command
unless
ENV
[
'CI'
].
present?
Bundler
.
with_original_env
{
run_command!
(
%w[/usr/bin/env -u BUNDLE_GEMFILE]
+
[
command
])
}
end
end
end
end
end
...
@@ -30,7 +33,9 @@ namespace :gitlab do
...
@@ -30,7 +33,9 @@ namespace :gitlab do
puts
"# Gitaly storage configuration generated from
#{
Gitlab
.
config
.
source
}
on
#{
Time
.
current
.
to_s
(
:long
)
}
"
puts
"# Gitaly storage configuration generated from
#{
Gitlab
.
config
.
source
}
on
#{
Time
.
current
.
to_s
(
:long
)
}
"
puts
"# This is in TOML format suitable for use in Gitaly's config.toml file."
puts
"# This is in TOML format suitable for use in Gitaly's config.toml file."
puts
gitaly_configuration_toml
# Exclude gitaly-ruby configuration because that depends on the gitaly
# installation directory.
puts
gitaly_configuration_toml
(
gitaly_ruby:
false
)
end
end
private
private
...
@@ -41,7 +46,7 @@ namespace :gitlab do
...
@@ -41,7 +46,7 @@ namespace :gitlab do
# only generate a configuration for the most common and simplest case: when
# only generate a configuration for the most common and simplest case: when
# we have exactly one Gitaly process and we are sure it is running locally
# we have exactly one Gitaly process and we are sure it is running locally
# because it uses a Unix socket.
# because it uses a Unix socket.
def
gitaly_configuration_toml
def
gitaly_configuration_toml
(
gitaly_ruby:
true
)
storages
=
[]
storages
=
[]
address
=
nil
address
=
nil
...
@@ -60,6 +65,7 @@ namespace :gitlab do
...
@@ -60,6 +65,7 @@ namespace :gitlab do
end
end
config
=
{
socket_path:
address
.
sub
(
%r{
\A
unix:}
,
''
),
storage:
storages
}
config
=
{
socket_path:
address
.
sub
(
%r{
\A
unix:}
,
''
),
storage:
storages
}
config
[
:auth
]
=
{
token:
'secret'
}
if
Rails
.
env
.
test?
config
[
:auth
]
=
{
token:
'secret'
}
if
Rails
.
env
.
test?
config
[
:'gitaly-ruby'
]
=
{
dir:
File
.
join
(
Dir
.
pwd
,
'ruby'
)
}
if
gitaly_ruby
TOML
.
dump
(
config
)
TOML
.
dump
(
config
)
end
end
...
...
scripts/gitaly-test-build
0 → 100755
View file @
e9956456
#!/usr/bin/env ruby
# This script assumes tmp/tests/gitaly already contains the correct
# Gitaly version. We just have to compile it and run its 'bundle
# install'. We have this separate script for that because weird things
# were happening in CI when we have a 'bundle exec' process that later
# called 'bundle install' using a different Gemfile, as happens with
# gitlab-ce and gitaly.
abort
'gitaly build failed'
unless
system
(
'make'
,
chdir:
'tmp/tests/gitaly'
)
scripts/gitaly-test-spawn
0 → 100755
View file @
e9956456
#!/usr/bin/env ruby
gitaly_dir
=
'tmp/tests/gitaly'
args
=
%W[
#{
gitaly_dir
}
/gitaly
#{
gitaly_dir
}
/config.toml]
# Print the PID of the spawned process
puts
spawn
(
*
args
,
[
:out
,
:err
]
=>
'log/gitaly-test.log'
)
spec/support/test_env.rb
View file @
e9956456
...
@@ -144,10 +144,13 @@ module TestEnv
...
@@ -144,10 +144,13 @@ module TestEnv
end
end
def
start_gitaly
(
gitaly_dir
)
def
start_gitaly
(
gitaly_dir
)
gitaly_exec
=
File
.
join
(
gitaly_dir
,
'gitaly'
)
if
ENV
[
'CI'
].
present?
gitaly_config
=
File
.
join
(
gitaly_dir
,
'config.toml'
)
# Gitaly has been spawned outside this process already
log_file
=
Rails
.
root
.
join
(
'log/gitaly-test.log'
).
to_s
return
@gitaly_pid
=
Bundler
.
with_original_env
{
spawn
(
gitaly_exec
,
gitaly_config
,
[
:out
,
:err
]
=>
log_file
)
}
end
spawn_script
=
Rails
.
root
.
join
(
'scripts/gitaly-test-spawn'
).
to_s
@gitaly_pid
=
Bundler
.
with_original_env
{
IO
.
popen
([
spawn_script
],
&
:read
).
to_i
}
end
end
def
stop_gitaly
def
stop_gitaly
...
...
spec/tasks/gitlab/gitaly_rake_spec.rb
View file @
e9956456
...
@@ -41,6 +41,16 @@ describe 'gitlab:gitaly namespace rake task' do
...
@@ -41,6 +41,16 @@ describe 'gitlab:gitaly namespace rake task' do
end
end
describe
'gmake/make'
do
describe
'gmake/make'
do
let
(
:command_preamble
)
{
%w[/usr/bin/env -u BUNDLE_GEMFILE]
}
before
(
:all
)
do
@old_env_ci
=
ENV
.
delete
(
'CI'
)
end
after
(
:all
)
do
ENV
[
'CI'
]
=
@old_env_ci
if
@old_env_ci
end
before
do
before
do
FileUtils
.
mkdir_p
(
clone_path
)
FileUtils
.
mkdir_p
(
clone_path
)
expect
(
Dir
).
to
receive
(
:chdir
).
with
(
clone_path
).
and_call_original
expect
(
Dir
).
to
receive
(
:chdir
).
with
(
clone_path
).
and_call_original
...
@@ -49,12 +59,12 @@ describe 'gitlab:gitaly namespace rake task' do
...
@@ -49,12 +59,12 @@ describe 'gitlab:gitaly namespace rake task' do
context
'gmake is available'
do
context
'gmake is available'
do
before
do
before
do
expect_any_instance_of
(
Object
).
to
receive
(
:checkout_or_clone_version
)
expect_any_instance_of
(
Object
).
to
receive
(
:checkout_or_clone_version
)
allow_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
([
'gmake'
]).
and_return
(
true
)
allow_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
(
command_preamble
+
[
'gmake'
]).
and_return
(
true
)
end
end
it
'calls gmake in the gitaly directory'
do
it
'calls gmake in the gitaly directory'
do
expect
(
Gitlab
::
Popen
).
to
receive
(
:popen
).
with
(
%w[which gmake]
).
and_return
([
'/usr/bin/gmake'
,
0
])
expect
(
Gitlab
::
Popen
).
to
receive
(
:popen
).
with
(
%w[which gmake]
).
and_return
([
'/usr/bin/gmake'
,
0
])
expect_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
([
'gmake'
]).
and_return
(
true
)
expect_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
(
command_preamble
+
[
'gmake'
]).
and_return
(
true
)
run_rake_task
(
'gitlab:gitaly:install'
,
clone_path
)
run_rake_task
(
'gitlab:gitaly:install'
,
clone_path
)
end
end
...
@@ -63,12 +73,12 @@ describe 'gitlab:gitaly namespace rake task' do
...
@@ -63,12 +73,12 @@ describe 'gitlab:gitaly namespace rake task' do
context
'gmake is not available'
do
context
'gmake is not available'
do
before
do
before
do
expect_any_instance_of
(
Object
).
to
receive
(
:checkout_or_clone_version
)
expect_any_instance_of
(
Object
).
to
receive
(
:checkout_or_clone_version
)
allow_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
([
'make'
]).
and_return
(
true
)
allow_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
(
command_preamble
+
[
'make'
]).
and_return
(
true
)
end
end
it
'calls make in the gitaly directory'
do
it
'calls make in the gitaly directory'
do
expect
(
Gitlab
::
Popen
).
to
receive
(
:popen
).
with
(
%w[which gmake]
).
and_return
([
''
,
42
])
expect
(
Gitlab
::
Popen
).
to
receive
(
:popen
).
with
(
%w[which gmake]
).
and_return
([
''
,
42
])
expect_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
([
'make'
]).
and_return
(
true
)
expect_any_instance_of
(
Object
).
to
receive
(
:run_command!
).
with
(
command_preamble
+
[
'make'
]).
and_return
(
true
)
run_rake_task
(
'gitlab:gitaly:install'
,
clone_path
)
run_rake_task
(
'gitlab:gitaly:install'
,
clone_path
)
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment