怎么搭建个环境,能让前端项目每次提交后自动部署到开发环境, jenkins 还是进后台点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
caniuse
V2EX    程序员

怎么搭建个环境,能让前端项目每次提交后自动部署到开发环境, jenkins 还是进后台点

  •  
  •   caniuse 2017-07-26 10:41:12 +08:00 9672 次点击 /div>
    这是一个创建于 3075 天前的主题,其中的信息可能已经有所发展或是发生改变。
    41 条回复    2017-07-27 15:14:23 +08:00
    defunct9
        1
    defunct9  
       2017-07-26 10:49:57 +08:00
    webhook
    hellojl
        2
    hellojl  
       2017-07-26 10:57:35 +08:00
    Jenkins 可以配置成自动的
    mzeht
        3
    mzeht  
       2017-07-26 11:12:12 +08:00
    jenkins 上配置 git 的钩子 每次 pull 触发任务
    learnshare
        4
    learnshare  
       2017-07-26 11:18:09 +08:00
    每次提交有点过分,应该是每个 vertion tag 吧
    wanxi3
        5
    wanxi3  
       2017-07-26 11:25:22 +08:00
    Jenkins 完全可以达到你的要求
    caniuse
        6
    caniuse  
    OP
       2017-07-26 11:25:42 +08:00
    @learnshare 每次提交,反正构建也挺快的
    caniuse
        7
    caniuse  
    OP
       2017-07-26 11:30:32 +08:00
    @defunct9 @hellojl @mzeht @learnshare @wanxi3 小程序的 wx.removeStorageSync(KEY)会抛异常? 不想写 try catch
    119
        8
    119  
       2017-07-26 11:36:26 +08:00
    HOOK
    Ouyangan
        9
    Ouyangan  
       2017-07-26 11:38:02 +08:00
    花两分钟搜索下???
    Finest
        10
    Finest  
       2017-07-26 11:41:57 +08:00
    就不怕有 bug ?
    Charkey
        11
    Charkey  
       2017-07-26 11:45:29 +08:00
    Jenkins 配置钩子来触发呗。
    TeamCity 用比较多,可以配置通过 commit 来触发。
    MrMario
        12
    MrMario  
       2017-07-26 11:51:20 +08:00 via iPhone
    Jenkins 有 cli,可以远程调用
    caniuse
        13
    caniuse  
    OP
       2017-07-26 12:00:11 +08:00
    @hand515 测试环境就是为了测试 bug 用啊
    caniuse
        14
    caniuse  
    OP
       2017-07-26 12:05:14 +08:00
    @Charkey TeamCity 比 jenkins 好用吗?
    codermagefox
        15
    codermagefox  
       2017-07-26 12:07:21 +08:00
    @caniuse 是 vue,只是测试环境的话.
    http://note.codermagefox.com/blog/post/magefox/Jenkins%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2Vue%E9%A1%B9%E7%9B%AE%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83

    自己的博客自己写的文章,没触犯 v 站站规吧?被搞怕了
    winglight2016
        16
    winglight2016  
       2017-07-26 12:19:50 +08:00
    可以用 webhook,也可以 15 分钟自动 build 一回
    janxin
        17
    janxin  
       2017-07-26 12:59:19 +08:00
    jenkins 好难用啊,有没有人性化点的?
    zhlssg
        18
    zhlssg  
       2017-07-26 13:04:42 +08:00
    gitlab ci 也可以
    learnshare
        19
    learnshare  
       2017-07-26 13:07:56 +08:00
    @caniuse 微信提供的 API 不那么可靠
    Charkey
        20
    Charkey  
       2017-07-26 13:49:27 +08:00
    @caniuse @janxin 单纯做部署的可以试试 TeamCity,和 IntelliJ IDEA 一样是 JetBrains 的产品;如果能整个团队做相应的调整,可以试试 gitlab。
    suman
        21
    suman  
       2017-07-26 14:34:48 +08:00
    git,svn 都可以设置 hook, 比如 post-update, post-commit
    wingoo
        22
    wingoo  
       2017-07-26 14:38:10 +08:00
    做个定时脚本好了, 每几分钟 pull 一次
    Charkey
        23
    Charkey  
       2017-07-26 14:48:29 +08:00
    @hand515 我用过的 TeamCity,支持 Pre-test Commit,也就是提交时不是真正的提交,会执行指定的构建,构建成功后 TeamCity 会自动提交
    millercn
        24
    millercn  
       2017-07-26 14:49:13 +08:00
    Jenkins 不行吗
    zenxds
        25
    zenxds  
       2017-07-26 14:57:41 +08:00
    刚写了个 webhook,然后利用 git 的 archive 打包远程代码,再解压到目标目录实现的
    hl
        26
    hl  
       2017-07-26 15:05:51 +08:00
    你是运维么?
    caniuse
        27
    caniuse  
    OP
       2017-07-26 15:21:59 +08:00
    @hl 我现在是前端
    caniuse
        28
    caniuse  
    OP
       2017-07-26 15:22:25 +08:00
    @zenxds 直接 git clone 不就好了
    Mirachael
        29
    Mirachael  
       2017-07-26 15:25:17 +08:00
    gitlab 有个.gitlab-cli.yml ,用这个自定义 taghook,然后会触发 gitlab 的 runner 去执行,你在 yml 文件中定义的操作。
    zenxds
        30
    zenxds  
       2017-07-26 15:28:20 +08:00
    @caniuse 只对特定规则带版本的 tag push 才执行发布,线上的目录是带版本的,而且解压也只解静态目录
    timwei
        31
    timwei  
       2017-07-26 15:33:47 +08:00
    @caniuse

    不用 git clone 可能很多原因

    像是部属的环境并无法接触 git 远端

    或是不希望 git log、git remote 等等的信息漏


    当然如果部属的环境不考虑这些,直接 clone 也没毛病
    LioMore
        32
    LioMore  
       2017-07-26 18:16:35 +08:00
    我的思路是服务器上 git init --bare 一个空仓库,然后配置 git hook,post-receive 自动 checkout 代码

    本地配置好一个 git remote add dev [email protected]:repo.git

    需要部署的时候 git push dev master 就可以了

    这样应该可以满足需求,不过会出现一些安全上的问题吧,具体的我也不是很了解,请大家指点
    gdzzzyyy
        33
    gdzzzyyy  
       2017-07-26 19:01:20 +08:00
    SlipStupig
        34
    SlipStupig  
       2017-07-26 19:12:43 +08:00
    docker!
    hikarugo
        35
    hikarugo  
       2017-07-26 19:14:18 +08:00
    如果会 python 得话 。我用的 fabric。。。贼方便
    huangzxx
        36
    huangzxx  
       2017-07-26 19:28:14 +08:00
    jenkins
    gitlab-ci
    docker
    都可以
    leopku
        37
    leopku  
       2017-07-26 22:42:10 +08:00
    gitlab-ci 最新版可以配合 docker 一起玩
    nicevar
    &nsp;   38
    nicevar  
       2017-07-27 08:19:59 +08:00
    jenkins 配合 gitlab 非常方便,就是 gitlab 有点臃肿,看公司还是个人了,个人不用 gitlab 也行,直接根据 git 的 push 来发布,master 的分支只用来发版本,平时提交试用其他分支
    sunqi0928
        39
    sunqi0928  
       2017-07-27 10:47:20 +08:00
    jenkins + gitlab 会满足你的
    flashback313
        40
    flashback313  
       2017-07-27 10:52:27 +08:00
    gitlab-ci +1
    moskize
        41
    moskize  
       2017-07-27 15:14:23 +08:00
    简单:drone.io + docker。需要一台 vps
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2767 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:19 PVG 10:19 LAX 18:19 JFK 21:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86