diff options
-rw-r--r-- | changelogs/unreleased/add-git-version-to-system-info.yml | 4 | ||||
-rw-r--r-- | lib/tasks/gitlab/info.rake | 3 | ||||
-rw-r--r-- | spec/tasks/gitlab/info_rake_spec.rb | 37 |
3 files changed, 44 insertions, 0 deletions
diff --git a/changelogs/unreleased/add-git-version-to-system-info.yml b/changelogs/unreleased/add-git-version-to-system-info.yml new file mode 100644 index 00000000000..2827fcec28d --- /dev/null +++ b/changelogs/unreleased/add-git-version-to-system-info.yml @@ -0,0 +1,4 @@ +--- +title: Add git version to gitlab:env:info +merge_request: 9128 +author: Semyon Pupkov diff --git a/lib/tasks/gitlab/info.rake b/lib/tasks/gitlab/info.rake index ae78fe64eb8..b8dd654b9a9 100644 --- a/lib/tasks/gitlab/info.rake +++ b/lib/tasks/gitlab/info.rake @@ -14,6 +14,8 @@ namespace :gitlab do rake_version = run_and_match(%w(rake --version), /[\d\.]+/).try(:to_s) # check redis version redis_version = run_and_match(%w(redis-cli --version), /redis-cli (\d+\.\d+\.\d+)/).to_a + # check Git version + git_version = run_and_match([Gitlab.config.git.bin_path, '--version'], /git version ([\d\.]+)/).to_a puts "" puts "System information".color(:yellow) @@ -26,6 +28,7 @@ namespace :gitlab do puts "Bundler Version:#{bunder_version || "unknown".color(:red)}" puts "Rake Version:\t#{rake_version || "unknown".color(:red)}" puts "Redis Version:\t#{redis_version[1] || "unknown".color(:red)}" + puts "Git Version:\t#{git_version[1] || "unknown".color(:red)}" puts "Sidekiq Version:#{Sidekiq::VERSION}" # check database adapter diff --git a/spec/tasks/gitlab/info_rake_spec.rb b/spec/tasks/gitlab/info_rake_spec.rb new file mode 100644 index 00000000000..ca74378a12a --- /dev/null +++ b/spec/tasks/gitlab/info_rake_spec.rb @@ -0,0 +1,37 @@ +require 'rake_helper' + +describe 'gitlab:env:info' do + before do + Rake.application.rake_require 'tasks/gitlab/info' + + stub_warn_user_is_not_gitlab + allow(Gitlab::Popen).to receive(:popen) + end + + describe 'git version' do + before do + allow(Gitlab::Popen).to receive(:popen).with([Gitlab.config.git.bin_path, '--version']) + .and_return(git_version) + end + + context 'when git installed' do + let(:git_version) { 'git version 2.10.0' } + + it 'prints git version' do + run_rake_task('gitlab:env:info') + + expect($stdout.string).to match(/Git Version:(.*)2.10.0/) + end + end + + context 'when git not installed' do + let(:git_version) { '' } + + it 'prints unknown' do + run_rake_task('gitlab:env:info') + + expect($stdout.string).to match(/Git Version:(.*)unknown/) + end + end + end +end |