0

if-else条件文からカスタムGitlab CI変数を設定できるかどうかを知りたいです。私は、次のを持っている私の.gitlab-ci.ymlファイルで.gitlab-ci.yml変数の条件の使い方は?

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 

はこれを行うことができますか?もしそうなら、私は何を逃したのですか?ありがとう

答えて

1

これは予期される動作です。

CI_COMMIT_TAGは、gitlabジョブの値にのみ設定されます。 〜からhttps://docs.gitlab.com/ee/ci/variables/README.html

CI_COMMIT_TAG - コミットタグ名。建物タグの場合のみ表示する

したがって、varibalesセクションのCI_COMMIT_TAGは定義されていないため、 ""と同じです。

タグを定義しているジョブでCI_COMMIT_TAGを使用する場合は、 https://docs.gitlab.com/ee/ci/yaml/README.html#tags