dk: support build dans une image pour les projets composer
This commit is contained in:
parent
40d6605472
commit
ad44a1c2e5
130
dk
130
dk
|
@ -295,31 +295,62 @@ OPTIONS build
|
||||||
-g, --ug, --no-update-apps
|
-g, --ug, --no-update-apps
|
||||||
ne pas mettre à jour les dépôts dépendants. ces dépôts sont définis dans
|
ne pas mettre à jour les dépôts dépendants. ces dépôts sont définis dans
|
||||||
le fichier update-apps.conf qui a le format suivant:
|
le fichier update-apps.conf qui a le format suivant:
|
||||||
DEFAULT_DEVEL_SRCDIR=
|
## valeurs par défaut
|
||||||
DEFAULT_ORIGIN=
|
DEFAULT_DEVEL_SRCDIR= # répertoire de base des dépôts
|
||||||
DEFAULT_BRANCH=
|
DEFAULT_BRANCH= # branche par défaut pour les checkouts
|
||||||
DEFAULT_COMPOSER_ACTION=
|
DEFAULT_ORIGIN= # origine par défaut des branches
|
||||||
PROFILE_CLEAN= # fonction de nettoyage spécifique au profil
|
CLEAN= # fonction de nettoyage
|
||||||
CLEAN= # ou... fonction de nettoyage par défaut
|
APPS=() # applications à mettre à jour
|
||||||
APPS=() # applications à mettre à jour par défaut
|
## valeurs par défaut pour les projets composer
|
||||||
PROFILE_APPS=() # ou... spécifique au profil 'PROFILE'
|
COMPOSER_ACTION= # action projet composer (install|update|none)
|
||||||
app_URL= # url du dépôt
|
COMPOSER_ARGS=() # arguments de composer install|update
|
||||||
app_DEVEL_SRCDIR= # répertoire source du dépôt en mode devel
|
COMPOSER_PHP=
|
||||||
app_SRC= # répertoire/fichier source (si URL='')
|
COMPOSER_PHP_MAX=
|
||||||
app_DEST= # répertoire dans lequel faire le checkout
|
COMPOSER_IMAGE=
|
||||||
# ou destination si synchro avec app_SRC
|
COMPOSER_CMD=
|
||||||
app_NAME= # nom du répertoire dest si checkout; par
|
COMPOSER_SETUP=
|
||||||
# défaut prendre la valeur 'app'
|
## pour chaque application définie dans APPS
|
||||||
app_RSYNC_OPTS= # options de rsync si synchro (avec app_SRC
|
{app}_URL= # url du dépôt
|
||||||
# ou app_DEVEL_SRCDIR)
|
{app}_DEVEL_SRCDIR= # répertoire source du dépôt en mode devel
|
||||||
app_PROFILE_ORIGIN= # origine spécifique au profil 'PROFILE'
|
{app}_SRC= # répertoire/fichier source (si URL='')
|
||||||
app_ORIGIN= # ou... origine par défaut de la branche
|
{app}_DEST= # répertoire dans lequel faire le checkout
|
||||||
app_PROFILE_BRANCH= # branche spécifique au profil 'PROFILE'
|
# ou destination si synchro avec {app}_SRC
|
||||||
app_BRANCH= # ou... branche par défaut
|
{app}_NAME= # nom du répertoire dest si checkout; par
|
||||||
app_TYPE= # type de projet (composer|none)
|
# défaut prendre la valeur {app}
|
||||||
app_AFTER_UPDATE=() # liste de commandes à lancer après le checkout
|
{app}_RSYNC_OPTS= # options de rsync si synchro avec {app}_SRC
|
||||||
app_COMPOSER_ACTION= # action projet composer (install|update|none)
|
# ou {app}_DEVEL_SRCDIR
|
||||||
app_COMPOSER_ARGS=() # arguments de composer install|update
|
{app}_BRANCH= # branche à sélectionner pour le checkout
|
||||||
|
{app}_ORIGIN= # origine de la branche à sélectionner
|
||||||
|
{app}_TYPE= # type de projet (composer|none)
|
||||||
|
{app}_AFTER_UPDATE=() # liste de commandes à lancer après le checkout
|
||||||
|
# valeurs pour les projets composer. ces valeurs remplacent le cas
|
||||||
|
# échéant celles définies dans le fichier .composer.conf du projet
|
||||||
|
{app}_COMPOSER_ACTION=
|
||||||
|
{app}_COMPOSER_ARGS=()
|
||||||
|
{app}_COMPOSER_PHP=
|
||||||
|
{app}_COMPOSER_PHP_MAX=
|
||||||
|
{app}_COMPOSER_IMAGE=
|
||||||
|
{app}_COMPOSER_CMD=
|
||||||
|
{app}_COMPOSER_SETUP=
|
||||||
|
Certaines valeurs peuvent être valuées selon le profil
|
||||||
|
{profile}_CLEAN=
|
||||||
|
{profile}_APPS=()
|
||||||
|
{profile}_COMPOSER_ACTION=
|
||||||
|
{profile}_COMPOSER_ARGS=()
|
||||||
|
{profile}_COMPOSER_PHP=
|
||||||
|
{profile}_COMPOSER_PHP_MAX=
|
||||||
|
{profile}_COMPOSER_IMAGE=
|
||||||
|
{profile}_COMPOSER_CMD=
|
||||||
|
{profile}_COMPOSER_SETUP=
|
||||||
|
{app}_{profile}_ORIGIN=
|
||||||
|
{app}_{profile}_BRANCH=
|
||||||
|
{app}_{profile}_COMPOSER_ACTION=
|
||||||
|
{app}_{profile}_COMPOSER_ARGS=()
|
||||||
|
{app}_{profile}_COMPOSER_PHP=
|
||||||
|
{app}_{profile}_COMPOSER_PHP_MAX=
|
||||||
|
{app}_{profile}_COMPOSER_IMAGE=
|
||||||
|
{app}_{profile}_COMPOSER_CMD=
|
||||||
|
{app}_{profile}_COMPOSER_SETUP=
|
||||||
-u, --uu, --update-apps-only
|
-u, --uu, --update-apps-only
|
||||||
Ne faire que la mise à jour depuis les dépôts dépendants.
|
Ne faire que la mise à jour depuis les dépôts dépendants.
|
||||||
-w, --ww, --update-apps-devel
|
-w, --ww, --update-apps-devel
|
||||||
|
@ -340,7 +371,7 @@ VARIABLES de update-apps.conf
|
||||||
SRC
|
SRC
|
||||||
répertoire/fichier source, si URL n'est pas défini. si ce chemin est
|
répertoire/fichier source, si URL n'est pas défini. si ce chemin est
|
||||||
relatif, il doit être exprimé par rapport au répertoire du projet.
|
relatif, il doit être exprimé par rapport au répertoire du projet.
|
||||||
IMPORTANT: dans ce cas, DEST n'est pas le répertoire de base du
|
IMPORTANT: si SRC est définit, DEST n'est pas le répertoire de base du
|
||||||
checkout, mais le répertoire destination pour la synchro
|
checkout, mais le répertoire destination pour la synchro
|
||||||
DEVEL_SRCDIR
|
DEVEL_SRCDIR
|
||||||
répertoire source pour le mode devel. attention, il s'agit du répertoire
|
répertoire source pour le mode devel. attention, il s'agit du répertoire
|
||||||
|
@ -446,19 +477,23 @@ function docker_parse_build_args() {
|
||||||
sed -r 's/([^=]+)=(.*)/\1=\2; replace_build_args+=(--build-arg \1="$\1")/'
|
sed -r 's/([^=]+)=(.*)/\1=\2; replace_build_args+=(--build-arg \1="$\1")/'
|
||||||
}
|
}
|
||||||
function docker_parse_env_args() {
|
function docker_parse_env_args() {
|
||||||
[ -f .build.env ] && eval "$(docker_parse_build_args .build.env)"
|
[ -f .build.env ] && eval "$(docker_parse_build_args .build.env)" # DEPRECATED
|
||||||
[ -f build.env ] && eval "$(docker_parse_build_args build.env)"
|
[ -f build.env ] && eval "$(docker_parse_build_args build.env)"
|
||||||
[ -n "$PROFILE" -a -f ".build.$PROFILE.env" ] && eval "$(docker_parse_build_args ".build.$PROFILE.env")"
|
[ -f build.env.local ] && eval "$(docker_parse_build_args build.env.local)"
|
||||||
|
[ -n "$PROFILE" -a -f ".build.$PROFILE.env" ] && eval "$(docker_parse_build_args ".build.$PROFILE.env")" # DEPRECATED
|
||||||
[ -n "$PROFILE" -a -f "build.$PROFILE.env" ] && eval "$(docker_parse_build_args "build.$PROFILE.env")"
|
[ -n "$PROFILE" -a -f "build.$PROFILE.env" ] && eval "$(docker_parse_build_args "build.$PROFILE.env")"
|
||||||
|
[ -n "$PROFILE" -a -f "build.$PROFILE.env.local" ] && eval "$(docker_parse_build_args "build.$PROFILE.env.local")"
|
||||||
}
|
}
|
||||||
function docker_set_env_args() {
|
function docker_set_env_args() {
|
||||||
[ -f .build.env ] && source ./.build.env
|
[ -f .build.env ] && source ./.build.env # DEPRECATED
|
||||||
[ -f build.env ] && source ./build.env
|
[ -f build.env ] && source ./build.env
|
||||||
[ -n "$PROFILE" -a -f ".build.$PROFILE.env" ] && source "./.build.$PROFILE.env"
|
[ -f build.env.local ] && source ./build.env.local
|
||||||
|
[ -n "$PROFILE" -a -f ".build.$PROFILE.env" ] && source "./.build.$PROFILE.env" # DEPRECATED
|
||||||
[ -n "$PROFILE" -a -f "build.$PROFILE.env" ] && source "./build.$PROFILE.env"
|
[ -n "$PROFILE" -a -f "build.$PROFILE.env" ] && source "./build.$PROFILE.env"
|
||||||
|
[ -n "$PROFILE" -a -f "build.$PROFILE.env.local" ] && source "./build.$PROFILE.env.local"
|
||||||
}
|
}
|
||||||
function docker_check_name() {
|
function docker_check_name() {
|
||||||
[ -n "$NAME" ] || die "Vous devez définir NAME dans .build.env"
|
[ -n "$NAME" ] || die "Vous devez définir NAME dans build.env"
|
||||||
|
|
||||||
if [ "$1" == set_container_name ]; then
|
if [ "$1" == set_container_name ]; then
|
||||||
project_name="$NAME"
|
project_name="$NAME"
|
||||||
|
@ -754,8 +789,7 @@ function build_update_apps() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
etitle "Mise à jour des dépendances"
|
etitle "Mise à jour des dépendances"
|
||||||
local app var URL SRC DEVEL_SRCDIR DEST NAME have_RSYNC_OPTS RSYNC_OPTS ORIGIN BRANCH TYPE after_update after_updates composer_action
|
local app var URL SRC DEVEL_SRCDIR DEST NAME have_RSYNC_OPTS RSYNC_OPTS ORIGIN BRANCH TYPE after_update after_updates
|
||||||
local -a composer_args
|
|
||||||
for app in "${APPS[@]}"; do
|
for app in "${APPS[@]}"; do
|
||||||
etitle "$app"
|
etitle "$app"
|
||||||
|
|
||||||
|
@ -935,13 +969,27 @@ function build_update_apps() {
|
||||||
|
|
||||||
estep "Type de dépôt: $TYPE"
|
estep "Type de dépôt: $TYPE"
|
||||||
if [ "$TYPE" == composer ]; then
|
if [ "$TYPE" == composer ]; then
|
||||||
|
local cvname cvvalue
|
||||||
|
local composer_php composer_php_max composer_image composer_cmd composer_setup composer_action
|
||||||
|
local -a composer_vars composer_args
|
||||||
|
|
||||||
|
for cvname in composer_php composer_php_max composer_image composer_cmd composer_setup; do
|
||||||
|
cvvalue="${var}_${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"
|
||||||
|
[ -n "$cvvalue" ] || { cvvalue="${var}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
[ -n "$cvvalue" ] || { cvvalue="${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
[ -n "$cvvalue" ] || { cvvalue="${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
[ -n "$cvvalue" ] && composer_vars+=("${cvname^^}=$cvvalue")
|
||||||
|
done
|
||||||
|
|
||||||
composer_action="${var}_${PROFILE}_COMPOSER_ACTION"; composer_action="${!composer_action}"
|
composer_action="${var}_${PROFILE}_COMPOSER_ACTION"; composer_action="${!composer_action}"
|
||||||
[ -n "$composer_action" ] || { composer_action="${var}_COMPOSER_ACTION"; composer_action="${!composer_action}"; }
|
[ -n "$composer_action" ] || { composer_action="${var}_COMPOSER_ACTION"; composer_action="${!composer_action}"; }
|
||||||
[ -n "$composer_action" ] || composer_action="$DEFAULT_COMPOSER_ACTION"
|
[ -n "$composer_action" ] || { composer_action="${PROFILE}_COMPOSER_ACTION"; composer_action="${!composer_action}"; }
|
||||||
|
[ -n "$composer_action" ] || composer_action="$COMPOSER_ACTION"
|
||||||
|
|
||||||
composer_args="${var}_${PROFILE}_COMPOSER_ARGS"
|
composer_args="${var}_${PROFILE}_COMPOSER_ARGS"
|
||||||
is_defined "$composer_args" || composer_args="${var}_COMPOSER_ARGS"
|
is_defined "$composer_args" || composer_args="${var}_COMPOSER_ARGS"
|
||||||
is_defined "$composer_args" || composer_args="DEFAULT_COMPOSER_ARGS"
|
is_defined "$composer_args" || composer_args="${PROFILE}_COMPOSER_ARGS"
|
||||||
|
is_defined "$composer_args" || composer_args="COMPOSER_ARGS"
|
||||||
composer_args="${composer_args}[@]"; composer_args=("${!composer_args}")
|
composer_args="${composer_args}[@]"; composer_args=("${!composer_args}")
|
||||||
|
|
||||||
if [ -z "$BUILD_UPDATE_DEVEL" ]; then
|
if [ -z "$BUILD_UPDATE_DEVEL" ]; then
|
||||||
|
@ -955,7 +1003,7 @@ function build_update_apps() {
|
||||||
setx cwd=pwd
|
setx cwd=pwd
|
||||||
cd "$DEST"
|
cd "$DEST"
|
||||||
estep "Installation des dépendances composer"
|
estep "Installation des dépendances composer"
|
||||||
auto_composer "$composer_action" "${composer_args[@]}" || { eend; return 1; }
|
auto_composer "${composer_vars[@]}" "$composer_action" "${composer_args[@]}" || { eend; return 1; }
|
||||||
cd "$cwd"
|
cd "$cwd"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -1826,7 +1874,7 @@ function auto_composer() {
|
||||||
local COMPOSER_CMD=
|
local COMPOSER_CMD=
|
||||||
local COMPOSER_SETUP=
|
local COMPOSER_SETUP=
|
||||||
[ -f .composer.conf ] && source ./.composer.conf
|
[ -f .composer.conf ] && source ./.composer.conf
|
||||||
# les premiers arguments peuvent service à redéfinir les variables
|
# les premiers arguments peuvent servir à redéfinir les variables
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
COMPOSER_PHP=*) setv "$1"; shift;;
|
COMPOSER_PHP=*) setv "$1"; shift;;
|
||||||
|
@ -1840,7 +1888,9 @@ function auto_composer() {
|
||||||
done
|
done
|
||||||
|
|
||||||
local use_image
|
local use_image
|
||||||
if [ -n "$COMPOSER_PHP_MAX" -a "$COMPOSER_PHP_MAX" != none ]; then
|
if [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
|
||||||
|
use_image=1
|
||||||
|
elif [ -n "$COMPOSER_PHP_MAX" -a "$COMPOSER_PHP_MAX" != none ]; then
|
||||||
# Vérifier la version de PHP
|
# Vérifier la version de PHP
|
||||||
php -r '
|
php -r '
|
||||||
$version = $argv[1];
|
$version = $argv[1];
|
||||||
|
@ -1856,8 +1906,6 @@ exit((PHP_VERSION_ID > $version)? 0: 1);
|
||||||
elif [ -z "$COMPOSER_PHP" ]; then
|
elif [ -z "$COMPOSER_PHP" ]; then
|
||||||
# pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE
|
# pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE
|
||||||
[ "$COMPOSER_IMAGE" != none ] && use_image=1
|
[ "$COMPOSER_IMAGE" != none ] && use_image=1
|
||||||
elif [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
|
|
||||||
use_image=1
|
|
||||||
else
|
else
|
||||||
# Vérifier la version de PHP
|
# Vérifier la version de PHP
|
||||||
php -r '
|
php -r '
|
||||||
|
@ -1966,7 +2014,7 @@ fi
|
||||||
|
|
||||||
DEFAULT_PROFILE=devel
|
DEFAULT_PROFILE=devel
|
||||||
# pour le moment ne pas lancer composer dans un container par défaut
|
# pour le moment ne pas lancer composer dans un container par défaut
|
||||||
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/apache-php-myiccas-utils:d10
|
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/phpbuilder
|
||||||
PROFILE=
|
PROFILE=
|
||||||
DM_ALIASES=()
|
DM_ALIASES=()
|
||||||
DM_PROFILES=()
|
DM_PROFILES=()
|
||||||
|
|
Loading…
Reference in New Issue