什么是 Bitbucket#
根据维基百科的介绍,Bitbucket 是 Atlassian 公司提供的一个基于 web 的版本库托管服务。
简单来说,Bitbucket 就是一个类似于 github 和 gitee 一样的 基于 git 的线上版本管理工具,也就是代码仓库的一种。
什么是 CI/CD,好处又是什么?#
请参看《什么是 CICD》
Bitbucket 的 CICD 工具 - Bitbucket Pipelines#
简单来说就是集成在 Bitbucket 中的 CICD 工具,只需要简单配置,就可以完成 CICD 流程。
Bitbucket 会根据代码包中的配置文件,在每次符合条件的 push 中运行对应的逻辑,包括指定运行环境,利用环境执行代码
除了语言环境的能力,pipelines 还支持使用 pipe
实现复杂的 CICD 能力,指定 pipe
后,可以进行测试、安全控制、消息推送、代码部署、等等
配置 pipelines#
在仓库根目录建立一个名为 bitbucket-pipelines.yml
的文件,语法为 yaml(一种 json 的超集)
bitbucket 在 CICD 触发时会自动读取此文件总的配置
配置纬度可以包含且不仅仅包含一下几点:
- 运行环境:当前的语言环境
- 分支:指定触发分支
- 步骤:bitbucket 会根据指定的步骤按顺序执行,在这里可以使用 pipe 库
具体配置参看 bitbucket-pipelines 的配置文档
example:
image: node:14.15.1
pipelines:
branches:
master:
- step:
name: Build
script:
- npm install
- npm run build
- step:
name: Deploy
script:
- pipe: atlassian/scp-deploy
variables:
LOCAL_PATH: "build/*"
pipe 能力列表#
在 CI/CD 过程中使用变量#
在使用 pipelines 的过程中,还可以使用 变量 来实现一些动态大包的操作。
下面列举几个场景:
- 项目打包为 docker-image 时,可以利用
$BITBUCKET_BUILD_NUMBER
作为 image 的 tag,便于版本管理。 - 使用 pipe 部署项目时,可以利用
$USER
、$SERVER
等作为 pipe 配置项
变量使用示例:
使用$BITBUCKET_BUILD_NUMBER
动态部署静态网站
pipelines:
- step:
name: Deploy
script:
- pipe: atlassian/scp-deploy
variables:
REMOTE_PATH: "/web/v_$BITBUCKET_BUILD_NUMBER$"
在 bitbucket 查看 CI/CD 流程#
自动化进程列表:
查看 CICD 状态和 log:
版本管理和回滚#
Bitbucket 的 Piplines 把每次的 CICD 都记录下来了,我可以直接作为版本管理。也可以查看 Deployments,查看部署。
当我们需要回滚某一个版本时,只需要进入那次的 pipeline,点击 Rerun 就可以对那次的记录进行重新编译部署,从而实现回滚操作。