仅在 PR 上从 BitBucket Server webhook 构建远程触发 Bamboo?

Posted

技术标签:

【中文标题】仅在 PR 上从 BitBucket Server webhook 构建远程触发 Bamboo?【英文标题】:Remote Trigger Bamboo build from BitBucket Server webhook only on PR? 【发布时间】:2018-09-26 04:11:40 【问题描述】:

我是竹子和 webhook 的新手。当从我的仓库打开 PR 到 master 分支时,我正在尝试自动启动竹子构建。

我遵循了this 指南,但远程触发器根本没有启动。

竹子:

BitBucket:

我已经检查了以下内容:

验证列入白名单的 ip 是否正确(如果我删除它,bitbucket webhook 会失败)

我的竹计划已启用,并且在手动运行时构建良好

我错过了什么?

YAML 中的 Bamboo 构建计划:

---
oid: 7818389690603565060
key: XT
name: XXX - TEMP
project:
  oid: 7819374853022025730
  key: DIGQA
repositories:
- oid: 7818811903068661169
  parentRepository: 7818811903068661168
triggers:
- name: Bitbucket Server repository triggered
  description: ''
  pluginKey: com.atlassian.bamboo.plugins.stash.atlassian-bamboo-plugin-stash:stashTrigger
  enabled: true
  configuration: 
  triggerConditions:
    com.atlassian.bamboo.triggercondition.internal:plansGreenCondition:
      enabled: 'false'
  triggeringRepositories:
  - 7818811903068661169
- name: Remote trigger
  description: Master PR Trigger
  pluginKey: com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:remote
  enabled: true
  configuration:
    repository.change.trigger.triggerIpAddress: 10.40.1.120
  triggerConditions:
    com.atlassian.bamboo.triggercondition.internal:plansGreenCondition:
      enabled: 'false'
  triggeringRepositories:
  - 7818811903068661169
branchConfiguration:
  planBranchCreation:
    enabled: false
  removedBranchCleanup:
    enabled: false
  inactiveBranchesCleanup:
    enabled: false
  merging:
    enabled: false
  notificationStrategy: notifyCommitters
  triggers: inherited
  issueLinking: enabled
dependencies:
  configuration:
    enabledForBranches: 'true'
    requireAllStagesPassing: null
    blockingStrategy: none
  childPlans: []
permissions:
  users:
    xxxxxxxx:
    - administration
    - build
    - clone
    - read
    - write
  groups: 
  roles:
    user:
    - read
    anonymous:
    - read
plugins:
- pluginKey: com.atlassian.bamboo.plugin.system.additionalBuildConfiguration:concurrentBuild
  configuration:
    custom.concurrentBuilds.overrideNumberOfConcurrentBuilds: 'true'
    custom.concurrentBuilds.numberOfConcurrentBuilds: '1'
- pluginKey: com.atlassian.bamboo.plugin.system.additionalBuildConfiguration:buildExpiry
  configuration:
    custom.buildExpiryConfig.enabled: 'false'
- pluginKey: com.atlassian.bamboo.plugin.artifact.handler.local:artifactHandlersConfiguration
  configuration:
    custom.artifactHandlers.useCustomArtifactHandlers: 'false'
buildDefinition:
  custom.predefinedVariables: '"variableSetList":[]'
stages:
- oid: 7818530428091950756
  name: Default Stage
  jobs:
  - oid: 7818671165580276746
    key: JOB1
    name: Default Job
    tasks:
    - oid: 7819234115533708305
      description: Checkout Default Repository
      pluginKey: com.atlassian.bamboo.plugins.vcs:task.vcs.checkout
      configuration:
        repositories:
        - ref: defaultRepository
    buildDefinition:
      cleanWorkingDirectory: false
      repositoryDefiningWorkingDirectory: -1
...

============================================== ================================

编辑 1:

好的,所以我意识到钩子和触发器实际上正在工作。我误解了竹子上的触发器设置。

当前行为:

    到 master 的 PR 已打开 BitBucket webhook(在 PR 上)被触发 Bamboo 触发器设置为远程/bitbucket 服务器存储库。因此,在提交更改/实际合并 PR 之前,构建不会开始

问题: 我希望在打开 PR 后触发构建(在合并之前)。更详细地说,这是我构建的理想流程:

    查看 PR 代码(修订版) 针对 PR 版本运行我的测试

我正在查看以下链接,因为他们似乎设法以某种方式做到了,但我无法理解两个链接中提供的信息位。

bamboo - build my pull request What's wrong with bamboo

【问题讨论】:

您使用的是哪个 Git 服务器?如果您使用的是 Bitbucket Server,则无需设置 webhook,只需遵循集成指南即可。如果您使用的是 GitHub Enterprise,请检查那里是否有支持的集成。 我正在使用 BitBucket 并且我已经在遵循本指南:confluence.atlassian.com/bamkb/…。即使 bitbucket 挂钩已触发,竹子远程触发器仍无法启动构建。 只是为了确定 - 你是说 Bitbucket Cloud 对吧? Bitbucket 服务器。我已经为此更新了问题。谢谢! 【参考方案1】:

由于您使用的是 Bamboo 和 Bitbucket 服务器(不是云),请按照此处的说明进行操作:

https://confluence.atlassian.com/bamboo/integrating-bamboo-with-bitbucket-server-779302772.html

您需要在 Bamboo 和 BBS 之间创建应用程序链接 - 应用程序链接在 Atlassian 应用程序之间。

【讨论】:

【参考方案2】:

发现从 Bamboo 6+ 开始就支持此功能:Reference

【讨论】:

以上是关于仅在 PR 上从 BitBucket Server webhook 构建远程触发 Bamboo?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅在 HTTPS 上从 .htaccess 设置 HSTS 标头 [关闭]

仅在一页上从 AJAX POST 获取 NTLM 挑战

仅在单元格中的特定 UIImage 上从 UITableView 推送详细信息视图?

密码字段的键盘仅在 iOS 12 上从 azerty 切换到 qwerty(有时)

如何让 React Native 仅在 Android 操作系统上从包中获取/导入功能

仅在具有Nginx重写的root上从URL中删除index.php