Gitlab Yaml 不能正常工作 工作需要
Posted
技术标签:
【中文标题】Gitlab Yaml 不能正常工作 工作需要【英文标题】:Gitlab Yamls does not works properly Job needs 【发布时间】:2021-12-05 11:25:19 【问题描述】:我遇到了一些问题,如果有人可以帮助我,我会很高兴。 我在这里的主要目标是能够在同一个管道中保存不止一项工作。错误是因为特定分支的作业不存在,因为我有6个分支我不想一个一个修改。我只想要一个 Yaml 版本。
当我尝试保存时,GitLab 显示以下错误。
Found errors in your .gitlab-ci.yml:
jobs:deploy_dc_manual:needs:need job should be a string
You can test your .gitlab-ci.yml in CI Lint.
这个,是一段代码。例如,如果我在分支 feature 中,则工作需要它的“feature_package_build” 如果我在集成分支,则预期为“int_package_build”。
feature_package_build:
extends: .build
only:
- /^feature\/.*/
script:
# GitLab API query
- LAST=$(curl -s "sensitive data" | jq '.[0] | .sha' | sed '1q;d' | sed 's:^.\(.*\).$:\1:')
- >
if [ "$OLDER_COMMIT" == "none" ]; then
node_modules/sfdx-cli/bin/run sfpowerkit:project:diff -d package -r $LAST -x --loglevel debug
elif [ "$OLDER_COMMIT" != "none" ]; then
node_modules/sfdx-cli/bin/run sfpowerkit:project:diff -d package -r $OLDER_COMMIT -x --loglevel debug
fi
int_package_build:
extends: .build
only:
- integration
script:
# GitLab API query
- LAST=$(curl -s "sensitive data" | jq '.[0] | .sha' | sed '1q;d' | sed 's:^.\(.*\).$:\1:')
- >
if [ "$OLDER_COMMIT" == "none" ]; then
node_modules/sfdx-cli/bin/run sfpowerkit:project:diff -d package -r $LAST -x --loglevel debug
elif [ "$OLDER_COMMIT" != "none" ]; then
node_modules/sfdx-cli/bin/run sfpowerkit:project:diff -d package -r $OLDER_COMMIT -x --loglevel debug
fi
uat_package_build:
extends: .build
only:
- uat
script:
# GitLab API query
- LAST=$(curl -s "sensitive data" | jq '.[0] | .sha' | sed '1q;d' | sed 's:^.\(.*\).$:\1:')
deploy_DC_Manual:
extends:
- .deployDC_Manual
needs:
- job:
if [uat_package_build]; then
fi
if [feature_package_build]; then
fi
only:
- /^feature\/.*/
- integration
- uat
- release
- master
script:
- nomDeployedDC=$NONDEPLOYEDDC
- >
if [ -f package/destructiveChanges.xml ] && [ "$VALIDATE" == "no" ]; then
【问题讨论】:
你能否重新表述你的问题 - 并概述你到底想要什么 - 这有点难以理解。 @SimonSchrottner 我添加了更多细节。你能帮帮我吗? 【参考方案1】:我假设您正在寻找的是需要关键字的 optional
-flag
deploy_DC_Manual:
extends:
- .deployDC_Manual
needs:
- job: uat_package_build
optional: true
- job: feature_package_build
optional: true
由于这使需求成为条件 - 但请注意,这也意味着如果您弄乱了规则,而这两个规则都不可用,您的工作可能仍会执行。
【讨论】:
以上是关于Gitlab Yaml 不能正常工作 工作需要的主要内容,如果未能解决你的问题,请参考以下文章