首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Gitlab中的管道只用于非主分支的网络接口?(运行管道按钮)

如何使Gitlab中的管道只用于非主分支的网络接口?(运行管道按钮)
EN

Stack Overflow用户
提问于 2021-08-03 13:49:50
回答 1查看 496关注 0票数 0

问题:我的管道中有两个作业,我只想通过“运行管道”按钮来运行,我需要为任何分支运行这个作业。但是当我选择任何一个非主分支时,gitlab告诉我“管道不能运行。这个管道没有阶段/作业。”

首先,我使用“rules”关键字配置了作业,但配置了“only”关键字:

代码语言:javascript
复制
  only:
    refs:
      - api
      - web

我要怎么做才能让我的手动管道可以运行?

我的愤恨:

代码语言:javascript
复制
stages:
  - test
  - publish


.run_branch_from_gui:
  only:
    - branches
    - tags
  except:
    - master
  when: manual

compile_and_test_branch_manually:
  stage: publish
  extends:
    - .run_branch_from_gui
  script: "echo 'test'"

publish_docker_image_branch_manually:
  extends:
    - .run_branch_from_gui
  image: $DOCKER_IMAGE
  dependencies:
    - compile_and_test_branch_manually
  stage: publish
  script: "echo 'publish'"

我也尝试过:

代码语言:javascript
复制
   rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
      when: manual
      allow_failure: false

但是没有效果:当我单击“运行管道”按钮时,仍然有“管道不能运行。该管道没有阶段/作业。”按钮。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-04 07:36:50

在不知道完整管道的情况下,我建议您使用规则,并检查$CI_PIPELINE_SOURCE是否为web (此变量的可能值被描述为这里)。只有在手动触发作业时,才会运行作业。

代码语言:javascript
复制
rules:
  - if: '$CI_PIPELINE_SOURCE == "web"'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68637282

复制
相关文章

相似问题

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