Les tests CI/CD s’exécutent correctement sur la machine de dev en invoquant localement gitlab-runner voir note débogage en local des scripts d'intégration continue.
Lorsque les modification sont poussées sur le dépôt distant, le runner mutualisé lance l'exécution des tests CI/CD mais échoue avec l'erreur
Preparing environment Running on nucleus... ERROR: Job failed: prepare environment: exit status 1. Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information
Vérifier la présence de la directive shell dans le fichier de configuration du runner,
. . . [[runners]] . . . executor = "shell" shell = "bash"
Si ce n'est pas le cas, ajouter la directive et redémarrer le service
systemctl restart gitlab-runner.service
Dans la plupart des cas, l'erreur se produit lorsque le script .bash_logout de l'utilisateur gitlab-runner contient des instructions d'effacement de la console:
Ici les instructions ont été commentées
# ~/.bash_logout: executed by bash(1) when login shell exits. # when leaving the console clear the screen to increase privacy #if [ "$SHLVL" = 1 ]; then # [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q #fi