Variables 如何将commit中的值作为变量传递给GitLab CI管道?

Variables 如何将commit中的值作为变量传递给GitLab CI管道?,variables,continuous-integration,gitlab,gitlab-ci,pipeline,Variables,Continuous Integration,Gitlab,Gitlab Ci,Pipeline,我需要动态地将值传递给GitLab CI管道,以便将值进一步传递给作业。问题是:值不能存储在代码中,不需要管道重新配置(例如,我可以在.gitlab ci.yml的“变量”部分传递值,但这意味着在代码中存储值,“ci/CD设置”的“环境变量”部分的更改意味着手动重新配置)。此外,分支名称也不能用于此目的 它不是一个秘密字符串,而是一个修改管道执行的关键字。 那么,我该怎么做呢?您没有指定此值的来源 您说“将值从提交传递到…” 如果是关于提交本身的一些元信息,请查看 有很多名为CI\u COMMI

我需要动态地将值传递给GitLab CI管道,以便将值进一步传递给作业。问题是:值不能存储在代码中,不需要管道重新配置(例如,我可以在
.gitlab ci.yml
的“变量”部分传递值,但这意味着在代码中存储值,“ci/CD设置”的“环境变量”部分的更改意味着手动重新配置)。此外,分支名称也不能用于此目的

它不是一个秘密字符串,而是一个修改管道执行的关键字。
那么,我该怎么做呢?

您没有指定此值的来源

您说“将值从提交传递到…”
如果是关于提交本身的一些元信息,请查看
有很多名为
CI\u COMMIT.*
的变量可能适合您

但是,, 如果您在一个作业的管道中生成某个值,并希望传递给另一个作业,则情况不同。 有一个长期存在的请求,但仍未执行

目前的解决方法是使用工件-文件分阶段在作业之间传递信息。
我们的用例是从
pom.xml
中提取Java应用程序版本,并稍后将其传递给一些打包作业。
下面是我们在
.gitlab ci.yml
中的实现方法:

...
variables:
  VARIABLES_FILE: ./variables.txt  # "." is required for image that have sh not bash

...

get-version:
  stage: prepare
  image: ...
  script:
    - APP_VERSION=...
    - echo "export APP_VERSION=$APP_VERSION" > $VARIABLES_FILE
  artifacts:
    paths:
      - $VARIABLES_FILE
...
package:
  stage: package
  image: ...
  script:
    - source $VARIABLES_FILE
    - echo "Use env var APP_VERSION here as you like ..."

不,它不是在作业之间,而是在提交期间。来源-我考虑过分支的标记,但我并没有找到检查标记内容(不是它的存在)的方法。它可以是开发者端的env变量,也可以是git命令参数或类似的东西,但不应提交给repo。@Putnik解决方案正在将任何文本传递给下一阶段。如果您能找到任何有助于解决上述问题的内容,请用答案更新问题。