forked from discourse/discourse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathboot.rb
55 lines (43 loc) · 1.39 KB
/
boot.rb
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
# frozen_string_literal: true
if ENV["DISCOURSE_DUMP_HEAP"] == "1"
require "objspace"
ObjectSpace.trace_object_allocations_start
end
require "rubygems"
# Set up gems listed in the Gemfile.
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__)
require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
if (ENV["DISABLE_BOOTSNAP"] != "1")
begin
require "bootsnap"
rescue LoadError
# not a strong requirement
end
if defined?(Bootsnap)
Bootsnap.setup(
cache_dir: "tmp/cache", # Path to your cache
load_path_cache: true, # Should we optimize the LOAD_PATH with a cache?
compile_cache_iseq: true, # Should compile Ruby code into ISeq cache?
compile_cache_yaml: false, # Skip YAML cache for now, cause we were seeing issues with it
)
end
end
# Parallel spec system
if ENV["RAILS_ENV"] == "test" && ENV["TEST_ENV_NUMBER"]
if ENV["TEST_ENV_NUMBER"] == ""
n = 1
else
n = ENV["TEST_ENV_NUMBER"].to_i
end
port = 10_000 + n
STDERR.puts "Setting up parallel test mode - starting Redis #{n} on port #{port}"
`rm -rf tmp/test_data_#{n} && mkdir -p tmp/test_data_#{n}/redis`
pid =
Process.spawn("redis-server --dir tmp/test_data_#{n}/redis --port #{port}", out: "/dev/null")
ENV["DISCOURSE_REDIS_PORT"] = port.to_s
ENV["RAILS_DB"] = "discourse_test_#{n}"
at_exit do
Process.kill("SIGTERM", pid)
Process.wait
end
end