Repository navigation
Expand file tree
/
Copy pathRakefile
More file actions
64 lines (54 loc) · 1.66 KB
/
Copy pathRakefile
File metadata and controls
64 lines (54 loc) · 1.66 KB
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
# frozen_string_literal: true
require "rake/testtask"
require_relative "tasks/build"
require_relative "tasks/oha"
require_relative "tasks/release"
namespace :build do
desc "Build an Envoy module into build/modules: fiber, sync or baseline"
task :module, [ :kind ] do |_task, args|
Build.envoy_module(args[:kind] || "fiber")
end
desc "Build the release gems: ruvoy, ruvoy-envoy or all"
task :gem, [ :target ] do |_task, args|
Build.gems(args[:target] || "all")
end
end
namespace :check do
desc "Check that Envoy worker sources never touch the Ruby VM"
task :worker_boundary do
Build.check_worker_boundary
end
desc "Check that CHANGELOG.md has a section for the version being built"
task :changelog do
Release.check_changelog
end
end
namespace :release do
desc "Print the GitHub release notes for a tag: vX.Y.Z or envoy/vX.Y.Z"
task :notes, [ :tag ] do |_task, args|
print Release.notes(args.fetch(:tag))
end
end
namespace :tools do
desc "Install the pinned load generator into .tools/oha"
task :oha do
Oha.install
end
end
desc "Run the benchmark campaign, configured through RUVOY_BENCH_* variables"
task :bench do
ruby File.join(__dir__, "bench", "run.rb")
end
# One task per suite, so a failing suite reruns alone.
namespace :e2e do
FileList["test/e2e/*_test.rb"].each do |file|
Rake::TestTask.new(File.basename(file, "_test.rb")) do |task|
task.test_files = [ file ]
end
end
end
# The Rails suite needs PostgreSQL and a bundle of its own, so it runs only as
# e2e:rails_app.
Rake::TestTask.new(:e2e) do |task|
task.test_files = FileList["test/e2e/*_test.rb"].exclude("test/e2e/rails_app_test.rb")
end