我正在将我们的构建管道从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
问题:如何获取主分支,以便将其合并到此功能分支中?
我提出的解决方案:
有没有更好的方法?
管道
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
答案 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