diff --git a/src/ru/pulsar/jenkins/library/steps/Bdd.groovy b/src/ru/pulsar/jenkins/library/steps/Bdd.groovy index dbd805e..59d8652 100644 --- a/src/ru/pulsar/jenkins/library/steps/Bdd.groovy +++ b/src/ru/pulsar/jenkins/library/steps/Bdd.groovy @@ -5,6 +5,7 @@ import ru.pulsar.jenkins.library.configuration.JobConfiguration import ru.pulsar.jenkins.library.ioc.ContextRegistry import ru.pulsar.jenkins.library.utils.FileUtils import ru.pulsar.jenkins.library.utils.Logger +import ru.pulsar.jenkins.library.utils.PortPicker import ru.pulsar.jenkins.library.utils.VRunner class Bdd implements Serializable { @@ -38,8 +39,7 @@ class Bdd implements Serializable { def coverageOpts = config.coverageOptions; if (options.coverage) { - ServerSocket s = new ServerSocket(0) - steps.start("${coverageOpts.dbgsPath} --addr=127.0.0.1 --port=${s.getLocalPort().toString()}") + steps.start("${coverageOpts.dbgsPath} --addr=127.0.0.1 --port=${PortPicker.port()}") steps.start("${coverageOpts.coverage41CPath} start -i DefAlias -u http://127.0.0.1:1550 -P $workspaceDir -s $srcDir -o build/out/bdd-coverage.xml") } diff --git a/src/ru/pulsar/jenkins/library/steps/SmokeTest.groovy b/src/ru/pulsar/jenkins/library/steps/SmokeTest.groovy index 6682b8b..61ccc57 100644 --- a/src/ru/pulsar/jenkins/library/steps/SmokeTest.groovy +++ b/src/ru/pulsar/jenkins/library/steps/SmokeTest.groovy @@ -6,6 +6,7 @@ import ru.pulsar.jenkins.library.configuration.JobConfiguration import ru.pulsar.jenkins.library.ioc.ContextRegistry import ru.pulsar.jenkins.library.utils.FileUtils import ru.pulsar.jenkins.library.utils.Logger +import ru.pulsar.jenkins.library.utils.PortPicker import ru.pulsar.jenkins.library.utils.StringJoiner import ru.pulsar.jenkins.library.utils.VRunner @@ -105,8 +106,7 @@ class SmokeTest implements Serializable { def coverageOpts = config.coverageOptions; if (options.coverage) { - ServerSocket s = new ServerSocket(0) - steps.start("${coverageOpts.dbgsPath} --addr=127.0.0.1 --port=${s.getLocalPort().toString()}") + steps.start("${coverageOpts.dbgsPath} --addr=127.0.0.1 --port=${PortPicker.port()}") steps.start("${coverageOpts.coverage41CPath} start -i DefAlias -u http://127.0.0.1:1550 -P $workspaceDir -s $srcDir -o build/out/smoketest-coverage.xml") } diff --git a/src/ru/pulsar/jenkins/library/utils/PortPicker.java b/src/ru/pulsar/jenkins/library/utils/PortPicker.java new file mode 100644 index 0000000..ab6efb6 --- /dev/null +++ b/src/ru/pulsar/jenkins/library/utils/PortPicker.java @@ -0,0 +1,14 @@ +package ru.pulsar.jenkins.library.utils; + +import com.cloudbees.groovy.cps.NonCPS; + +import java.io.IOException; +import java.net.ServerSocket; + +public class PortPicker { + @NonCPS + static int port() throws IOException { + int result = new ServerSocket(0).getLocalPort(); + return result; + } +}