廉价持续集成

2024/03/16

👁 236♥ 2👀 8🔁 2💬 1

廉价持续集成

廉价持续集成

我们用的是自部署的 GitLab,然后我们的 Runner 是和 GitLab 一起跑在一台配置一般的 EC2 上。

之前测试过,我们的项目在这台 EC2 上构建的话太慢了,大概需要 30 分钟左右。因为不想浪费钱开台独立的更高配置的服务器(只用来跑 Runner 的话利用率太低了,最差的情况可能一天一个 Job 都没),所以这些项目我们一直是人工在本机构建和部署。🤔

最近发现 GitLab 支持「按需」分配 EC2 来跑 CI Job: 🔗 https://docs.gitlab.com/runner/configuration/runner_autoscale_aws/ 这表示我们可以按需使用更高配置的服务器来跑持续集成!长时间没有新 Job 的话 GitLab 会自动帮我们回收服务器 🤗

最终我们项目在 CI 上跑一次 Build 的时间缩小到 4 分钟左右,解放了我人工运维的工作 

其他一些细节: 1️⃣ 使用 Docker In Docker 来构建 2️⃣ 除了一些 Linux 基础命令,其余其他命令全部使用 Docker 来跑(例如 node, aws-cli, aliyun-cli 等 3️⃣ 构建产物是 Docker 镜像,在 CI 中 Push 到 Registry 然后部署到服务器