Ada*_*amo 6 bitbucket bitbucket-pipelines
我有一个包含两个分支的存储库:master和Dev,我想以这样的方式配置pipline,当我将代码推送到Dev分支并且代码构建成功时,Dev被合并到master.不幸的是,我无法在bitbucket piplines docs中找到有关合并的任何信息.
那是我的yml文件:
pipelines:
branches:
Dev:
- step:
script:
- ant deployCodeCheckOnly -Dsf.username=$SF_USERNAME -Dsf.password=$SF_PASSWORD
Run Code Online (Sandbox Code Playgroud)
那个案子可以帮助我吗?如果有可能吗?
- 编辑
我尝试将脚本更改为sugest:
pipelines:
branches:
Dev:
- step:
script:
- ant deployCodeCheckOnly -Dsf.username=$SF_USERNAME -Dsf.password=$SF_PASSWORD
- git remote -v
- git fetch
- git checkout master
- git merge Dev
- git push -v --tags origin master:master
Run Code Online (Sandbox Code Playgroud)
结果:
git remote -v
+ git remote -v
origin git@bitbucket.org:repository/project.git (fetch)
origin git@bitbucket.org:repository/project.git (push)
git fetch origin
+ git fetch origin
Warning: Permanently added the RSA host key for IP address ..... to the list of known hosts.
Run Code Online (Sandbox Code Playgroud)
并且错误:
+ git checkout master
error: pathspec 'master' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)
- 解
Dev:
- step:
script:
- ant deployCodeCheckOnly -Dsf.username=$SF_USERNAME Dsf.password=$SF_PASSWORD
- git fetch
- git checkout -b master
- git merge Dev
- git push -v --tags origin master:master
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,但想使用请求请求而不是简单的git merge。所以我最终利用bitbucket API来完成这项工作:
创建“应用密码”,这样您就不必将自己的凭据推送到管道(bitbucket设置->应用密码)
我有一个bash脚本,可从中创建拉取请求$BITBUCKET_BRANCH并立即将其合并
#!/ usr / bin / env bash
#如果任何命令以非零状态退出,则立即退出
#例如pull-request合并由于冲突而失败
设置-e
#设置目标分支
DEST_BRANCH = $ 1
#创建新的拉取请求并获取其ID
echo“创建PR:$ BITBUCKET_BRANCH-> $ DEST_BRANCH”
PR_ID =`curl -X POST https://api.bitbucket.org/2.0/repositories/$BITBUCKET_REPO_OWNER/$BITBUCKET_REPO_SLUG/pullrequests \
--fail --show-error --silent \
--user $ BB_USER:$ BB_PASSWORD \
-H'内容类型:application / json'\
-d'{
“ title”:“'$ BITBUCKET_BRANCH'->'$ DEST_BRANCH'”,
“ description”:“管道自动PR”,
“ state”:“ OPEN”,
“目的地”:{
“分支”:{
“名称”:“'$ DEST_BRANCH'”
}
},
“资源”: {
“分支”:{
“名称”:“'$ BITBUCKET_BRANCH'”
}
}
}'\
| sed -E“ s /.* \” id \“:([0-9] +)。* / \ 1 / g”`
#合并公关
回声“合并PR:$ PR_ID”
curl -X POST https://api.bitbucket.org/2.0/repositories/$BITBUCKET_REPO_OWNER/$BITBUCKET_REPO_SLUG/pullrequests/$PR_ID/merge \
--fail --show-error --silent \
--user $ BB_USER:$ BB_PASSWORD \
-H'内容类型:application / json'\
-d'{
“ close_source_branch”:否,
“ merge_strategy”:“ merge_commit”
}'
./merge.sh DESTINATION_BRANCH只需调用脚本即可:
开发人员:
- 步:
脚本:
-./merge.sh主文件
在 YAML 配置的 \xe2\x80\x9cscript\xe2\x80\x9d 部分中,您或多或少可以在 shell 上执行任何可以执行的操作,因此(尽管我\xe2\x80\x99 从未尝试过)不要\ xe2\x80\x99t 明白为什么这\xe2\x80\x99 不可能。
\n\n换句话说,你\xe2\x80\x99d 必须:
\n\nmasterBITBUCKET_COMMIT环境变量,它标识您的dev提交)master(也可能推动)正如git中提供的那样script,您可以使用普通的 git 命令,并且不需要任何特定于 Bb Pipelines 的内容,如下所示:
script:\n - git fetch\n - git checkout -b master\n - git merge Dev\n - git push -v --tags origin master:master\nRun Code Online (Sandbox Code Playgroud)\n\n为了确保仅在 Ant 作业成功时才完成此操作,您应该确保在发生错误时,您\xe2\x80\x99 将获得非零退出状态(我假设是 Ant\xe2\x80 \x99s 默认行为)。
\n| 归档时间: |
|
| 查看次数: |
3024 次 |
| 最近记录: |