1

每当指定的远程 git 存储库(在 bitbucket 上)发生更改时,如何自动运行脚本?

该脚本将包含git pull依赖存储库的行;运行测试;如果测试通过,部署然后重新加载相关服务。

4

2 回答 2

1

最好的解决方案是使用Bitbucket 钩子在远程存储库中发生更改时获得通知,实现这一点的最简单方法可能是让 CI 软件侦听通知并运行您的bar脚本。

复杂的方式是自己编写代码来接收通知;我找到了一个示例,您可以将其用作起点(还有另一个示例,甚至更完整)

而且,当然,您总是可以定期轮询远程更改,但这不是很有效。最好的方法是使用钩子。

于 2014-04-01T14:16:43.487 回答
0

使用轮询,您可以从 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

于 2021-12-28T15:28:10.187 回答