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

277 天前
 rizon

背景说明

最近在部署 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 相关领域的知识)一点点的分享出来。同时也是一个自我总结。 总之,欢迎关注公众号以及加入交流群(在公众号菜单里直接加群)。

2642 次点击
所在节点    程序员
10 条回复
mohumohu
277 天前
GitHub Actions 不好用吗
rizon
277 天前
@mohumohu #1 你说的很对,如果 github 的 actions 玩的转,用 actions 就很好了。如果对 actions 的流程、变量、容器的这些配置有学习成本的话,可以考虑国内的服务。
Trim21
277 天前
印象里每次在 v2 看到 coding 都是幺蛾子,难得有正面的东西😂
28Sv0ngQfIE7Yloe
277 天前
coding 风评不是很好,我选云厂商的 devOPS
Jack927
277 天前
@Trim21 @Morii #3 #4 好奇 coding 发生了啥,想了解下,有关键词吗
vacuitym
277 天前
一直用着 action 部署 java 和 vue
blackmirror
277 天前
actions 比那些好用多了
ZeroAsh
277 天前
其实可以自己搭一个 github action 的 runner ,把构建扔给 github 的 runner ,image push 完成之后,然后部署用自己的 runner 跑就能操作集群了
dayeye2006199
277 天前
你倒过来弄就行了,server 的 key actions 上面存一份,构建完了直接在 actions 里面上传 server 就得了
hongzx
277 天前
我是 gitea+drone ,docker 部署

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1016382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX