diff --git a/buildSrc/src/main/groovy/net/corda/testing/ImageBuilding.groovy b/buildSrc/src/main/groovy/net/corda/testing/ImageBuilding.groovy index 3a4bec9d4c..e7df1d4370 100644 --- a/buildSrc/src/main/groovy/net/corda/testing/ImageBuilding.groovy +++ b/buildSrc/src/main/groovy/net/corda/testing/ImageBuilding.groovy @@ -9,6 +9,7 @@ import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage import com.bmuschko.gradle.docker.tasks.image.DockerCommitImage import com.bmuschko.gradle.docker.tasks.image.DockerPushImage import com.bmuschko.gradle.docker.tasks.image.DockerTagImage +import org.gradle.api.GradleException import org.gradle.api.Plugin import org.gradle.api.Project @@ -29,8 +30,9 @@ class ImageBuilding implements Plugin { } DockerCreateContainer createBuildContainer = project.tasks.create('createBuildContainer', DockerCreateContainer) { - File gradleDir = new File((System.getProperty("java.io.tmpdir") + File.separator + "gradle")) - File mavenDir = new File((System.getProperty("java.io.tmpdir") + File.separator + "maven")) + File baseWorkingDir = new File(System.getProperty("docker.work.dir") ? System.getProperty("docker.work.dir") : System.getProperty("java.io.tmpdir")) + File gradleDir = new File(baseWorkingDir, "gradle") + File mavenDir = new File(baseWorkingDir, "maven") doFirst { if (!gradleDir.exists()) { gradleDir.mkdirs() @@ -59,6 +61,11 @@ class ImageBuilding implements Plugin { DockerWaitContainer waitForBuildContainer = project.tasks.create('waitForBuildContainer', DockerWaitContainer) { dependsOn logBuildContainer targetContainerId createBuildContainer.getContainerId() + doLast { + if (getExitCode() != 0) { + throw new GradleException("Failed to build docker image, aborting build") + } + } } DockerCommitImage commitBuildImageResult = project.tasks.create('commitBuildImageResult', DockerCommitImage) { diff --git a/buildSrc/src/main/groovy/net/corda/testing/KubesTest.groovy b/buildSrc/src/main/groovy/net/corda/testing/KubesTest.groovy index d51eae9f2d..f49198a51e 100644 --- a/buildSrc/src/main/groovy/net/corda/testing/KubesTest.groovy +++ b/buildSrc/src/main/groovy/net/corda/testing/KubesTest.groovy @@ -48,11 +48,12 @@ class KubesTest extends DefaultTask { throw new GradleException("Apache Commons compress has not be loaded, this can happen if running from within intellj - please select \"delegate to gradle\" for build and test actions") } - def gitSha = new BigInteger(project.hasProperty("corda_revision") ? project.property("corda_revision").toString() : "0", 36) - def buildId = System.hasProperty("buildId") ? System.getProperty("buildId") : "UNKNOWN_BUILD" - def currentUser = System.hasProperty("user.name") ? System.getProperty("user.name") : "UNKNOWN_USER" + def buildId = System.getProperty("buildId") ? System.getProperty("buildId") : + (project.hasProperty("corda_revision") ? project.property("corda_revision").toString() : "0") - String stableRunId = new BigInteger(64, new Random(gitSha.intValue() + buildId.hashCode() + currentUser.hashCode())).toString(36).toLowerCase() + def currentUser = System.getProperty("user.name") ? System.getProperty("user.name") : "UNKNOWN_USER" + + String stableRunId = new BigInteger(64, new Random(buildId.hashCode() + currentUser.hashCode())).toString(36).toLowerCase() String suffix = new BigInteger(64, new Random()).toString(36).toLowerCase() io.fabric8.kubernetes.client.Config config = new io.fabric8.kubernetes.client.ConfigBuilder() diff --git a/buildSrc/src/main/groovy/net/corda/testing/ListTests.groovy b/buildSrc/src/main/groovy/net/corda/testing/ListTests.groovy index ea66bf3074..126a1d89bf 100644 --- a/buildSrc/src/main/groovy/net/corda/testing/ListTests.groovy +++ b/buildSrc/src/main/groovy/net/corda/testing/ListTests.groovy @@ -42,7 +42,6 @@ class ListTests extends DefaultTask { FileCollection scanClassPath List allTests - def getTestsForFork(int fork, int forks, Integer seed) { def gitSha = new BigInteger(project.hasProperty("corda_revision") ? project.property("corda_revision").toString() : "0", 36) if (fork >= forks) { @@ -66,7 +65,7 @@ class ListTests extends DefaultTask { .collect { c -> (c.getSubclasses() + Collections.singletonList(c)) } .flatten() .collect { ClassInfo c -> - c.getMethodInfo().filter { m -> m.hasAnnotation("org.junit.Test") }.collect { m -> c.name + "." + m.name } + c.getMethodInfo().filter { m -> m.hasAnnotation("org.junit.Test") }.collect { m -> c.name + "." + m.name + "*" } }.flatten() .toSet() diff --git a/buildSrc/src/main/java/net/corda/testing/KubesReporting.java b/buildSrc/src/main/java/net/corda/testing/KubesReporting.java index 460fae4422..b54e73759d 100644 --- a/buildSrc/src/main/java/net/corda/testing/KubesReporting.java +++ b/buildSrc/src/main/java/net/corda/testing/KubesReporting.java @@ -30,7 +30,6 @@ import org.gradle.api.tasks.TaskAction; import org.gradle.api.tasks.testing.Test; import org.gradle.internal.logging.ConsoleRenderer; import org.gradle.internal.operations.BuildOperationExecutor; -import org.gradle.internal.operations.BuildOperationFailure; import javax.inject.Inject; import java.io.File; @@ -51,6 +50,11 @@ public class KubesReporting extends DefaultTask { private List results = new ArrayList(); List podResults = new ArrayList<>(); + public KubesReporting() { + //force this task to always run, as it's responsible for parsing exit codes + getOutputs().upToDateWhen(t -> false); + } + @Inject protected BuildOperationExecutor getBuildOperationExecutor() { throw new UnsupportedOperationException();