Skip to content

Commit b2dbfef

Browse files
committed
switch to explicit env var for labels
1 parent 6385574 commit b2dbfef

File tree

3 files changed

+66
-13
lines changed

3 files changed

+66
-13
lines changed

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/TransportVersionGenerationFuncTest.groovy

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@ package org.elasticsearch.gradle.internal.transport
1111

1212
import org.elasticsearch.gradle.Version
1313
import org.elasticsearch.gradle.VersionProperties
14+
import org.elasticsearch.gradle.fixtures.WiremockFixture
1415
import org.gradle.testkit.runner.BuildResult
1516
import org.gradle.testkit.runner.TaskOutcome
1617

18+
import java.nio.charset.StandardCharsets
19+
1720
class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTest {
1821

1922
def runGenerateAndValidateTask(String... additionalArgs) {
@@ -24,6 +27,11 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
2427
return gradleRunner(args.toArray())
2528
}
2629

30+
def runGenerateAndValidateWithLabels(String... labels) {
31+
String labelsStr = String.join(System.lineSeparator(), List.of(labels));
32+
return runGenerateAndValidateTask().withEnvironment(Map.of("PULL_REQUEST_LABELS", labelsStr));
33+
}
34+
2735
def runGenerateTask(String... additionalArgs) {
2836
List<String> args = new ArrayList<>()
2937
args.add(":myserver:generateTransportVersionDefinition")
@@ -402,4 +410,57 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
402410
assertReferableDefinition("new_tv", "9001000")
403411
assertUpperBound(releaseBranch, "new_tv,9001000")
404412
}
413+
414+
def "branch from pr targeting main"() {
415+
given:
416+
referencedTransportVersion("new_tv")
417+
418+
when:
419+
def result = runGenerateAndValidateWithLabels("v9.2.0").build()
420+
421+
then:
422+
assertGenerateAndValidateSuccess(result)
423+
assertReferableDefinition("new_tv", "8124000")
424+
assertUpperBound("9.2", "new_tv,8124000")
425+
}
426+
427+
def "branch from pr for backport"() {
428+
given:
429+
referencedTransportVersion("new_tv")
430+
431+
when:
432+
def result = runGenerateAndValidateWithLabels("v9.2.0", "v9.1.2").build()
433+
434+
then:
435+
assertGenerateAndValidateSuccess(result)
436+
assertReferableDefinition("new_tv", "8124000,8012002")
437+
assertUpperBound("9.2", "new_tv,8124000")
438+
assertUpperBound("9.1", "new_tv,8012002")
439+
}
440+
441+
def "branch from pr with other labels"() {
442+
given:
443+
referencedTransportVersion("new_tv")
444+
445+
when:
446+
def result = runGenerateAndValidateWithLabels(">test", "v9.2.0", ":Core/Infra/Core").build()
447+
448+
then:
449+
assertGenerateAndValidateSuccess(result)
450+
assertReferableDefinition("new_tv", "8124000")
451+
assertUpperBound("9.2", "new_tv,8124000")
452+
}
453+
454+
def "branch from pr default to main"() {
455+
given:
456+
referencedTransportVersion("new_tv")
457+
458+
when:
459+
def result = runGenerateAndValidateWithLabels(">test", ":Core/Infra/Core").build()
460+
461+
then:
462+
assertGenerateAndValidateSuccess(result)
463+
assertReferableDefinition("new_tv", "8124000")
464+
assertUpperBound("9.2", "new_tv,8124000")
465+
}
405466
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/GenerateTransportVersionDefinitionTask.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -165,23 +165,13 @@ private Set<String> getTargetReleaseBranches() {
165165
// Look for env var indicating github PR link from CI.
166166
// Use github api to find current labels, filter down to version labels.
167167
// Map version labels to branches.
168-
String prUrl = System.getenv("BUILDKITE_PULL_REQUEST");
169-
if (prUrl == null) {
168+
String prLabels = System.getenv("PULL_REQUEST_LABELS");
169+
if (prLabels == null) {
170170
throw new RuntimeException("When running outside CI, --branches must be specified");
171171
}
172172

173-
ByteArrayOutputStream output = new ByteArrayOutputStream();
174-
ExecResult result = execOperations.exec(spec -> {
175-
spec.setCommandLine(List.of("gh", "pr", "view", prUrl, "--json", "labels", "--jq", ".labels[].name"));
176-
spec.setErrorOutput(output);
177-
spec.setStandardOutput(output);
178-
spec.setIgnoreExitValue(true);
179-
});
180-
if (result.getExitValue() != 0) {
181-
throw new RuntimeException("Failed to get labels from github API:\n" + output);
182-
}
183173
Set<String> targetReleaseBranches = new HashSet<>();
184-
for (String label : output.toString().split(System.lineSeparator())) {
174+
for (String label : prLabels.split(System.lineSeparator())) {
185175
if (label.startsWith("v") == false) {
186176
continue;
187177
}

build-tools/src/testFixtures/groovy/org/elasticsearch/gradle/fixtures/AbstractGradleFuncTest.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,13 @@ abstract class AbstractGradleFuncTest extends Specification {
202202

203203
void execute(String command, File workingDir = testProjectDir.root) {
204204
def proc = command.execute(Collections.emptyList(), workingDir)
205+
System.out.println(command)
205206
proc.waitFor()
206207
if (proc.exitValue()) {
207208
System.err.println("Error running command ${command}:")
208209
System.err.println("Syserr: " + proc.errorStream.text)
209210
}
211+
System.out.println("Output: " + proc.inputStream.text)
210212
}
211213

212214
File dir(String path) {

0 commit comments

Comments
 (0)