From 3a8f22ea55bd47aa7aac60f62278f47a33d17cb3 Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Sat, 11 Dec 2021 14:48:25 +0100 Subject: [PATCH] [Core] Replace create-meta with ci-environment (#2438) closes: #2434 --- CHANGELOG.md | 1 + bom/pom.xml | 6 +-- core/pom.xml | 2 +- .../runtime/CucumberExecutionContext.java | 38 ++++++++++++++++++- 4 files changed, 41 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83cd6b7dab..9e46c3fd8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). doc string types. ### Changed +* [Core] Replaced `create-meta` dependency with `ci-environment` ([#2438](https://github.com/cucumber/cucumber-jvm/pull/2438) M.P. Korstanje) ### Deprecated diff --git a/bom/pom.xml b/bom/pom.xml index bee475e3b7..610a58baa1 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -12,7 +12,7 @@ Cucumber-JVM: Bill of Materials - 6.0.4 + 7.0.1 13.0.1 4.1.0 17.0.0 @@ -54,8 +54,8 @@ io.cucumber - create-meta - ${create-meta.version} + ci-environment + ${ci-environment.version} io.cucumber diff --git a/core/pom.xml b/core/pom.xml index d6c365c2e9..2ed992cc92 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -83,7 +83,7 @@ io.cucumber - create-meta + ci-environment org.apiguardian diff --git a/core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java b/core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java index 438072e192..895904d70d 100644 --- a/core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java +++ b/core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java @@ -1,11 +1,17 @@ package io.cucumber.core.runtime; +import io.cucumber.cienvironment.CiEnvironment; import io.cucumber.core.eventbus.EventBus; import io.cucumber.core.gherkin.Feature; import io.cucumber.core.logging.Logger; import io.cucumber.core.logging.LoggerFactory; import io.cucumber.core.runner.Runner; +import io.cucumber.messages.ProtocolVersion; +import io.cucumber.messages.types.Ci; import io.cucumber.messages.types.Envelope; +import io.cucumber.messages.types.Git; +import io.cucumber.messages.types.Meta; +import io.cucumber.messages.types.Product; import io.cucumber.plugin.event.Result; import io.cucumber.plugin.event.Status; import io.cucumber.plugin.event.TestRunFinished; @@ -18,8 +24,8 @@ import java.util.ResourceBundle; import java.util.function.Consumer; +import static io.cucumber.cienvironment.DetectCiEnvironment.detectCiEnvironment; import static io.cucumber.core.exception.ExceptionUtils.printStackTrace; -import static io.cucumber.createmeta.CreateMeta.createMeta; import static io.cucumber.messages.TimeConversion.javaInstantToTimestamp; import static java.util.Collections.singletonList; @@ -48,10 +54,38 @@ public void startTestRun() { private void emitMeta() { Envelope envelope = new Envelope(); - envelope.setMeta(createMeta("cucumber-jvm", VERSION, System.getenv())); + envelope.setMeta(createMeta()); bus.send(envelope); } + private Meta createMeta() { + return new Meta( + ProtocolVersion.getVersion(), + new Product("cucumber-jvm", VERSION), + new Product(System.getProperty("java.vm.name"), System.getProperty("java.vm.version")), + new Product(System.getProperty("os.name"), null), + new Product(System.getProperty("os.arch"), null), + createCi()); + } + + private Ci createCi() { + CiEnvironment ciEnvironment = detectCiEnvironment(System.getenv()); + if (ciEnvironment == null) { + return null; + } + + CiEnvironment.Git git = ciEnvironment.getGit(); + return new Ci( + ciEnvironment.getName(), + ciEnvironment.getUrl(), + ciEnvironment.getBuildNumber(), + new Git( + git.getRemote(), + git.getRevision(), + git.getBranch(), + git.getTag())); + } + private void emitTestRunStarted() { log.debug(() -> "Sending run test started event"); start = bus.getInstant();