使用git@osc中的HOOK钩子如何做自动部署?

发布于 2021-11-25 13:10:36 字数 583 浏览 938 评论 7

@Zoker 你好,想跟你请教个问题:

使用git@osc中的HOOK钩子如何做自动部署?

服务器环境RHEL5.5。

看到HOOK的简介,会自动callback一个http地址,我的理解是在这个地址里去拉取(pull)程序并重启应用应用服务器。

首先,不知道我理解的是否正确。其次,如果是正确的,我应该如何做呢?

GIT@osc钩子功能(callback),是帮助用户push了代码后,自动callback回调一个您设定的http地址。 这是一个通用的解决方案,用户可以自己根据不同的需求,来编写自己的脚本程序(比如发邮件,自动部署等)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

少女情怀诗 2021-11-30 11:16:00

重启服务,是重启PHP-FPM?还是什么?

醉生梦死 2021-11-30 11:08:29

php如何执行脚本呢

执手闯天涯 2021-11-30 11:02:26

非常感谢!

梅窗月明清似水 2021-11-30 05:41:09

感谢回答!

我的疑问:

你在你服务器上的程序接收到这个请求

1. 我需要在服务器上开放一个REST接口,是么?

之后,获取相关信息做处理
#006600;font-size:12px;line-height:18px;background-color:#F4F5F7;">,然后执行相应的脚本实现自动化部署。

2. 是在REST接口里“
执行相应的脚本”么?是Linux脚本么?能给一个示例的脚本么?

筱武穆 2021-11-30 02:15:45

不是的,钩子的地址是你推送了代码之后,程序会对这个地址进行post请求,你在你服务器上的程序接收到这个请求之后,获取相关信息做处理,然后执行相应的脚本实现自动化部署。

格式是这样的

hook={
    "password": "123", 
    "push_data": {
        "before": "cbd3884034f13d6f4e7bc85035df4b52f0874ee1", 
        "after": "db472e2a504880899cd924d7212c81560cd0e68f", 
        "ref": "refs/heads/master", 
        "user_id": 62561, 
        "user_name": "Zoker", 
        "repository": {
            "name": "getingblog", 
            "url": "git@git.oschina.net:silentboy/getingblog.git", 
            "description": "", 
            "homepage": "http://git.oschina.net/silentboy/getingblog"
        }, 
        "commits": [
            {
                "id": "db472e2a504880899cd924d7212c81560cd0e68f", 
                "message": "sdfasef", 
                "timestamp": "2015-07-03T19:14:03+08:00", 
                "url": "http://git.oschina.net/silentboy/getingblog/commit/db472e2a504880899cd924d7212c81560cd0e68f", 
                "author": {
                    "name": "silentboy", 
                    "email": "kaixuanguiqu@gmail.com"
                }
            }
        ], 
        "total_commits_count": 1
    }
}

明媚如初 2021-11-29 11:15:55

http://git.oschina.net/shenzhe/gitosc-hook

解决你的烦恼

凯凯我们等你回来 2021-11-28 05:26:41

是的,比如接收到一个请求,在这个请求的action里面就可以逻辑判断然后执行脚本,脚本的话根据你的需求而定,比如更新代码,然后重启服务:

auto_reload.sh

#!/bin/bash

cd /path/to/your/app
git pull origin master

/your/script/to/reload/application
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文