V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
segmentfault
V2EX  ›  程序员

一个上线自动部署的小工具

  •  
  •   segmentfault ·
    SegmentFault · 2015-03-31 16:38:19 +08:00 · 6025 次点击
    这是一个创建于 3531 天前的主题,其中的信息可能已经有所发展或是发生改变。

    给大家开源一个我们的上线自动部署的机器人,GitHub 好帮手,分分钟搞定上线。

    项目地址: https://github.com/SegmentFault/deploy-robot

    特点

    • 与 GitHub 深度整合,利用 GitHub API 读取相关部署指令,并及时反馈部署情况
    • 与人工部署不同的是,自动部署不会疲劳,也不会喊累,你永远可以不停地折腾它

    使用方法

    执行以下命令安装

    npm install -g deploy-robot
    

    使用以下命令启动脚本

    deploy-robot -c config.json
    

    config.json 文件

    参考目录下的 config.json.sample 文件

    {
        "username": "",     // 用户名
        "password": "",     // token,去 https://github.com/settings/applications 的 "Personal access tokens" 选项卡点击 "Generate new token",将获取的字符串填入这里
    
        "repos": [          // 需要监听 repo 列表
            {
                "user": "xxx",      // repo 所属用户名
                "name": "xxx",      // repo 名
                "labels": "xxx",    // 指定 issue 的 label
                "command": "xxx",   // 上线脚本的命令
                "confirm": null     // 上线是否需要某人的确认,默认为空
            }
        ]
    }
    

    提交上线请求

    deploy

    20 条回复    2015-04-01 18:29:09 +08:00
    qinkun1234
        1
    qinkun1234  
       2015-03-31 16:52:09 +08:00
    这么好的东西 竟然没人回复
    WenJimmy
        2
    WenJimmy  
       2015-03-31 16:56:31 +08:00
    收藏了
    segmentfault
        3
    segmentfault  
    OP
       2015-03-31 17:01:57 +08:00
    @qinkun1234 大家都在忙着收藏
    fen
        4
    fen  
       2015-03-31 17:02:17 +08:00
    无需在电脑边,用手机就可以处理上线操作了
    megoo
        5
    megoo  
       2015-03-31 19:56:02 +08:00
    部署什么?
    megoo
        6
    megoo  
       2015-03-31 19:57:29 +08:00
    kn007
        7
    kn007  
       2015-03-31 19:57:45 +08:00
    好东西
    padthai
        8
    padthai  
       2015-03-31 20:23:08 +08:00
    @qinkun1234

    知呼很多人扯淡nodejs不好

    其实什么都能干的
    kindlepaper
        9
    kindlepaper  
       2015-03-31 21:05:31 +08:00 via iPhone
    楼主,这gif是什么做的啊
    RobberPhex
        10
    RobberPhex  
       2015-03-31 22:12:59 +08:00
    说实话,用issue来作部署请求确实不太好,破坏了issue的语义。
    mcfog
        11
    mcfog  
       2015-03-31 23:06:15 +08:00
    顶一下思路,棒棒的
    binarymann
        12
    binarymann  
       2015-03-31 23:23:18 +08:00
    @kindlepaper 同问
    ipconfiger
        13
    ipconfiger  
       2015-03-31 23:26:15 +08:00
    做个App来发起部署嘛
    iyaozhen
        14
    iyaozhen  
       2015-04-01 00:36:01 +08:00
    @RobberPhex 赞同,我也觉得不妥。
    上线脚本都写好了,其它随便什么方式都可以部署吧。弄个微信公众号?看起来比这个更方便。
    9hills
        15
    9hills  
       2015-04-01 00:42:01 +08:00 via iPad   ❤️ 1
    @RobberPhex 不算破坏。

    每次上线都是一个issue, 可跟踪可评论,相当好的创意。而且lz这个也支持指定的人review后才发起上线。
    f0rger
        16
    f0rger  
       2015-04-01 01:48:35 +08:00
    这个挺好的,个人站点什么的可以随便部署。
    公司企业的站点,一般需要审批,不一定走github,很可能是内部的git源或者svn等。
    cyokvip
        17
    cyokvip  
       2015-04-01 08:10:13 +08:00 via Android
    内部git svn用的多
    wh555s
        18
    wh555s  
       2015-04-01 08:39:09 +08:00
    这必须顶~
    liubin
        19
    liubin  
       2015-04-01 09:15:09 +08:00
    没看懂上线什么,貌似只有对issue的操作而已。
    所谓的上线,应该是把代码同步到线上环境吧。
    gamexg
        20
    gamexg  
       2015-04-01 18:29:09 +08:00
    @liubin 配置文件里面有 "command": "xxx", // 上线脚本的命令。
    发现上线 issue 后会通过 ChildProcess.exec repo.command, (err, result, error) -> 执行命令并把嫁郭嘉到issus 里面。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2916 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:46 · PVG 10:46 · LAX 18:46 · JFK 21:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.