将master合并到feature分支

时间:2017-09-26 17:09:31

标签: bitbucket bitbucket-pipelines

我正在将我们的构建管道从Jenkins移动到Bitbucket。在Jenkins中,当我们构建一个分支时,我们将master合并到分支中以检查冲突,然后运行单元测试,因为功能分支可能落后。

Bitbucket Pipeline仅克隆特定分支:git clone --branch="DEV-9-issue" --depth 50 https://x-token-auth:$REPOSITORY_OAUTH_ACCESS_TOKEN@bitbucket.org/<team>/<repo>.git $BUILD_DIR

问题:如何获取主分支,以便将其合并到此功能分支中?

我提出的解决方案:

  1. 使用应用程序密码,该密码只能添加到个人帐户,而不是团队。
  2. 将SSH密钥添加到我的docker镜像。
  3. 使用OAuth,每次构建运行时都需要创建一个获取访问令牌的脚本(访问令牌在一小时后过期)。
  4. 有没有更好的方法?

    管道

    pipelines:
      default:
        - step:
            script:
              - git remote add ss https://<username>:<app_password>@bitbucket.org/<team>/<repo>.git
              - git merge --no-commit --no-ff ss/master
    

2 个答案:

答案 0 :(得分:1)

您可以将克隆深度选项设置为&#34;完整&#34;:详细信息:https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html#Configurebitbucket-pipelines.yml-ci_depth

示例:

clone:
  depth: full
pipelines:
  default:
    - step:
        script:
          - git merge --no-commit --no-ff origin/master

答案 1 :(得分:0)

这显然比手动合并内容要简单得多。

<块引用>

一个特殊的管道,只在从发起的拉取请求上运行 在您的存储库中。它将目标分支合并到您的 在运行之前工作分支。从分叉存储库中拉取请求 不要触发管道。如果合并失败,管道将停止。

<块引用>

拉取请求管道除了任何分支和默认运行 定义的管道,因此如果定义重叠,您可能会得到 2条流水线同时运行。

如果您的配置中已经有分支,并且您想要它们 all 仅在拉取请求上运行,将关键字分支替换为 拉取请求。

https://support.atlassian.com/bitbucket-cloud/docs/configure-bitbucket-pipelinesyml/#pull-requests

而不是:

pipelines:
  default:
    - step:
        script:
          - git remote add ss https://<username>:<app_password>@bitbucket.org/<team>/<repo>.git
          - git merge --no-commit --no-ff ss/master
          - ...your other steps

做:

pipelines:
  pull-request:
    '**':
      - step:
          script:
            - ... your other steps