From 333835a339f0b3991eefcbb5773413fb1775a514 Mon Sep 17 00:00:00 2001 From: Vladimir Petko Date: Tue, 8 Oct 2024 09:54:46 +1300 Subject: [PATCH] fix: tag the image in push rock --- .../canonical/rockcraft/builder/RockBuilder.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/rockcraft/src/main/java/com/canonical/rockcraft/builder/RockBuilder.java b/rockcraft/src/main/java/com/canonical/rockcraft/builder/RockBuilder.java index a05f671..25d0ac6 100644 --- a/rockcraft/src/main/java/com/canonical/rockcraft/builder/RockBuilder.java +++ b/rockcraft/src/main/java/com/canonical/rockcraft/builder/RockBuilder.java @@ -62,7 +62,7 @@ public static void pushRock(RockProjectSettings settings, RockcraftOptions optio String imageVersion = String.valueOf(rockcraft.get(IRockcraftNames.ROCKCRAFT_VERSION)); Path rockDestPath = settings.getRockOutput().resolve(IRockcraftNames.ROCK_OUTPUT); for (File file : rockDestPath.toFile().listFiles((dir, file) -> file.endsWith(".rock"))) { - copyInDocker(file, imageName); + copyInDocker(file, imageName, imageVersion); } } @@ -96,7 +96,7 @@ public static void buildRock(RockProjectSettings settings, RockcraftOptions opti } } - private static void copyInDocker(File ociImage, String imageName) throws IOException, InterruptedException { + private static void copyInDocker(File ociImage, String imageName, String imageVersion) throws IOException, InterruptedException { ProcessBuilder pb = new ProcessBuilder("rockcraft.skopeo", "copy", String.format("oci-archive:%s", ociImage.getAbsolutePath()), @@ -106,6 +106,15 @@ private static void copyInDocker(File ociImage, String imageName) throws IOExcep Process process = pb.start(); int result = process.waitFor(); if (result != 0) - throw new UnsupportedOperationException("Failed to copy " + ociImage.getAbsolutePath() + " to docker image " + imageName); + throw new UnsupportedOperationException("Failed to copy " + ociImage.getAbsolutePath() + " to docker image " + String.format("%s:latest", imageName)); + + pb = new ProcessBuilder("docker", "tag", imageName, + String.format("%s:%s", imageName, imageVersion)) + .directory(ociImage.getParentFile()) + .inheritIO(); + process = pb.start(); + result = process.waitFor(); + if (result != 0) + throw new UnsupportedOperationException("Failed to tag " + String.format("%s:%s", imageName, imageVersion)); } }