dkbuild: support dist none et tag LATEST

This commit is contained in:
Jephté Clain 2024-05-10 17:15:30 +04:00
parent c2cfd7739a
commit d1f77aa354
1 changed files with 22 additions and 3 deletions

25
dkbuild
View File

@ -224,9 +224,13 @@ construites. Une version est définie en ajoutant un préfixe à la distribution
La commande 'setdists' permet de lister explicitement les distributions valides La commande 'setdists' permet de lister explicitement les distributions valides
(et les versions associées le cas échéant). Si la distribution sélectionnée par (et les versions associées le cas échéant). Si la distribution sélectionnée par
l'utilisateur n'est pas dans la liste fournie, le script s'arrête sans erreur. l'utilisateur n'est pas dans la liste fournie, le script s'arrête sans erreur.
La première distribution listée est spéciale: c'est la distribution la plus La première distribution listée est spéciale: c'est la distribution la plus
récente, celle qui reçoit le tag :latest récente, celle qui reçoit le tag :latest
La distribution 'none' est spéciale aussi: elle n'est pas mentionnée dans les
tags automatiquement attribués aux images.
La commande 'dist' permet de tester si la distribution spécifiée en argument a La commande 'dist' permet de tester si la distribution spécifiée en argument a
été sélectionnée par l'utilisateur. L'argument 'LATEST' permet de tester la été sélectionnée par l'utilisateur. L'argument 'LATEST' permet de tester la
dernière distribution. dernière distribution.
@ -678,7 +682,8 @@ Les paramètres optionnels sont
* set-tag=TAGS... ou set-tags=TAGS... * set-tag=TAGS... ou set-tags=TAGS...
spécifier des tags à rajouter au nom de l'image, séparés par un espace. cette spécifier des tags à rajouter au nom de l'image, séparés par un espace. cette
liste remplace celle calculée automatiquement. ce paramètre est ignoré pour liste remplace celle calculée automatiquement. ce paramètre est ignoré pour
les noms d'images comportant un tag les noms d'images comportant un tag.
Utiliser le tag spécial LATEST pour rajouter :latest si c'est approprié
* add-tag=TAGS... ou add-tags=TAGS... * add-tag=TAGS... ou add-tags=TAGS...
spécifier des tags à rajouter à la liste calculée automatiquement, séparés par spécifier des tags à rajouter à la liste calculée automatiquement, séparés par
un espace. ce paramètre est ignoré pour les noms d'images comportant un tag un espace. ce paramètre est ignoré pour les noms d'images comportant un tag
@ -2043,6 +2048,14 @@ function define_functions_cmd() {
imagetags+=("$imagetag") imagetags+=("$imagetag")
else else
for tag in "${set_tags[@]}" "${add_tags[@]}"; do for tag in "${set_tags[@]}" "${add_tags[@]}"; do
if [ "$tag" == LATEST ]; then
if [ -n "$HAVE_VERSION" -a "$VERSION" == "$LAST_VERSION" ]; then
tag=latest
else
# ignorer le tag LATEST s'il n'est pas applicable
continue
fi
fi
imagetags+=("$imagetag:$tag") imagetags+=("$imagetag:$tag")
done done
fi fi
@ -2055,10 +2068,16 @@ function define_functions_cmd() {
imagetags+=("$imagetag") imagetags+=("$imagetag")
else else
for tag in "${add_tags[@]}"; do for tag in "${add_tags[@]}"; do
if [ "$tag" == LATEST ]; then
# toujours ignorer le tag LATEST dans add_tags
continue
fi
imagetags+=("$imagetag:$tag") imagetags+=("$imagetag:$tag")
done done
[ -n "$VERSION" ] && imagetags+=("$imagetag:$VERSION-$DIST") [ -n "$VERSION" ] && imagetags+=("$imagetag:$VERSION-$DIST")
[ -n "$DIST" -a -z "$HAVE_VERSION" ] && imagetags+=("$imagetag:$DIST") if [ -n "$DIST" -a "$DIST" != none -a -z "$HAVE_VERSION" ]; then
imagetags+=("$imagetag:$DIST")
fi
fi fi
done done
fi fi
@ -2067,7 +2086,7 @@ function define_functions_cmd() {
if [ -z "$HAVE_VERSION" ]; then if [ -z "$HAVE_VERSION" ]; then
dist LATEST && imagetags+=("$imagetag:latest") dist LATEST && imagetags+=("$imagetag:latest")
elif [ "$VERSION" == "$LAST_VERSION" ]; then elif [ "$VERSION" == "$LAST_VERSION" ]; then
imagetags+=("$imagetag:$DIST") [ "$DIST" != none ] && imagetags+=("$imagetag:$DIST")
dist LATEST && imagetags+=("$imagetag:latest") dist LATEST && imagetags+=("$imagetag:latest")
fi fi
elif [ -n "$PROFILE" ]; then elif [ -n "$PROFILE" ]; then