我有一个项目,我将其从本地计算机推送到GitHub存储库。我将这个项目部署在我目前必须插入并执行git pull的DigitalOcean Droplet上,然后手动重新部署。是否有一种简单的方法可以使其自动拉动,然后自动进行构建和重新部署?我已经研究了git hooks,但是找不到关于我想要做什么的明确答案。我在远程计算机上设置了更新后的git钩子,该钩子仅回显行,但我不知道在哪里检查行是否回显。
答案 0 :(得分:2)
运行Git钩子所需的位置在服务器端的post-receive
或post-update
钩子中。但是,GitHub默认情况下不允许您运行任意挂钩,因为这会带来安全风险。相反,您可以使用GitHub's webhooks通过向其发出POST请求来触发其液滴执行某些操作。
您还可以设置某种持续集成,以自动触发构建并将其部署到您的Droplet。通常就是这种类型的任务的管理方式。
最后,您可以设置一个远程名称(例如foo
),该名称具有多个remote.foo.url
条目,其中之一是GitHub,其中之一是您的Droplet。然后,您可以使用该遥控器同时推送到两者,在这种情况下,您的post-receive
或post-update
挂钩将在小滴上触发(因为它已收到推送)。如果有签出,则可以使用receive.denyCurrentBranch=updateInstead
,这将使您推送到已签出的同一分支。有关更多详细信息,请参见git-config(1)
。