97 votes

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

Je cherche à écrire un fichier gitlab-ci.yml qui utilise une chaîne multi-lignes pour la commande. Cependant, il semble que cela ne soit pas analysé. J'ai essayé à la fois - | et - > avec des résultats identiques.

stages:
  - mystage

Build:
  stage: mystage
  script:
    - |
        echo -e "
            echo 'hi';
            echo 'bye';
        "

Lorsqu'il essaie de s'exécuter, il affiche seulement echo -e ' comme script à exécuter, et non toute la chaîne multi-lignes. 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 à ce sujet : 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 (suffisamment) en YAML par rapport aux solutions proposées là-bas. Vous pouvez essayer d'ajouter \ à la fin de vos lignes, mais je ne peux pas garantir si cela fonctionnera ou non.

0voto

Jobin James Points 522

Ce format fonctionnera. Utilisez un scalaire simple (sans guillemets) en 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