首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Gitlab管道中动态包含/排除作业

在Gitlab管道中动态包含/排除作业
EN

Stack Overflow用户
提问于 2021-04-20 05:37:57
回答 1查看 194关注 0票数 2

我有一个有几个阶段的管道:detect, test, build, deploy

detect阶段会检测应用程序的类型,而testbuild阶段会根据detect中的计算结果包含或排除作业。detect阶段将它的值写入名为BUILD_MODE的环境变量。

我是这样使用rules的:

代码语言:javascript
复制
ng-build:
  extends:
    - '.ng/job/build'
  stage: build
  rules:
    - if: $BUILD_MODE == "ANGULAR"
      when: always

npm-build:
  extends:
    - '.npm/job/build'
  stage: build
  rules:
    - if: $BUILD_MODE == "NPM"
      when: always

这样做的问题是,BUILD_MODE变量是在创建管道时静态计算的,而不是在detect阶段运行后计算的,因此,除非我在顶级YML文件中显式设置变量,否则上面的方法永远不会起作用:

代码语言:javascript
复制
variables:
 BUILD_MODE: "ANGULAR"

解决这个问题的最佳方法是什么?我想要做的总结是评估一些条件,要么动态设置阶段,要么在创建管道中的阶段之前设置变量本身,以便使用正确评估的规则创建它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-20 17:51:45

你可以看看dynamic child-pipelines。也许你可以通过动态创建npm/ng构建作业来解决你的问题。

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

https://stackoverflow.com/questions/67169660

复制
相关文章

相似问题

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