If-else条件ステートメントからカスタムGitlab CI変数を設定できるかどうかを知りたい。
私の.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
これはできますか?もしそうなら、私は何を見逃しましたか?ありがとう
これは予想される動作です。
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 を参照してください