← 中文资源

简体中文版本

可复现构建验证工作流

在两个环境中构建同一修订、比较哈希,并修复时间戳、路径等非确定性来源。

阅读英文原文

概述

可复现构建的价值在于能证明产物确实来自经评审的源码。在两个独立环境构建同一修订并比较哈希、逐一修复时间戳、路径、顺序与并行等非确定来源、把验证纳入发布流程,可让产物来源可被证明。

关键步骤

  1. 在两个独立环境构建同一修订。
  2. 比较产物哈希并列出差异。
  3. 修复非确定性来源:时间戳、路径、顺序、并行。
  4. 记录验证并纳入发布流程。

验证

  • 两环境产物哈希一致。
  • 比较是发布流程的一部分。
  • 不可消除的差异有文档与计划。
  • 验证运行可留存。

决策点

时间戳与路径应修复,不可消除的差异应文档化并给出计划;关键产物应每次发布都验证。

适用范围

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

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

build() { SOURCE_DATE_EPOCH=1700000000 ./build.sh > out/$1.tar; }
build env1
build env2
sha256sum out/env1.tar out/env2.tar