Bitbucket Pipelines:如何按计划从上次生产部署的提交构建?
可以实现,以下是具体方案
先追踪生产环境的部署提交哈希
首先得把每次成功部署到生产环境的Git提交哈希记录下来,有两种简单方式:- 在生产部署脚本末尾,执行
git rev-parse HEAD > last_prod_commit.txt,把哈希写入文件后提交到仓库(或者存到部署服务器的固定路径); - 如果用CI/CD工具(比如GitHub Actions、GitLab CI),在生产部署任务完成后,将当前提交哈希存入工具的项目变量/环境变量中(比如GitLab的项目变量、GitHub的环境Secrets)。
- 在生产部署脚本末尾,执行
修改定时构建任务,指定目标提交版本
定时构建不需要默认拉取分支最新版,直接指定存储的生产部署哈希即可:- 以GitHub Actions为例,定时任务的job里可以设置
ref: ${{ secrets.LAST_PROD_COMMIT }},让流水线基于指定哈希执行; - 以GitLab CI为例,在定时流水线的变量里传入
LAST_PROD_COMMIT,然后在.gitlab-ci.yml的构建步骤开头加git checkout $LAST_PROD_COMMIT,切换到目标版本再执行构建流程。
- 以GitHub Actions为例,定时任务的job里可以设置
自动更新生产提交哈希
把哈希更新步骤集成到生产部署流程,不用手动维护:
在生产部署的CI/CD任务最后,添加执行步骤:获取当前提交哈希(git rev-parse HEAD),然后更新对应的存储(比如更新GitHub的环境变量、提交仓库里的last_prod_commit.txt文件)。
注意事项
- 确保记录的哈希是已成功部署到生产环境的版本,避免构建未验证的代码;
- 如果用仓库文件存储哈希,要限制修改权限,防止误操作覆盖;
- 部分CI/CD工具需要配置定时任务的权限,确保能读取存储的哈希变量。
内容的提问来源于stack exchange,提问作者Kelly
相关产品推荐
相关产品推荐

