V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
caniuse
V2EX  ›  程序员

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

  •  
  •   caniuse · 2017-07-26 10:41:12 +08:00 · 8999 次点击
    这是一个创建于 2702 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    shiyidi
        8
    shiyidi  
       2017-07-26 11:36:26 +08:00
    HOOK
    Ouyangan
        9
    Ouyangan  
       2017-07-26 11:38:02 +08:00
    花两分钟搜索下???
    hand515
        10
    hand515  
       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!
    fyxtc
        35
    fyxtc  
       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
        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   ·   实用小工具   ·   1044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:59 · PVG 02:59 · LAX 10:59 · JFK 13:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.