当前位置: 首页 > 知识库问答 >
问题:

Bitbucket管道将触发器限制为分支

乜建柏
2023-03-14

我想将特定步骤限制为特定分支

pipelines:
  branches:
    '{feature/*,release/*,hotfix/*,bugfix/*}':
      - step: # Generates credential needed for test and building
          script:
            - echo "All branch, this step is needed for release"
      - parallel:
          script: # Some lint and unit test script
            - echo "All branch, this step is needed for release step"
    '{release/*}':
      - step: # Actual test and build script
          script:
            - echo "Only in release branch"

在上面的示例中,我希望第一步在几乎所有的分支中运行,但是第二步应该只对< code>release分支模式执行。不幸的是,实际结果是第一步只在像< code>hotfix这样的分支中起作用,并且在分支时不会在< code > release/version-name 中触发。据说是怎么做的?基本上,这个想法是在发布分支上重用上面的前两个步骤,所以不需要重复这些步骤。

共有1个答案

萧越泽
2023-03-14

我终于设法用YAML锚点做到了这一点。

definitions:
  steps:
      - step: &key-generator # Generates credential needed for test and building
          name: Generating Key
          script:
            - echo "All branch, this step is needed for release"
      - parallel: &lint-test
          name: Lint check
          script: # Some lint and unit test script
            - echo "All branch, this step is needed for release step"
pipelines:
  branches:
    '{feature/*,release/*,hotfix/*,bugfix/*}':
      - step: *key-generator # YAML anchor referer
      - parallel: *lint-test # YAML anchor referer
    '{release/*}':
      - step: *key-generator # YAML anchor referer
      - parallel: *lint-test # YAML anchor referer
      - step: # Actual test and build script
          script:
            - echo "Only in release branch"
 类似资料:
  • 是否可以将多分支管道限制为一次只构建一个分支? 我有一个管道,它包含签出、构建、测试,然后部署的步骤。部署阶段在特定的机器上复制/执行一些文件,这些工作无法与其他分支作业并行完成。 我尝试过: 但这只限制了基于分支的并发,因此仍然有多个分支将并行运行。 此外,在常规非流水线Jenkins作业中,有一个选项复选框: “必要时执行并发生成” 但这在多分支配置中也不可用。 是否有其他配置来实现这一点,或

  • 我正在使用bitbucket管道,在一个步骤中,我想调用curl请求我们的API来将部署数据保存在DB中。 但是当我试图用BITBUCKET_BRANCH和BITBUCKET_REPO_SLUG变量调用curl时,它们总是为空或者根本没有填充。 这是我从管道中得到的回复。 你可以看到,对于分支dev1/*,我有第一步,我用两个变量调用curl。我尝试了两种使用我在互联网上找到的变量的方法,但都不起

  • 我有一个场景,但我有两个项目(a和B),都在Jenkins中配置了多分支管道作业,问题是项目B依赖于项目a。 所以我发现有时候当我在项目A中签入代码时,我也需要在项目A构建后构建项目B。现在,在我开始调查管道构建之前,我将每个分支都有一个作业,然后在Jenkins中为相应的分支触发项目B的适当作业。 我想在Jenkins文件中设置什么,这样当ProjectA/develop执行时,它就会触发Pro

  • 我对使用Jenkins文件和GIT插件的Jenkins多分支pipleline有一个问题。 问题是,每次向暂存分支推送都会触发master管道。所需的行为是,推送到暂存分支仅触发用于暂存的管道,而推送到主分支仅触发主管道 这是我的詹金斯档案 我将分享一些日志:这是主分支的日志 这是主分支的日志,但只有暂存有一个新的提交: 注意“已发现更改”,即使主分支上的头未更改 詹金斯·弗。2.190.1 Gi

  • 本文向大家介绍mysql触发器简介、创建触发器及使用限制分析,包括了mysql触发器简介、创建触发器及使用限制分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了mysql触发器简介、创建触发器及使用限制。分享给大家供大家参考,具体如下: 简介 SQL触发器是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器,例如插入,更新或删除。SQL触发器也可以

  • 问题内容: 我正在利用多分支管道工作流,在Jenkins中将并发构建的数量限制为特定数量,但是在docs或google中找不到任何好的方法。 一些文档说这可以在Jenkinsfile步骤中使用并发来完成,但是我在其他地方也读过,这是不推荐使用的方式。 似乎最近发布了一些用于限制并发通过的东西,但是我找不到它的文档,并且在遵循代码时遇到了麻烦。我唯一发现的PR显示以下内容: 但是我很难让它工作。 是