web-dev-qa-db-fra.com

Comment utiliser les conditions dans les variables .gitlab-ci.yml?

Je veux savoir s'il est possible de définir une variable CI Gitlab personnalisée à partir d'une déclaration de condition if-else.

Dans mon .gitlab-ci.yml fichier J'ai les éléments suivants:

variables:
    PROJECT_VERSION: (if [ "${CI_COMMIT_TAG}" == "" ]; then "${CI_COMMIT_REF_NAME}-${CI_PIPELINE_ID}"; else ${CI_COMMIT_TAG}; fi);

Trying to set project version:
    image: php:7.1-cli
    stage: test
    script:
        # this echoes correct string (eg. "master-2794")
        - (if [ "${CI_COMMIT_TAG}" == "" ]; then echo "${CI_COMMIT_REF_NAME}-${CI_PIPELINE_ID}"; else echo ${CI_COMMIT_TAG}; fi);
        # this echoes something like "(if [ "" == "" ]; then "master-2794"; else ; fi);"
        - echo $PROJECT_VERSION

Cela peut-il être fait? Si oui, qu'ai-je manqué? Merci

12
WellBloud

Cela devrait se produire.

CI_COMMIT_TAG est uniquement défini sur une valeur dans un travail gitlab. De https://docs.gitlab.com/ee/ci/variables/README.html

CI_COMMIT_TAG - Le nom de la balise de validation. Présent uniquement lors de la création de balises

Par conséquent, dans la section varibalesCI_COMMIT_TAG n'est pas défini, donc égal à "".

Donc, si vous souhaitez utiliser CI_COMMIT_TAG utiliser dans le travail où les balises sont définies. Voir https://docs.gitlab.com/ee/ci/yaml/README.html#tags

9
Kalpa Gunarathna