File: Rakefile

package info (click to toggle)
ruby-elasticsearch 7.17.11-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,820 kB
  • sloc: ruby: 44,308; sh: 16; makefile: 2
file content (133 lines) | stat: -rw-r--r-- 4,108 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you under
# the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

require "bundler/gem_tasks"

desc "Run unit tests"
task :default => 'test:unit'
task :test    => 'test:unit'

# ----- Test tasks ------------------------------------------------------------

require 'rake/testtask'
require 'rspec/core/rake_task'
FARADAY1_GEMFILE = 'Gemfile-faraday1.gemfile'.freeze
GEMFILES = ['Gemfile', FARADAY1_GEMFILE].freeze

task :install do
  GEMFILES.each do |gemfile|
    gemfile = File.expand_path("../#{gemfile}", __FILE__)
    sh "bundle install --gemfile #{gemfile}"
  end
end

namespace :test do
  desc 'Wait for Elasticsearch to be in a green state'
  task :wait_for_green do
    sh '../scripts/wait-cluster.sh'
  end

  RSpec::Core::RakeTask.new(:spec)

  Rake::TestTask.new(:unit) do |test|
    test.libs << 'lib' << 'test'
    test.test_files = FileList['test/unit/**/*_test.rb']
    test.verbose = false
    test.warning = false
  end

  Rake::TestTask.new(:integration) do |test|
    test.libs << 'lib' << 'test'
    test.test_files = FileList['test/integration/**/*_test.rb']
    test.deps = ['test:wait_for_green', 'test:spec']
    test.verbose = false
    test.warning = false
  end

  desc 'Run all tests'
  task :all do
    Rake::Task['test:unit'].invoke
    Rake::Task['test:spec'].invoke
    Rake::Task['test:integration'].invoke
  end

  Rake::TestTask.new(:profile) do |test|
    test.libs << 'lib' << 'test'
    test.test_files = FileList['test/profile/**/*_test.rb']
  end

  namespace :faraday1 do
    desc 'Faraday 1: Run RSpec with dependency on Faraday 1'
    task :spec do
      sh "BUNDLE_GEMFILE=#{FARADAY1_GEMFILE} bundle exec rspec"
    end

    desc 'Faraday 1: Run unit tests with dependency on Faraday 1'
    task :unit do
      Dir.glob('./test/unit/**/**.rb').each do |test|
        sh "BUNDLE_GEMFILE=#{FARADAY1_GEMFILE} ruby -Ilib:test #{test}"
      end
    end

    desc 'Faraday 1: Run integration tests with dependency on Faraday 1'
    task :integration do
      Dir.glob('./test/integration/**/**.rb').each do |test|
        sh "BUNDLE_GEMFILE=#{FARADAY1_GEMFILE} ruby -Ilib:test #{test}"
      end
    end

    desc 'Faraday 1: Run all tests'
    task :all do
      Rake::Task['test:faraday1:unit'].invoke
      Rake::Task['test:faraday1:spec'].invoke
      Rake::Task['test:faraday1:integration'].invoke
    end
  end

  namespace :cluster do
    desc "Start Elasticsearch nodes for tests"
    task :start do
      $LOAD_PATH << File.expand_path('../lib', __FILE__) << File.expand_path('../test', __FILE__)
      require 'elasticsearch/extensions/test/cluster'
      Elasticsearch::Extensions::Test::Cluster.start
    end

    desc "Stop Elasticsearch nodes for tests"
    task :stop do
      $LOAD_PATH << File.expand_path('../lib', __FILE__) << File.expand_path('../test', __FILE__)
      require 'elasticsearch/extensions/test/cluster'
      Elasticsearch::Extensions::Test::Cluster.stop
    end
  end
end

# ----- Documentation tasks ---------------------------------------------------

require 'yard'
YARD::Rake::YardocTask.new(:doc) do |t|
  t.options = %w| --embed-mixins --markup=markdown |
end

# ----- Code analysis tasks ---------------------------------------------------

if defined?(RUBY_VERSION) && RUBY_VERSION > '1.9'
  require 'cane/rake_task'
  Cane::RakeTask.new(:quality) do |cane|
    cane.abc_max = 15
    cane.no_style = true
  end
end