Skip to content

Commit f4bd42e

Browse files
committed
Pad numeric suffixes for env arrays for proper sorting
1 parent 41ea45b commit f4bd42e

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

lib/job.jsonnet

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ local allowedEnvs = std.set(
2929

3030
local identity = function(f) f;
3131

32+
local numberSuffix(s) =
33+
local t = std.split(s, '_');
34+
std.format('%05s', t[std.length(t) - 1]);
35+
3236
function(jobName, agentEnv={}, stepEnvFile='', patchFunc=identity) patchFunc({
3337
local buildSubPath = std.join('/', [
3438
env.BUILDKITE_AGENT_NAME,
@@ -93,7 +97,7 @@ function(jobName, agentEnv={}, stepEnvFile='', patchFunc=identity) patchFunc({
9397
name: kv[0],
9498
value: kv[1],
9599
}
96-
for f in std.sort(std.objectFields(env))
100+
for f in std.sort(std.objectFields(env), numberSuffix)
97101
if std.startsWith(f, 'BUILDKITE_PLUGIN_K8S_ENVIRONMENT_')
98102
&& !std.startsWith(f, 'BUILDKITE_PLUGIN_K8S_ENVIRONMENT_FROM_SECRET')
99103
],
@@ -232,8 +236,8 @@ function(jobName, agentEnv={}, stepEnvFile='', patchFunc=identity) patchFunc({
232236
command: ['/bin/sh', '-c'],
233237
args: [env.BUILDKITE_COMMAND],
234238
} else {
235-
command: [env[f] for f in std.sort(std.objectFields(env)) if std.startsWith(f, 'BUILDKITE_PLUGIN_K8S_ENTRYPOINT_')],
236-
args: [env[f] for f in std.sort(std.objectFields(env)) if std.startsWith(f, 'BUILDKITE_PLUGIN_K8S_COMMAND_')],
239+
command: [env[f] for f in std.sort(std.objectFields(env), numberSuffix) if std.startsWith(f, 'BUILDKITE_PLUGIN_K8S_ENTRYPOINT_')],
240+
args: [env[f] for f in std.sort(std.objectFields(env), numberSuffix) if std.startsWith(f, 'BUILDKITE_PLUGIN_K8S_COMMAND_')],
237241
},
238242

239243
local deadline = std.parseInt(env.BUILDKITE_TIMEOUT) * 60,

0 commit comments

Comments
 (0)