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

自动化构建部署 github 仓库到国内的服务器

  •  
  •   rizon ·
    othorizon · 280 天前 · 2647 次点击
    这是一个创建于 280 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景说明

    最近在部署 nodejs 的项目时遇到一个问题,这个项目本身规模较小,没有采用标准的 CICD 流程,也没有 K8S 或者 docker 的容器化,因此只是在一个云服务器上简单的执行一下启动命令。 原初,就是简单的登录服务器,从 github 仓库拉取代码,然后执行构建,最后启动服务。 但是后来发现有两个问题: 一是 github 连接经常不稳定,当然这个可以通过代理地址解决。第二个问题是这个项目在执行 node 的构建命令时候 cpu 占用非常高,而这个某云厂商的边角料轻量云服务器,cpu 占用一高之后居然无响应了,无法登录终端,停止不了构建进程。只能重启机器。 基于以上问题,我决定把构建流程从服务器中抽离出来。这件事最简单的办法就是本地构建,然后把构建后的文件上传到服务器。不过我因为一些原因不想要本地做构建,于是便有了这个方案。

    核心概述

    详细内容可以查看公众号原文(公众号奕象派): https://mp.weixin.qq.com/s/qMg_OEBNghalFq2wjAzkTw
    这里简单概述核心内容,因为基本上看这几句话知道什么意思也就足够了。

    1. 使用 coding.net 的服务
    2. 关联 GitHub 仓库,这样就不用迁移仓库到 coding 了,很良心
    3. 配置构建计划,计划里拉取代码到运行的容器环境里,然后执行构建命令就行了。coding 的配置功能很强大,还免费
    4. 配置 ssh 密钥,用于将构建后的代码上传到目标服务器。ssh 密钥是可以在凭证管理页面安全管理的,不必要明文暴露到脚本中。

    核心就是这么几个步骤,其中有一些我在操作时的踩的坑在原文里描述了。

    欢迎关注

    我也是刚决定并开始做公众号,我打算将我平常工作中的一些技巧性的知识,开发中踩过的各种坑,以及拥有的行业经验(全栈开发、产品设计、以及现在正在做的 AI 相关领域的知识)一点点的分享出来。同时也是一个自我总结。 总之,欢迎关注公众号以及加入交流群(在公众号菜单里直接加群)。

    10 条回复    2024-02-19 15:56:43 +08:00
    mohumohu
        1
    mohumohu  
       280 天前
    GitHub Actions 不好用吗
    rizon
        2
    rizon  
    OP
       279 天前
    @mohumohu #1 你说的很对,如果 github 的 actions 玩的转,用 actions 就很好了。如果对 actions 的流程、变量、容器的这些配置有学习成本的话,可以考虑国内的服务。
    Trim21
        3
    Trim21  
       279 天前 via Android
    印象里每次在 v2 看到 coding 都是幺蛾子,难得有正面的东西😂
    28Sv0ngQfIE7Yloe
        4
    28Sv0ngQfIE7Yloe  
       279 天前
    coding 风评不是很好,我选云厂商的 devOPS
    Jack927
        5
    Jack927  
       279 天前
    @Trim21 @Morii #3 #4 好奇 coding 发生了啥,想了解下,有关键词吗
    vacuitym
        6
    vacuitym  
       279 天前
    一直用着 action 部署 java 和 vue
    blackmirror
        7
    blackmirror  
       279 天前
    actions 比那些好用多了
    ZeroAsh
        8
    ZeroAsh  
       279 天前
    其实可以自己搭一个 github action 的 runner ,把构建扔给 github 的 runner ,image push 完成之后,然后部署用自己的 runner 跑就能操作集群了
    dayeye2006199
        9
    dayeye2006199  
       279 天前
    你倒过来弄就行了,server 的 key actions 上面存一份,构建完了直接在 actions 里面上传 server 就得了
    hongzx
        10
    hongzx  
       279 天前
    我是 gitea+drone ,docker 部署
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1387 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:15 · PVG 01:15 · LAX 09:15 · JFK 12:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.