Skip to content

Commit 11b476f

Browse files
authored
Merge pull request #34 from zzak/rack-3-gemfile
Use env for Rack 3 jobs for Gemfile
2 parents 49d8163 + 8b0e26b commit 11b476f

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

pipeline-generate

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def short_ruby(ruby)
127127
end
128128
end
129129

130-
def step_for(subdirectory, rake_task, ruby: nil, service: "default")
130+
def step_for(subdirectory, rake_task, ruby: nil, service: "default", pre_steps: [])
131131
return unless REPO_ROOT.join(subdirectory).exist?
132132

133133
label = +"#{subdirectory} #{rake_task.sub(/[:_]test|test:/, "")}"
@@ -152,6 +152,9 @@ def step_for(subdirectory, rake_task, ruby: nil, service: "default")
152152
env["RUBY_YJIT_ENABLE"] = "1"
153153
end
154154

155+
if !pre_steps.empty?
156+
env["PRE_STEPS"] = pre_steps.join(" && ")
157+
end
155158
command = "rake #{rake_task}"
156159

157160
timeout = 30
@@ -186,6 +189,10 @@ def step_for(subdirectory, rake_task, ruby: nil, service: "default")
186189
},
187190
{
188191
DOCKER_COMPOSE_PLUGIN => {
192+
"env" => [
193+
"PRE_STEPS",
194+
"RACK"
195+
],
189196
"run" => service,
190197
"pull" => service,
191198
"config" => ".buildkite/docker-compose.yml",
@@ -206,13 +213,13 @@ def step_for(subdirectory, rake_task, ruby: nil, service: "default")
206213
STEPS << hash
207214
end
208215

209-
def steps_for(subdirectory, rake_task, service: "default", &block)
216+
def steps_for(subdirectory, rake_task, service: "default", pre_steps: [], &block)
210217
RUBIES.each do |ruby|
211218
if rake_task == "mysql:test"
212219
next unless ruby =~ /^ruby:(.*)/ && Gem::Version.new($1) < Gem::Version.new("2.4.x")
213220
end
214221

215-
step_for(subdirectory, rake_task, ruby: ruby, service: service, &block)
222+
step_for(subdirectory, rake_task, ruby: ruby, service: service, pre_steps: pre_steps, &block)
216223
end
217224
end
218225

@@ -301,6 +308,19 @@ steps_for("railties", "test", service: "railties") do |x|
301308
x["parallelism"] = 12 if REPO_ROOT.join("railties/Rakefile").read.include?("BUILDKITE_PARALLEL")
302309
end
303310

311+
step_for("actionpack", "test", service: "default", pre_steps: ["bundle install"]) do |x|
312+
x["label"] += " [rack-3]"
313+
x["env"]["RACK"] = "~> 3.0"
314+
x["soft_fail"] = true
315+
end
316+
317+
step_for("railties", "test", service: "railties", pre_steps: ["bundle install"]) do |x|
318+
x["parallelism"] = 12 if REPO_ROOT.join("railties/Rakefile").read.include?("BUILDKITE_PARALLEL")
319+
x["label"] += " [rack-3]"
320+
x["env"]["RACK"] = "~> 3.0"
321+
x["soft_fail"] = true
322+
end
323+
304324
# Ugly hacks to just get the build passing for now
305325
STEPS.find { |s| s["label"] == "activestorage (2.2)" }&.tap do |s|
306326
s["soft_fail"] = true
@@ -343,6 +363,10 @@ puts YAML.dump("steps" => [
343363
DOCKER_COMPOSE_PLUGIN => {
344364
"build" => "base",
345365
"config" => ".buildkite/docker-compose.yml",
366+
"env" => [
367+
"PRE_STEPS",
368+
"RACK"
369+
],
346370
"image-name" => image_name_for(ruby, short: true),
347371
"cache-from" => [
348372
REBUILD_ID && "base:" + image_name_for(ruby, REBUILD_ID),

runner

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ set -e
55
dir="$1"
66
cmd="$2"
77

8+
if [ -n "$PRE_STEPS" ]; then
9+
echo
10+
echo "--- pre steps"
11+
eval "$PRE_STEPS"
12+
echo "+++ "
13+
fi
14+
815
echo
916
echo "--- bundle env"
1017
bundle env
@@ -16,5 +23,5 @@ fi
1623

1724
echo "+++ $dir: $cmd"
1825

19-
cd $dir
26+
cd "$dir"
2027
exec bundle exec /bin/sh -e -c "$cmd"

0 commit comments

Comments
 (0)