一个简单的 CI/CD 管道,实际上有效

2026年8月25日1 次浏览来源:Dev.to阅读原文

大部分CI/CD 教程的问题 大部分教程都显示您有一个管道, 用于免费的Heroku 实例 。

他们跳过杂乱无章的部分: 秘密,回滚, 和你的管道破裂的时刻 因为依赖性改变。

我去过那里。

经过多年与过度工程设置的战斗,我定居在一条最简陋的管线上,这条管线很容易理解,调试,并延伸.

虽不花花相出而能通.

Core Idea A CI/CD管道只是三个阶段: 测试 - 运行自动检查 Build - 创建文物 部署 - 将文物推向服务器 我们将使用 GitHub Actions 因为它是免费的 用于公众重置和与一切的整合.

但同样的概念也适用于GitLab CI,CircleCI,或Jenkins.

管道文件 这里的完整:就是这样。

分出诸相.

第1阶段:试验 工作是按每个推拉请求进行。

它检查代码, 安装依赖性( 它尊重锁文件), 并运行您的测试套件 。

如果公关测试失败,该工作不会因为依赖性而运行.

阶段2:建设 这份工作只推向(而不是公关)。

它将您的应用程序构建成文件夹 。

对于一个Node.js的应用程序,可能是像Vite或webpack这样的捆绑机.

对于一个Python应用,你会替换为或类似的.

第3阶段:部署 部署步骤用于将已建文件复制到您的服务器 。

它的死是简单的,并且为静态站点,节点应用程序,或者任何运行在倒置代理后面的东西工作.

保密管理从不硬码证书.

在 GitHub 中,转到 Sets > Secrets and Variables > Actions,并添加: - 您的服务器 IP 或域 - SSH 用户名(通常是或) - 专用部署用户的私钥 创建您服务器上一个权限有限的单独用户.

别用根.

每次部署都会覆盖上一个文件夹。

这对小型的应用程序来说是不错的,但是如果你打破一些东西,你需要快速回滚.

我保留了服务器上最后三个版本: 然后回滚,只是提取备份。

你可以用脚本来自动化,但即使是手动也比什么都不好.

处理依赖从锁文件安装精确版本.

这可以防止"我的机器上的工作"问题.

对于Python,使用有被固定版本.

执行前测试管道, 本地测试 : 如果两者都通过, 承诺和推向。

注意动作标签,看管线运行 常见的Pitfalls SSH密钥权限:确保私钥采用OpenSSH格式,而非PuTTY.

如果你用它来生成,它的工作。

路径问题: 假设你的建设产出 调整您的项目 。

服务器路径权限 : 部署用户需要写入 。

设置一次与.

扩展管道一旦成功,您可以添加: Linting - 在测试数据库迁移前添加一个任务 - 在部署通知后运行一个单独的任务 - 使用失败发送一个Slack消息 但是,不要添加,直到你需要它们。

这条管道的美丽就是它的简单. 5分钟内就能追踪到整个流量 最后想法 这条管线不会处理Kubernetes或蓝绿色的部署.

但对于大多数侧式项目,小企业应用,甚至一些生产系统,都足够了.

开始简单。

让它工作。

礛 it 这就是建造真正有效的东西的方法.

你建了类似的管道吗?

你最小的设置是什么?

在评论中告诉我.

分享