是否可以在分支之间共享步骤并仍然运行分支特定步骤?例如,开发和发布分支具有相同的构建过程,但上传到单独的S3存储桶。
pipelines:
default:
- step:
script:
- cd source
- npm install
- npm build
develop:
- step:
script:
- s3cmd put --config s3cmd.cfg ./build s3://develop
staging:
- step:
script:
- s3cmd put --config s3cmd.cfg ./build s3://staging
我看过这篇文章(Bitbucket Pipelines - multiple branches with same steps),但它的步骤相同。
答案 0 :(得分:13)
答案 1 :(得分:9)
虽然它尚未得到官方支持,但您现在可以预先定义步骤 当我an issue在分支子集中运行相同的步骤时,我从bitbucket工作人员那里获得了这个提示。
definitions:
step: &Build
name: Build
script:
- npm install
- npm build
pipelines:
default:
- step: *Build
branches:
master:
- step: *Build
- step:
name: deploy
# do some deploy from master only
它并不完美,但它总比没有好
答案 2 :(得分:3)
我认为Bitbucket不能这样做。您可以使用一个管道并检查分支名称:
pipelines:
default:
- step:
script:
- cd source
- npm install
- npm build
- if [[ $BITBUCKET_BRANCH = develop ]]; then s3cmd put --config s3cmd.cfg ./build s3://develop; fi
- if [[ $BITBUCKET_BRANCH = staging ]]; then s3cmd put --config s3cmd.cfg ./build s3://staging; fi
最后两行只会在指定的分支上执行。
答案 3 :(得分:1)
显然它正在进行中。希望很快就可以使用。
答案 4 :(得分:1)
您可以使用YAML Anchors定义和重复使用步骤。
c
来定义大量配置c
在其他地方引用该块然后将源分支保存在名为a
的默认variable中
您还需要将构建结果(在本例中为b
文件夹)从一个步骤传递到下一个步骤,这是通过artifacts完成的。
将这三个部分结合在一起将为您提供以下配置:
&
您现在还可以使用referenced post中提到的全局模式,并一次性使用*
和BITBUCKET_BRANCH
分支的步骤:
build/