Backend: CI prefill variables do not show when included via CI_COMMIT_REF_NAME
Example 1
Example 2
Given a project who's path is "emoji-ops/gitlab-ci", and the following templates/workflows/default/template.yml file:
spec:
inputs:
PIPELINE_TYPE:
default: ""
---
variables:
PIPELINE_NAME: "Unnamed pipeline"
PIPELINE_TYPE:
value: "$[[ inputs.PIPELINE_TYPE ]]"
description: "Prefix to prepend to pipeline name."
And the following .gitlab-ci.yml
include:
- component: "gitlab.com/emoji-ops/gitlab-ci/templates/workflows/default@jle-initial-draft"
dummy:
stage: build
image: alpine
script:
- /bin/true
As expected, PIPELINE_TYPE is shown. Also, as expected, PIPELINE_NAME is hidden and will need a value + description to be visible.
But, if the .gitlab-ci.yml contains predefined variables, not even group nor project variables, then the variables will never be shown.
The edited .gitlab-ci.yml file:
include:
- component: "gitlab.com/emoji-ops/gitlab-ci/templates/workflows/default@${CI_COMMIT_REF_NAME}"
dummy:
stage: build
image: alpine
script:
- /bin/true
And the result is:
The result is the same no matter where the envvar is placed.
Why is this important?
- For one, the CI catalog project will most probably reference itself with component path
${CI_SERVER_HOST}/${CI_PROJECT_PATH}/templates/example@${CI_COMMIT_REF_NAME} - When forked/mirror on a different instance (my use case), and in the event you can't place the projet in the exact same project path as on
gitlab.com, it's easiest to create an instance variable such as CI_CATALOG_PATH and use it as:${CI_CATALOG_PATH}/templates/example@master
I consider this a bug, and the fix would be to take into account the predefined, instance, group and projet variables when displaying the editable pipeline variables.
Edited by Furkan Ayhan

