← 中文资源

简体中文版本

封闭式构建 CI 工作流

固定全部输入、从受控镜像按锁定版本获取依赖、构建步骤禁网,并证明构建只用已声明输入。

阅读英文原文

概述

CI 构建若在构建时访问公网,就可能在依赖被篡改时无声受影响。以锁文件固定工具链、基础镜像与依赖,从受控镜像预取,构建步骤禁网而让未声明的网络依赖显式失败,再记录并验证输入,可让构建只依赖已声明内容。

关键步骤

  1. 用锁文件固定工具链、基础镜像与依赖。
  2. 预取依赖到受控镜像或缓存。
  3. 在禁网条件下运行构建步骤。
  4. 记录输入并验证构建只用它们。

验证

  • 禁网条件下构建通过。
  • 移除镜像中某必需输入会使构建失败。
  • 安装步骤从镜像取包而非公网。
  • 输入清单有记录。

决策点

应对整个构建步骤禁网,安装也应走镜像;供应链完整性重要时宜用镜像而非仅锁定版本。

适用范围

本条目围绕「封闭式构建 CI 工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

建议在正式环境落地前先在预发或隔离环境演练一遍,把关键观测指标与负责人一并记录,确保出现异常时能快速定位并恢复。

# CI step with network disabled
- name: build
  run: ./build.sh
  # runner configured without egress; deps already in the mirror