首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitLab CI/CD -同时使用包括:和需求:

GitLab CI/CD -同时使用包括:和需求:
EN

Stack Overflow用户
提问于 2020-12-23 02:22:10
回答 1查看 1.1K关注 0票数 2

我正在为我的.gitlab-ci.yml编写Auto-Devops模板。尝试使用include:needs:作为GitLab合作伙伴实验的一部分。CI Lint工具说这是有效的,但是管道失败了,说"dast: needs 'dast_environment_deploy'“。在尝试下面的代码之后,我甚至尝试复制整个dast_environment_deploy模板的内容并将其放入文件中,仍然得到相同的错误。

如何让我的管道文件使用基于include:模板的needs:

代码语言:javascript
复制
image: alpine:latest

stages:
  - build
  - test
  - scan
  - deploy  # dummy stage to follow the template guidelines
  - review
  - dast
  - staging
  - canary
  - production
  - incremental rollout 10%
  - incremental rollout 25%
  - incremental rollout 50%
  - incremental rollout 100%
  - performance
  - cleanup

scan:
    stage: scan
    trigger:
        include:
            - template: Security/License-Scanning.gitlab-ci.yml
            - template: Security/Container-Scanning.gitlab-ci.yml
            - template: Security/Dependency-Scanning.gitlab-ci.yml

review:
  needs: ["build"]

dast:
  needs: ["dast_environment_deploy"]

sast:
  needs: []

cache:
    paths:
        - node_modules

include:
  - template: Jobs/Build.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml
  - template: Jobs/Test.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Test.gitlab-ci.yml
  - template: Jobs/Code-Quality.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Code-Quality.gitlab-ci.yml
  - template: Jobs/Code-Intelligence.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Code-Intelligence.gitlab-ci.yml
  - template: Jobs/Deploy.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
  - template: Jobs/Deploy/ECS.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Deploy/ECS.gitlab-ci.yml
  - template: Jobs/Deploy/EC2.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Deploy/EC2.gitlab-ci.yml
  - template: Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
  - template: Jobs/Browser-Performance-Testing.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml
  - template: Security/DAST.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/DAST.gitlab-ci.yml
  - template: Security/SAST.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml
  - template: Security/Secret-Detection.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/Secret-Detection.gitlab-ci.yml
EN

回答 1

Stack Overflow用户

发布于 2021-01-27 04:08:21

我没有检查您包含的每个模板,但根据错误和我检查的少数几个,错误很可能是由needs关键字引起的,该关键字由于when条件或rules:if条件而没有添加到管道中。

如果一个作业needs另一个作业,并且另一个作业没有添加到管道中(实际运行的管道实例,而不是.gitlab-ci.yml中的管道定义),则yml在运行时被视为无效。您可以在文档中查看needs的所有要求和限制:https://docs.gitlab.com/ee/ci/yaml/#requirements-and-limitations

查看第一个包含的模板- template: Jobs/Build.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.ymlbuildbuild_artifact作业都有可能导致作业不被添加到管道中的规则。例如,如果变量$AUTO_DEVOPS_PLATFORM_TARGET不是"EC2“,那么这两个作业都不会被添加,所以needs这些作业的任何作业都将抛出YML错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65413896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档