每当指定的远程 git 存储库(在 bitbucket 上)发生更改时,如何自动运行脚本?
该脚本将包含git pull
依赖存储库的行;运行测试;如果测试通过,部署然后重新加载相关服务。
每当指定的远程 git 存储库(在 bitbucket 上)发生更改时,如何自动运行脚本?
该脚本将包含git pull
依赖存储库的行;运行测试;如果测试通过,部署然后重新加载相关服务。
最好的解决方案是使用Bitbucket 钩子在远程存储库中发生更改时获得通知,实现这一点的最简单方法可能是让 CI 软件侦听通知并运行您的bar
脚本。
复杂的方式是自己编写代码来接收通知;我找到了一个示例,您可以将其用作起点(还有另一个示例,甚至更完整)
而且,当然,您总是可以定期轮询远程更改,但这不是很有效。最好的方法是使用钩子。
使用轮询,您可以从 cron 作业检查分支上的更改。
内容Makefile
(假设在 git 项目的根文件夹中)
BRANCH?=main
need_update:
git fetch
if [ `git rev-list HEAD...origin/${BRANCH} --count` -eq '0' ]; then \
echo "No updates, aborting build!\n"; \
exit 1; \
fi
fetch:
git pull
build:
docker-compose build
restart:
docker-compose down
docker-compose up -d
upgrade: need_update fetch build restart
然后在你的 crontab 中添加一个间隔和类似的东西su -c 'cd ~/<git-project-path> && make upgrade' <user with git credentials>
提供Poorman CD:P