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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
26fb08f8
Commit
26fb08f8
authored
Jul 31, 2017
by
Jacob Vosmaer
Committed by
Nick Thomas
Aug 02, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CI fixes for gitaly-ruby
parent
785837c4
Changes
6
Hide 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 @
26fb08f8
...
...
@@ -102,6 +102,7 @@ stages:
-
export KNAPSACK_GENERATE_REPORT=true
-
export CACHE_CLASSES=true
-
cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
-
scripts/gitaly-test-spawn
-
knapsack rspec "--color --format documentation"
artifacts
:
expire_in
:
31d
...
...
@@ -228,6 +229,7 @@ setup-test-env:
-
bundle exec rake gettext:po_to_json
-
bundle exec rake gitlab:assets:compile
-
bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init'
-
scripts/gitaly-test-build
# Do not use 'bundle exec' here
artifacts
:
expire_in
:
7d
paths
:
...
...
@@ -473,6 +475,7 @@ karma:
BABEL_ENV
:
"
coverage"
CHROME_LOG_FILE
:
"
chrome_debug.log"
script
:
-
scripts/gitaly-test-spawn
-
bundle exec rake gettext:po_to_json
-
bundle exec rake karma
coverage
:
'
/^Statements
*:
(\d+\.\d+%)/'
...
...
lib/tasks/gitlab/gitaly.rake
View file @
26fb08f8
...
...
@@ -19,7 +19,10 @@ namespace :gitlab do
Dir
.
chdir
(
args
.
dir
)
do
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
...
...
@@ -30,7 +33,9 @@ namespace :gitlab do
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
gitaly_configuration_toml
# Exclude gitaly-ruby configuration because that depends on the gitaly
# installation directory.
puts
gitaly_configuration_toml
(
gitaly_ruby:
false
)
end
private
...
...
@@ -41,7 +46,7 @@ namespace :gitlab do
# 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
# because it uses a Unix socket.
def
gitaly_configuration_toml
def
gitaly_configuration_toml
(
gitaly_ruby:
true
)
storages
=
[]
address
=
nil
...
...
@@ -60,6 +65,7 @@ namespace :gitlab do
end
config
=
{
socket_path:
address
.
sub
(
%r{
\A
unix:}
,
''
),
storage:
storages
}
config
[
:auth
]
=
{
token:
'secret'
}
if
Rails
.
env
.
test?
config
[
:'gitaly-ruby'
]
=
{
dir:
File
.
join
(
Dir
.
pwd
,
'ruby'
)
}
if
gitaly_ruby
TOML
.
dump
(
config
)
end
...
...
scripts/gitaly-test-build
0 → 100755
View file @
26fb08f8
#!/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 @
26fb08f8
#!/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 @
26fb08f8
...
...
@@ -146,10 +146,13 @@ module TestEnv
end
def
start_gitaly
(
gitaly_dir
)
gitaly_exec
=
File
.
join
(
gitaly_dir
,
'gitaly'
)
gitaly_config
=
File
.
join
(
gitaly_dir
,
'config.toml'
)
log_file
=
Rails
.
root
.
join
(
'log/gitaly-test.log'
).
to_s
@gitaly_pid
=
Bundler
.
with_original_env
{
spawn
(
gitaly_exec
,
gitaly_config
,
[
:out
,
:err
]
=>
log_file
)
}
if
ENV
[
'CI'
].
present?
# Gitaly has been spawned outside this process already
return
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
def
stop_gitaly
...
...
spec/tasks/gitlab/gitaly_rake_spec.rb
View file @
26fb08f8
...
...
@@ -41,6 +41,16 @@ describe 'gitlab:gitaly namespace rake task' do
end
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
FileUtils
.
mkdir_p
(
clone_path
)
expect
(
Dir
).
to
receive
(
:chdir
).
with
(
clone_path
).
and_call_original
...
...
@@ -49,12 +59,12 @@ describe 'gitlab:gitaly namespace rake task' do
context
'gmake is available'
do
before
do
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
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_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
)
end
...
...
@@ -63,12 +73,12 @@ describe 'gitlab:gitaly namespace rake task' do
context
'gmake is not available'
do
before
do
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
it
'calls make in the gitaly directory'
do
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
)
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