Merge pull request #92934 from hercules-ci/dockerTools-set-imageTag
dockerTools: Always set imageTag attribute
This commit is contained in:
commit
c1908bf802
@ -30,8 +30,45 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
|||||||
)
|
)
|
||||||
|
|
||||||
docker.succeed("docker run --rm ${examples.bash.imageName} bash --version")
|
docker.succeed("docker run --rm ${examples.bash.imageName} bash --version")
|
||||||
|
# Check imageTag attribute matches image
|
||||||
|
docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.bash.imageTag}'")
|
||||||
docker.succeed("docker rmi ${examples.bash.imageName}")
|
docker.succeed("docker rmi ${examples.bash.imageName}")
|
||||||
|
|
||||||
|
# The remaining combinations
|
||||||
|
with subtest("Ensure imageTag attribute matches image"):
|
||||||
|
docker.succeed(
|
||||||
|
"docker load --input='${examples.bashNoTag}'"
|
||||||
|
)
|
||||||
|
docker.succeed(
|
||||||
|
"docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTag.imageTag}'"
|
||||||
|
)
|
||||||
|
docker.succeed("docker rmi ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag}")
|
||||||
|
|
||||||
|
docker.succeed(
|
||||||
|
"docker load --input='${examples.bashNoTagLayered}'"
|
||||||
|
)
|
||||||
|
docker.succeed(
|
||||||
|
"docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagLayered.imageTag}'"
|
||||||
|
)
|
||||||
|
docker.succeed("docker rmi ${examples.bashNoTagLayered.imageName}:${examples.bashNoTagLayered.imageTag}")
|
||||||
|
|
||||||
|
docker.succeed(
|
||||||
|
"${examples.bashNoTagStreamLayered} | docker load"
|
||||||
|
)
|
||||||
|
docker.succeed(
|
||||||
|
"docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagStreamLayered.imageTag}'"
|
||||||
|
)
|
||||||
|
docker.succeed(
|
||||||
|
"docker rmi ${examples.bashNoTagStreamLayered.imageName}:${examples.bashNoTagStreamLayered.imageTag}"
|
||||||
|
)
|
||||||
|
|
||||||
|
docker.succeed(
|
||||||
|
"docker load --input='${examples.nixLayered}'"
|
||||||
|
)
|
||||||
|
docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.nixLayered.imageTag}'")
|
||||||
|
docker.succeed("docker rmi ${examples.nixLayered.imageName}")
|
||||||
|
|
||||||
|
|
||||||
with subtest(
|
with subtest(
|
||||||
"Check if the nix store is correctly initialized by listing "
|
"Check if the nix store is correctly initialized by listing "
|
||||||
"dependencies of the installed Nix binary"
|
"dependencies of the installed Nix binary"
|
||||||
|
@ -442,6 +442,7 @@ rec {
|
|||||||
in
|
in
|
||||||
runCommand "${name}.tar.gz" {
|
runCommand "${name}.tar.gz" {
|
||||||
inherit (stream) imageName;
|
inherit (stream) imageName;
|
||||||
|
passthru = { inherit (stream) imageTag; };
|
||||||
buildInputs = [ pigz ];
|
buildInputs = [ pigz ];
|
||||||
} "${stream} | pigz -nT > $out";
|
} "${stream} | pigz -nT > $out";
|
||||||
|
|
||||||
@ -517,6 +518,11 @@ rec {
|
|||||||
layerClosure = writeReferencesToFile layer;
|
layerClosure = writeReferencesToFile layer;
|
||||||
passthru.buildArgs = args;
|
passthru.buildArgs = args;
|
||||||
passthru.layer = layer;
|
passthru.layer = layer;
|
||||||
|
passthru.imageTag =
|
||||||
|
if tag != null
|
||||||
|
then lib.toLower tag
|
||||||
|
else
|
||||||
|
lib.head (lib.strings.splitString "-" (baseNameOf result.outPath));
|
||||||
# Docker can't be made to run darwin binaries
|
# Docker can't be made to run darwin binaries
|
||||||
meta.badPlatforms = lib.platforms.darwin;
|
meta.badPlatforms = lib.platforms.darwin;
|
||||||
} ''
|
} ''
|
||||||
@ -737,6 +743,11 @@ rec {
|
|||||||
conf = runCommand "${name}-conf.json" {
|
conf = runCommand "${name}-conf.json" {
|
||||||
inherit maxLayers created;
|
inherit maxLayers created;
|
||||||
imageName = lib.toLower name;
|
imageName = lib.toLower name;
|
||||||
|
passthru.imageTag =
|
||||||
|
if tag != null
|
||||||
|
then tag
|
||||||
|
else
|
||||||
|
lib.head (lib.strings.splitString "-" (baseNameOf conf.outPath));
|
||||||
paths = referencesByPopularity overallClosure;
|
paths = referencesByPopularity overallClosure;
|
||||||
buildInputs = [ jq ];
|
buildInputs = [ jq ];
|
||||||
} ''
|
} ''
|
||||||
@ -792,6 +803,7 @@ rec {
|
|||||||
'';
|
'';
|
||||||
result = runCommand "stream-${name}" {
|
result = runCommand "stream-${name}" {
|
||||||
inherit (conf) imageName;
|
inherit (conf) imageName;
|
||||||
|
passthru = { inherit (conf) imageTag; };
|
||||||
buildInputs = [ makeWrapper ];
|
buildInputs = [ makeWrapper ];
|
||||||
} ''
|
} ''
|
||||||
makeWrapper ${streamScript} $out --add-flags ${conf}
|
makeWrapper ${streamScript} $out --add-flags ${conf}
|
||||||
|
@ -364,4 +364,22 @@ rec {
|
|||||||
created = "now";
|
created = "now";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# buildImage without explicit tag
|
||||||
|
bashNoTag = pkgs.dockerTools.buildImage {
|
||||||
|
name = "bash-no-tag";
|
||||||
|
contents = pkgs.bashInteractive;
|
||||||
|
};
|
||||||
|
|
||||||
|
# buildLayeredImage without explicit tag
|
||||||
|
bashNoTagLayered = pkgs.dockerTools.buildLayeredImage {
|
||||||
|
name = "bash-no-tag-layered";
|
||||||
|
contents = pkgs.bashInteractive;
|
||||||
|
};
|
||||||
|
|
||||||
|
# buildImage without explicit tag
|
||||||
|
bashNoTagStreamLayered = pkgs.dockerTools.streamLayeredImage {
|
||||||
|
name = "bash-no-tag-stream-layered";
|
||||||
|
contents = pkgs.bashInteractive;
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user