dkbuild: corriger le calcul de la dernière version d'une distribution
This commit is contained in:
parent
a56ec0e0f1
commit
85e77e4bda
34
dkbuild
34
dkbuild
|
@ -212,8 +212,9 @@ Exemple:
|
||||||
elif dist d9; then
|
elif dist d9; then
|
||||||
...
|
...
|
||||||
fi
|
fi
|
||||||
NB: ici, la version 3.1 est listée après la version 3.0 pour que l'image
|
Dans une même distribution, les versions doivent être ordonnées de la plus
|
||||||
construite aie le tag :latest
|
ancienne à la plus récente. ici, la version 3.1 est listée après la version 3.0
|
||||||
|
pour que l'image construite aie le tag :latest
|
||||||
|
|
||||||
Note: 'setdists' ne doit être utilisé qu'une seule fois. Les invocations
|
Note: 'setdists' ne doit être utilisé qu'une seule fois. Les invocations
|
||||||
suivantes sont ignorées.
|
suivantes sont ignorées.
|
||||||
|
@ -251,6 +252,8 @@ version. Exemple:
|
||||||
...
|
...
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Dans un même profil, les versions doivent être ordonnées de la plus ancienne à
|
||||||
|
la plus récente.
|
||||||
|
|
||||||
Si les distributions sont utilisées avec des versions, alors c'est une erreur de
|
Si les distributions sont utilisées avec des versions, alors c'est une erreur de
|
||||||
spécifier une version dans le profil
|
spécifier une version dans le profil
|
||||||
|
@ -1072,14 +1075,37 @@ function define_functions_env() {
|
||||||
SETVERSION_DONE=1
|
SETVERSION_DONE=1
|
||||||
}
|
}
|
||||||
function dist() {
|
function dist() {
|
||||||
local dist version
|
local dist version latest
|
||||||
for dist in "$@"; do
|
for dist in "$@"; do
|
||||||
[ "$dist" == LATEST ] && dist="${SETDISTS[0]}"
|
if [ "$dist" == LATEST ]; then
|
||||||
|
latest=1
|
||||||
|
continue
|
||||||
|
fi
|
||||||
parse_dist "$dist" dist version
|
parse_dist "$dist" dist version
|
||||||
[ "$dist" == "$DIST" ] || continue
|
[ "$dist" == "$DIST" ] || continue
|
||||||
[ -z "$version" -o "$version" == "$DVERSION" ] || continue
|
[ -z "$version" -o "$version" == "$DVERSION" ] || continue
|
||||||
return 0
|
return 0
|
||||||
done
|
done
|
||||||
|
if [ -n "$latest" ]; then
|
||||||
|
# trouver la dernière occurence de la première distribution
|
||||||
|
# mentionnée. en effet, les versions doivent être ordonnées de la
|
||||||
|
# plus ancienne à la plus récente.
|
||||||
|
local first_dist last_version
|
||||||
|
for dist in "${SETDISTS[@]}"; do
|
||||||
|
parse_dist "$dist" dist version
|
||||||
|
if [ -z "$first_dist" ]; then
|
||||||
|
first_dist="$dist"
|
||||||
|
last_version="$version"
|
||||||
|
elif [ "$dist" == "$first_dist" ]; then
|
||||||
|
last_version="$version"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ "$first_dist" == "$DIST" ]; then
|
||||||
|
if [ -z "$last_version" -o "$last_version" == "$DVERSION" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
function version() {
|
function version() {
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
setdists d11 d10
|
setdists d11 d10
|
||||||
setprofiles prod test
|
setprofiles prod test
|
||||||
|
|
||||||
if dist "#latest"; then
|
if dist LATEST; then
|
||||||
info "$DIST est la distribution la plus récente"
|
info "$DIST est la distribution la plus récente"
|
||||||
fi
|
fi
|
||||||
if profile "#default"; then
|
if profile DEFAULT; then
|
||||||
info "$PROFILE est le profil par défaut"
|
info "$PROFILE est le profil par défaut"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
setdists v1-d11 v2-d11 v1-d10
|
||||||
|
setenv IMAGE=dkbuild-tests/distversions
|
||||||
|
|
||||||
|
dockerfile
|
||||||
|
# -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
FROM scratch
|
||||||
|
ENV var=$DIST-$VERSION
|
||||||
|
build
|
||||||
|
|
||||||
|
info "vérifier les images construites avec
|
||||||
|
dk ls dkbuild-tests/distversions
|
||||||
|
on devrait avoir les images suivantes:
|
||||||
|
dkbuild-tests/distversions:v1-d10
|
||||||
|
dkbuild-tests/distversions:d10 -> v1-d10
|
||||||
|
dkbuild-tests/distversions:v1-d11
|
||||||
|
dkbuild-tests/distversions:v2-d11
|
||||||
|
dkbuild-tests/distversions:d11 -> v2-d11
|
||||||
|
dkbuild-tests/distversions:latest -> v2-d11
|
||||||
|
"
|
Loading…
Reference in New Issue