diff --git a/api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ImageApi.kt b/api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ImageApi.kt index 14633259..a5740c3f 100644 --- a/api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ImageApi.kt +++ b/api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ImageApi.kt @@ -270,19 +270,20 @@ class ImageApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, pro } fun getImageId(buildInfos: List): ImageID? { - val firstAux = buildInfos.stream() + val reversedInfos = buildInfos.reversed() + val firstAux = reversedInfos.stream() .filter { (_, _, _, _, _, _, _, aux): BuildInfo -> aux != null } .findFirst() if (firstAux.isPresent) { return firstAux.get().aux } else { - val idFromStream = buildInfos.stream() + val idFromStream = reversedInfos.stream() .filter { (_, stream): BuildInfo -> stream?.contains("Successfully built ")!! } .findFirst() return if (idFromStream.isPresent) { ImageID(idFromStream.get().stream!!.removePrefix("Successfully built ").replaceAfter('\n', "").trim()) } else { - val tagFromStream = buildInfos.stream() + val tagFromStream = reversedInfos.stream() .filter { (_, stream): BuildInfo -> stream?.contains("Successfully tagged ")!! } .findFirst() tagFromStream.map { (_, stream): BuildInfo -> diff --git a/api-client/src/test/java/de/gesellix/docker/remote/api/client/ImageApiTest.java b/api-client/src/test/java/de/gesellix/docker/remote/api/client/ImageApiTest.java index 32ff0a41..7e3c9f13 100644 --- a/api-client/src/test/java/de/gesellix/docker/remote/api/client/ImageApiTest.java +++ b/api-client/src/test/java/de/gesellix/docker/remote/api/client/ImageApiTest.java @@ -24,6 +24,7 @@ public void setup() { public void getImageIdFromAux() { List infos = new ArrayList<>(); infos.add(new BuildInfo(null, null, null, null, null, null, null, new ImageID("sha256:expected-id"))); + infos.add(new BuildInfo(null, "Successfully built the wind\ncaught it", null, null, null, null, null, null)); infos.add(new BuildInfo(null, "Successfully built f9d5f290d048\nfoo bar", null, null, null, null, null, null)); infos.add(new BuildInfo(null, "Successfully tagged image:tag\nbar baz", null, null, null, null, null, null)); @@ -35,6 +36,7 @@ public void getImageIdFromAux() { @Test public void getImageIdFromStreamWithBuildMessage() { List infos = new ArrayList<>(); + infos.add(new BuildInfo(null, "Successfully built the wind\ncaught it", null, null, null, null, null, null)); infos.add(new BuildInfo(null, "Successfully built f9d5f290d048\nfoo bar", null, null, null, null, null, null)); infos.add(new BuildInfo(null, "Successfully tagged image:tag\nbar baz", null, null, null, null, null, null));