diff --git a/CHANGES.md b/CHANGES.md index 3ec10ba..591adeb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,13 @@ +## Version 11.0.0 du 05/09/2023-14:29 + +* `ddfbc00` maj des images par défaut dk et dkbuild +* `e33f2a5` ajout registry privé +* `f245e17` image par défaut en prod +* `efe31b8` support java17 +* `5cb4112` dkbuild: bug profil unitaire +* `f424f41` dkbuild: -u n'implique plus -b +* `e5a1473` dkbuild: implémenter -u + ## Version 10.0.0 du 12/08/2023-21:06 * `bfdf9b5` support système sans python2 diff --git a/VERSION.txt b/VERSION.txt index a13e7b9..275283a 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -10.0.0 +11.0.0 diff --git a/dk b/dk index 90712bd..c072cf8 100755 --- a/dk +++ b/dk @@ -2414,6 +2414,20 @@ fi [ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose) DEFAULT_PROFILE=devel +case "$PROFILE" in +jclain) + REGISTRY=docker.jclain.fr + PRIVAREG=docker.jclain.fr + ;; +devel) + REGISTRY=docker.devel.self + PRIVAREG=docker.devel.self + ;; +prod|test|*) + REGISTRY=pubdocker.univ-reunion.fr + PRIVAREG=pridocker.univ-reunion.fr + ;; +esac PROFILE= DM_ALIASES=() DM_PROFILES=() @@ -2421,13 +2435,14 @@ CLUSTERDIRS=() DEFAULT_DEVEL_SRCDIR="$HOME/wop" COMPOSER_DEVEL_SRCDIR="$HOME/wop/php" MAVEN_DEVEL_SRCDIR="$HOME/wop/sn" -DEFAULT_COMPOSER_IMAGE=docker.univ-reunion.fr/image/phpbuilder -DEFAULT_MAVEN_IMAGE=docker.univ-reunion.fr/image/javabuilder +DEFAULT_COMPOSER_IMAGE="$REGISTRY/image/phpbuilder:d11" +DEFAULT_MAVEN_IMAGE="$REGISTRY/image/javabuilder:d11" DEFAULT_HOST_MAPPINGS=() prod_HOST_MAPPINGS=( - docker.univ-reunion.fr:10.82.70.154 - repos.univ-reunion.fr:10.82.70.246 - git.univ-reunion.fr:10.82.70.247 + pridocker.univ-reunion.fr:10.85.1.56 + pubdocker.univ-reunion.fr:10.85.1.57 + repos.univ-reunion.fr:10.85.1.57 + git.univ-reunion.fr:10.85.1.55 ) test_HOST_MAPPINGS=("${prod_HOST_MAPPINGS[@]}") set_defaults dk diff --git a/dkbuild b/dkbuild index 21f91a5..43e6e5d 100755 --- a/dkbuild +++ b/dkbuild @@ -9,10 +9,10 @@ TEMPLATEDIR="$scriptdir/lib/dkbuild/templates" [ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose) function get_default_phpbuilder_image() { - echo "${REGISTRY:-docker.univ-reunion.fr}/image/phpbuilder:${DIST:-d11}" + echo "${REGISTRY:-pubdocker.univ-reunion.fr}/image/phpbuilder:${DIST:-d11}" } function get_default_javabuilder_image() { - echo "${REGISTRY:-docker.univ-reunion.fr}/image/javabuilder:d11" + echo "${REGISTRY:-pubdocker.univ-reunion.fr}/image/javabuilder:d11" } ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -111,10 +111,18 @@ $scriptname build [OPTIONS] [BUILDVARS...] Spécifier la valeur d'un argument de build. Cette valeur remplace la valeur par défaut spécifiée dans le fichier de build. + -u, --clean-update + Avant de faire le build, faire un clean, suivi de git pull. C'est la + méthode préférée pour mettre à jour le dépôt s'il y a des fichiers + synchronisé avec la commande 'copy', parce que sinon les fichiers + sources (mis à jour par git pull) sont désynchronisés d'avec les + fichiers destination. --clone-src-only - Ne faire que cloner les dépôts sources + Ne faire que cloner les dépôts sources mentionnés avec la commande + 'checkout' --update-src-only - Ne faire que mettre à jour les dépôts sources + Ne faire que mettre à jour les dépôts sources mentionnés avec la + commande 'checkout' --update-src Avec la commande 'checkout', mettre à jour les dépôts avant de faire le build. C'est la valeur par défaut. @@ -125,7 +133,8 @@ $scriptname build [OPTIONS] [BUILDVARS...] Ne pas mettre à jour le dépôt, préférer la synchronisation depuis la version de développement d'un dépôt -s, --sync-src - Avec la commande 'copy', effectuer la mise à jour des fichiers + Avec la commande 'copy', effectuer la mise à jour des fichiers. C'est la + valeur par défaut si on construit l'image --no-sync-src Ne pas mettre à jour les fichiers. La commande 'copy' devient un NOP si le fichier destination existe. @@ -133,7 +142,7 @@ $scriptname build [OPTIONS] [BUILDVARS...] Construire les images --no-cache Ne pas utiliser le cache lors du build - -u, --pull-image + -U, --pull-image Essayer de récupérer une version plus récente de l'image source -p, --push-image Pousser les images construites vers la registry @@ -1418,12 +1427,14 @@ function resolve_dists_profiles() { } load_dkbuild + local MANUAL_SETPROFILES= if [ -z "$SETPROFILES_DONE" -a -n "$PROFILE" ]; then # Si l'utilisateur spécifie un profil mais qu'aucun profil n'a été # défini dans la configuration, considérer que c'est cet unique profil # qui a été défini SETPROFILES=("$PROFILE") SETPROFILES_DONE=1 + MANUAL_SETPROFILES=1 fi ## ensuite vérifier si on est dans la bonne distribution @@ -1490,6 +1501,10 @@ function resolve_dists_profiles() { } load_dkbuild + if [ -n "$MANUAL_SETPROFILES" ]; then + setprofiles "$PROFILE" + fi + ## Si pas de distribution ou de profil, remplacer par valeur vide if [ ${#DISTS[*]} -eq 0 ]; then SETDISTS=("") @@ -2771,12 +2786,16 @@ function build_action() { eval "$SHARED_LOCALS1; $SHARED_LOCALS2" local action=build local machine + local clean_update clean_opt=-X local clone_src_only update_src_only update_src sync_src local build no_cache pull_image local push_image local -a args; args=( "${SHARED_ARGS1[@]}" "${SHARED_ARGS2[@]}" -m:,--machine: machine= + -u,--clean-update clean_update=1 + -X,--clean-ignored clean_opt=-X + -x,--clean-untracked clean_opt=-x --clone-src-only clone_src_only=1 --update-src-only update_src_only=1 --update-src update_src=1 @@ -2786,7 +2805,7 @@ function build_action() { --no-sync-src sync_src=no -b,--build build=1 --no-cache no_cache=1 - -u,--pull-image pull_image=1 + -U,--pull-image pull_image=1 -p,--push-image push_image=1 ) parse_args "$@"; set -- "${args[@]}" @@ -2799,7 +2818,7 @@ function build_action() { action=build [ -n "$update_src" ] || update_src=1 [ "$update_src" == no ] && update_src= - if [ -z "$sync_src" -a -z "$build" -a -z "$push_image" ]; then + if [ -z "$clean_update" -a -z "$sync_src" -a -z "$build" -a -z "$push_image" ]; then sync_src=1 build=1 fi @@ -2815,6 +2834,17 @@ function build_action() { setarg "${TMPARGS[@]}" setarg "$@" + if [ -n "$clean_update" ]; then + edebug "clean" + _clean_git_clean -f || die + + edebug "update" + git pull || die + + edebug "sync" + [ -n "$build" ] && sync_src=1 + fi + case "$action" in clone_src) die "Pas encore implémenté" #XXX @@ -2870,7 +2900,7 @@ function _build_after() { ## clean function _clean_git_clean() { - LANG=C git clean -d $opt "$@" | + LANG=C git clean -d $clean_opt "$@" | grep -vE '^(Would skip|Skipping) ' | sed -r 's/^Would remove //' } @@ -2882,16 +2912,16 @@ function _clean_git_status() { function clean_action() { eval "$SHARED_LOCALS1" - local opt=-X all= + local clean_opt=-X all= local -a args; args=( "${SHARED_ARGS1[@]}" - -X,--ignored opt=-X - -x,--untracked opt=-x + -X,--ignored clean_opt=-X + -x,--untracked clean_opt=-x -a,--all all=1 ) parse_args "$@"; set -- "${args[@]}" - [ -n "$all" ] && opt=-x + [ -n "$all" ] && clean_opt=-x edebug "clean_action" ensure_projdir diff --git a/lib/default/dk b/lib/default/dk index 156c98d..d39ef14 100644 --- a/lib/default/dk +++ b/lib/default/dk @@ -20,10 +20,27 @@ #MAVEN_DEVEL_SRCDIR="$HOME/wop/sn" # Image à utiliser pour les builds -#DEFAULT_COMPOSER_IMAGE=docker.univ-reunion.fr/image/phpbuilder:d10 -#DEFAULT_MAVEN_IMAGE=docker.univ-reunion.fr/image/javabuilder:d10 +#DEFAULT_COMPOSER_IMAGE=pubdocker.univ-reunion.fr/image/phpbuilder:d11 +#DEFAULT_MAVEN_IMAGE=pubdocker.univ-reunion.fr/image/javabuilder:d11 # Mappings d'hôtes à activer pour les builds à base d'image #DEFAULT_HOST_MAPPINGS=() -#prod_HOST_MAPPINGS=(docker.univ-reunion.fr:10.82.70.154 repos.univ-reunion.fr:10.82.70.246 git.univ-reunion.fr:10.82.70.247) +#prod_HOST_MAPPINGS=(pridocker.univ-reunion.fr:10.85.1.56 pubdocker.univ-reunion.fr:10.85.1.57 repos.univ-reunion.fr:10.85.1.57 git.univ-reunion.fr:10.85.1.55) #test_HOST_MAPPINGS=("${prod_HOST_MAPPINGS}") + +#case "$PROFILE" in +#jclain) +# REGISTRY=docker.jclain.fr +# PRIVAREG=docker.jclain.fr +# ;; +#devel) +# REGISTRY=docker.devel.self +# PRIVAREG=docker.devel.self +# ;; +#prod|test|*) +# REGISTRY=pubdocker.univ-reunion.fr +# PRIVAREG=pridocker.univ-reunion.fr +# ;; +#esac +#: ${DEFAULT_COMPOSER_IMAGE:=$REGISTRY/image/phpbuilder:d11} +#: ${DEFAULT_MAVEN_IMAGE:=$REGISTRY/image/javabuilder:d11} diff --git a/lib/dkbuild/dot-dkbuild.env b/lib/dkbuild/dot-dkbuild.env index 3b5b03f..3ee2788 100644 --- a/lib/dkbuild/dot-dkbuild.env +++ b/lib/dkbuild/dot-dkbuild.env @@ -1,8 +1,11 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 if profile jclain; then setenv REGISTRY=docker.jclain.fr + setenv PRIVAREG=docker.jclain.fr elif profile prod test; then - setenv REGISTRY=docker.univ-reunion.fr + setenv REGISTRY=pubdocker.univ-reunion.fr + setenv PRIVAREG=pridocker.univ-reunion.fr else setenv REGISTRY=docker.devel.self + setenv PRIVAREG=docker.devel.self fi diff --git a/lib/dkbuild/templates/image/dkbuild.env b/lib/dkbuild/templates/image/dkbuild.env index f24dcb1..d0b36d4 100644 --- a/lib/dkbuild/templates/image/dkbuild.env +++ b/lib/dkbuild/templates/image/dkbuild.env @@ -1,3 +1,3 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -setenv REGISTRY=docker.univ-reunion.fr +setenv REGISTRY=pubdocker.univ-reunion.fr setenv IMAGE=$REGISTRY/GROUP/NAME diff --git a/lib/dkbuild/templates/php/dkbuild.env b/lib/dkbuild/templates/php/dkbuild.env index 31ee4d9..aff19ce 100644 --- a/lib/dkbuild/templates/php/dkbuild.env +++ b/lib/dkbuild/templates/php/dkbuild.env @@ -1,4 +1,4 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -setenv REGISTRY=docker.univ-reunion.fr +setenv REGISTRY=pubdocker.univ-reunion.fr setenv IMAGE=$REGISTRY/GROUP/NAME setenv DIST=d11 diff --git a/lib/dkbuild/templates/php_db/dkbuild.env b/lib/dkbuild/templates/php_db/dkbuild.env index 31ee4d9..aff19ce 100644 --- a/lib/dkbuild/templates/php_db/dkbuild.env +++ b/lib/dkbuild/templates/php_db/dkbuild.env @@ -1,4 +1,4 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -setenv REGISTRY=docker.univ-reunion.fr +setenv REGISTRY=pubdocker.univ-reunion.fr setenv IMAGE=$REGISTRY/GROUP/NAME setenv DIST=d11 diff --git a/lib/dkbuild/tests/test-config b/lib/dkbuild/tests/test-config index 6b7b95d..c6299e6 100644 --- a/lib/dkbuild/tests/test-config +++ b/lib/dkbuild/tests/test-config @@ -1,9 +1,9 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -setenv REGISTRY=docker.univ-reunion.fr +setenv REGISTRY=pubdocker.univ-reunion.fr setenv IMAGE=$REGISTRY/group/name info "IMAGE=$IMAGE" -if [ "$REGISTRY" == docker.univ-reunion.fr ]; then +if [ "$REGISTRY" == pubdocker.univ-reunion.fr ]; then note "\ Essayer de relancer avec $(qvals dkbuild -j "$(relpath "$DKBUILD")" -c registry.env) diff --git a/lib/ulib/java b/lib/ulib/java index 16f80bb..89df1b6 100644 --- a/lib/ulib/java +++ b/lib/ulib/java @@ -15,6 +15,7 @@ JAVA_VMS6=(); JAVA_HOMES6=() JAVA_VMS7=(); JAVA_HOMES7=() JAVA_VMS8=(); JAVA_HOMES8=() JAVA_VMS11=(); JAVA_HOMES11=() +JAVA_VMS17=(); JAVA_HOMES17=() # versions locales 32 bits JAVA32_VMS1_3=(); JAVA32_HOMES1_3=() JAVA32_VMS1_4=(); JAVA32_HOMES1_4=() @@ -23,12 +24,14 @@ JAVA32_VMS6=(); JAVA32_HOMES6=() JAVA32_VMS7=(); JAVA32_HOMES7=() JAVA32_VMS8=(); JAVA32_HOMES8=() JAVA32_VMS11=(); JAVA32_HOMES11=() +JAVA32_VMS17=(); JAVA32_HOMES17=() # versions locales 64 bits JAVA64_VMS5=(); JAVA64_HOMES5=() JAVA64_VMS6=(); JAVA64_HOMES6=() JAVA64_VMS7=(); JAVA64_HOMES7=() JAVA64_VMS8=(); JAVA64_HOMES8=() JAVA64_VMS11=(); JAVA64_HOMES11=() +JAVA64_VMS17=(); JAVA64_HOMES17=() # version sélectionnée SELECTED_JAVA_VM=; SELECTED_JAVA_HOME= SELECTED_JAVA=; SELECTED_JAVAC= @@ -109,6 +112,14 @@ function __java_compute_vms() { __java_add HOMES8 "$HOME/opt/jvm64/$vm" 64 fi done + array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk17)" + for vm in "${vms[@]}"; do + v="${vm#jdk}" + if [ "$v" == 17 ]; then + __java_add VMS17 "$vm" 64 + __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64 + fi + done array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)" for vm in "${vms[@]}"; do v="${vm#jdk}" @@ -142,6 +153,11 @@ function __java_compute_vms() { __java_add VMS11 "$vm" 64 __java_add HOMES11 "$HOME/opt/jvm64/$vm" 64 done + array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk-17.*" | LANG=C sort -r)" + for vm in "${vms[@]}"; do + __java_add VMS17 "$vm" 64 + __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64 + done # Puis chercher dans les JVMs installées manuellement dans ~/opt array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")" for vm in "${vms[@]}"; do @@ -171,6 +187,14 @@ function __java_compute_vms() { __java_add HOMES11 "$HOME/opt/$vm" fi done + array_from_lines vms "$(list_dirs "$HOME/opt" jdk17)" + for vm in "${vms[@]}"; do + v="${vm#jdk}" + if [ "$v" == 17 ]; then + __java_add VMS17 "$vm" + __java_add HOMES17 "$HOME/opt/$vm" + fi + done array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)" for vm in "${vms[@]}"; do __java_add VMS1_4 "$vm" @@ -201,6 +225,11 @@ function __java_compute_vms() { __java_add VMS11 "$vm" __java_add HOMES11 "$HOME/opt/$vm" done + array_from_lines vms "$(list_dirs "$HOME/opt" "jdk-17.*" | LANG=C sort -r)" + for vm in "${vms[@]}"; do + __java_add VMS17 "$vm" + __java_add HOMES17 "$HOME/opt/$vm" + done # Puis chercher dans les JVMs installées manuellement dans /opt array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")" for vm in "${vms[@]}"; do @@ -230,6 +259,14 @@ function __java_compute_vms() { __java_add HOMES11 "/opt/$vm" fi done + array_from_lines vms "$(list_dirs "/opt" jdk17)" + for vm in "${vms[@]}"; do + v="${vm#jdk}" + if [ "$v" == 17 ]; then + __java_add VMS17 "$vm" + __java_add HOMES17 "/opt/$vm" + fi + done array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)" for vm in "${vms[@]}"; do __java_add VMS1_4 "$vm" @@ -260,6 +297,11 @@ function __java_compute_vms() { __java_add VMS11 "$vm" __java_add HOMES11 "/opt/$vm" done + array_from_lines vms "$(list_dirs "/opt" "jdk-17.*" | LANG=C sort -r)" + for vm in "${vms[@]}"; do + __java_add VMS17 "$vm" + __java_add HOMES17 "/opt/$vm" + done # Puis chercher dans les JVMs installées par le système dans # /usr/lib/jvm if check_sysinfos -d gentoo; then @@ -312,6 +354,9 @@ function __java_compute_vms() { elif [ "$v" == 11 ]; then __java_add VMS11 "$vm" __java_add HOMES11 "/usr/lib/jvm/$vm" + elif [ "$v" == 17 ]; then + __java_add VMS17 "$vm" + __java_add HOMES17 "/usr/lib/jvm/$vm" fi done if [ -d /usr/lib/j2sdk1.4-sun ]; then @@ -353,7 +398,7 @@ function __java_compute_vms() { function __java_dump_vms() { local v b i vms homes - for v in 1_3 1_4 5 6 7 8 11; do + for v in 1_3 1_4 5 6 7 8 11 17; do for b in "" 32 64; do vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}") homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}") @@ -384,7 +429,7 @@ function __java_select_vms() { } function __java_select() { - # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8 ou 11) + # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17) # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits # ou 64bits selon ce qui est disponible. @@ -428,7 +473,7 @@ function __java_select() { function __java_select_default() { # Sélectionner la version de java par défaut. Si JAVA_HOME est défini, - # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11 puis 1_4 + # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17 puis 1_4 # la version 1_3 n'est jamais sélectionnée automatiquement if [ -n "$JAVA_HOME" ]; then export JAVA_HOME # s'assurer que cette variable est exportée @@ -440,7 +485,7 @@ function __java_select_default() { return 0 fi local vm - for vm in 5 6 7 8 11 1_4; do + for vm in 5 6 7 8 11 17 1_4; do __java_select "$vm" && return 0 done return 1 @@ -448,7 +493,7 @@ function __java_select_default() { function select_java() { # sélectionner la version *minimum* de java correspondant à $1 - # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+ + # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+|17|17+ # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # version 32bits ou 64 bits local v vms homes @@ -489,14 +534,19 @@ function select_java() { __java_select "$v" "$2" && return 0 done ;; + 17|17+) + for v in 17; do + __java_select "$v" "$2" && return 0 + done + ;; esac return 1 } function select_java_exact() { # sélectionner la version *exacte* de java correspondant à $1 - # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11 pour une correspondance exacte - # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+ pour une version minimum + # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11|17 pour une correspondance exacte + # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+ pour une version minimum # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # version 32bits ou 64 bits local v vms homes @@ -558,6 +608,14 @@ function select_java_exact() { __java_select "$v" "$2" && return 0 done ;; + 17) + __java_select 17 "$2" && return 0 + ;; + 17+) + for v in 17; do + __java_select "$v" "$2" && return 0 + done + ;; esac return 1 } @@ -566,9 +624,9 @@ function select_java_any() { # Sélectionner la version exacte de java correspondant aux arguments, dans # l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la # valeur actuelle de JAVA_HOME, si elle est définie. - # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 1.4" + # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 1.4" local v - [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 1.4 + [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 1.4 for v in "$@"; do if [ "$v" == DEFAULT ]; then if [ -n "$JAVA_HOME" ]; then