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 不能正常工作 工作需要的主要内容,如果未能解决你的问题,请参考以下文章

为啥 CSS 脉冲动画不能正常工作?

我必须创建一个需要使用线程的应用程序,但它们不能正常工作

shouldAutoRotate 方法不能正常工作..?

如何在 Gitlab 中完成工作并发出警告

QTreeWidgetItem 的拖放不能正常工作

chartjs 从 ajax 加载数据不能正常工作