Usar a expansão de parâmetros do Shell dentro do bloco de variáveis de .gitlab-ci.yaml não está resolvendo o valor padrão.
Exemplo:
my_job:
extends: .template
variables:
OPTS: >-
-tag=${CI_COMMIT_TAG:-NO_TAG}
-url=${CI_PIPELINE_URL}
A parte do script se parece com isso (e é fornecida via extends
)
.template:
script:
- cmd ${OPTS}
O problema é que -tag
está sempre vazio quando CI_COMMIT_TAG não está definido, mas deveria ser "NO_TAG" neste exemplo.
Uma possível solução seria definir OPTS em script
ou before_script
, mas isso é algo que quero evitar aqui por causa das extensões e somente as variáveis devem ser definidas.
Tentei encontrar uma solução online para, de alguma forma, escapar da ${parameter:-word}
parte na parte variável para deixar o bash "analisá-la" em vez do pipeline. Mas sem sucesso.
Existe uma maneira de fazer isso funcionar ou minha única opção é definir a variável "OPTS" dentro de um script?