Gitlab Yamls不能正常工作



我正面临一些问题,如果有人能帮助我,我会很高兴。我的主要目标是能够在同一管道中保存多个作业。错误是因为特定分支不存在作业,因为我有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_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 

我假设您正在寻找的是optional-标志,用于需求关键字,如

deploy_DC_Manual:
extends: 
- .deployDC_Manual
needs:
- job: uat_package_build
optional: true
- job: feature_package_build
optional: true

由于这使得需求是有条件的-但请注意,这也意味着如果您弄乱了规则,并且这两个都不可用,您的作业可能仍然会执行。

最新更新