From 14c9b0b7f563fcef07625b9220f0efa93514e855 Mon Sep 17 00:00:00 2001 From: Tobias Gesellchen Date: Sat, 13 Nov 2021 20:12:05 +0100 Subject: [PATCH] Fix ImageId retrieval (search from the end of the list of build-infos) Relates to https://github.com/gesellix/docker-client/issues/58 Relates to https://github.com/gesellix/gradle-docker-plugin/issues/62 --- .../de/gesellix/docker/remote/api/client/ImageApi.kt | 7 ++++--- .../de/gesellix/docker/remote/api/client/ImageApiTest.java | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) 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));