97 votes

Chaîne YAML multiligne pour GitLab CI (.gitlab-ci.yml)

Je suis en train d'essayer d'écrire un fichier gitlab-ci.yml qui utilise une chaîne multiligne pour la commande. Cependant, il semble que cela ne soit pas interprété. J'ai essayé à la fois - | et - > avec des résultats identiques.

étapes:
  - mystage

Construction:
  stage: mystage
  script:
    - |
        echo -e "
            echo 'salut';
            echo 'au revoir';
        "

Lorsqu'il essaie de s'exécuter, il ne montre que echo -e ' comme script à exécuter, et non toute la chaîne multiligne. Cela me pose des problèmes.

Quelle serait la syntaxe correcte pour écrire quelque chose comme ça?

0 votes

Il y a un problème pour cela : gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/166 Il n'est pas clair pour moi quel est le problème, puisque votre code devrait être équivalent (assez) au YAML des solutions proposées là-bas. Vous pourriez essayer d'ajouter \ à vos lignes, mais je ne peux pas dire si cela fonctionnera ou non.

0voto

Jobin James Points 522

Ce format fonctionnera. utilisez un scalaire simple (sans guillemets) dans YAML. Par exemple, le script utilisé pour initialiser le backend terraform

  before_script:
    - cd ${TF_ROOT}
    - terraform init -backend-config="address=${GITLAB_TF_ADDRESS}"
      -backend-config="lock_address=${GITLAB_TF_ADDRESS}/lock"
      -backend-config="unlock_address=${GITLAB_TF_ADDRESS}/lock"
      -backend-config="username=${GITLAB_USER_LOGIN}" -backend-config="password=${GITLAB_ACCESS_TOKEN}"
      -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE"
      -backend-config="retry_wait_min=5"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X