版本发布上线:测试、上线与回退,现在各自独立
Creght 新增站点版本和发布环境。每次发布都能保存不可变版本,正式与测试环境可使用不同版本;误发布时无需回滚代码,直接切回稳定版本。

网站发布以后,真正让人紧张的往往不是改动本身,而是一次误操作:草稿中尚未确认的内容进入正式站点,团队只能先回滚代码,再重新发布。现在,Creght 把保存版本和让版本在哪些域名生效拆成了两件事。
新的版本发布能力让每次上线都有明确记录,也让测试、正式上线和紧急回退可以独立完成。
发布不再只有一个“最新版本”
发布当前编辑区时,Creght 会先保存一个不可变的网站版本。每个版本都有站点内独立编号,例如 v166,并可记录版本说明。之后继续编辑网站,不会改变已经保存的历史版本。
你可以创建版本并立即发布到所选环境,也可以只创建版本、暂时不改变任何线上域名。需要再次使用历史版本时,直接从版本列表选择即可,不必重新生成或还原代码。

正式环境与测试环境可以使用不同版本
一个站点现在包含两个默认发布环境:
正式环境:面向真实访客使用的稳定版本。
测试环境:用于上线前检查新页面、内容和交互。
发布时可以多选环境,让同一个版本同时进入正式与测试环境;也可以只更新测试环境,确认无误后,再把完全相同的版本切换到正式环境。切换已有版本不会创建新版本,也不会改动当前编辑区。
每个域名都能选择发布环境
系统域名和每一个自定义域名都可以绑定到正式环境或测试环境。域名设置中会直接显示它使用的环境和当前生效版本,因此不需要根据域名猜测线上内容来自哪一次发布。
多个域名绑定到同一个环境时,只需切换一次环境版本,它们就会一起生效;如果某个域名用于验收或内部测试,把它单独绑定到测试环境即可。

误发布时,不再回滚代码
如果新版本上线后发现问题,只需要:
打开发布面板;
从历史版本中选择最近的稳定版本;
选择正式环境;
点击“切换环境版本”。
正式域名会重新指向稳定版本,而当前编辑区和较新的版本都会保留。你可以继续修复问题,完成后再创建并发布新版本。
一个更稳妥的发布流程
推荐先把新版本发布到测试环境,通过测试域名完成验收;确认无误后,再把同一个版本发布到正式环境。如果线上出现异常,则立即把正式环境切回上一个稳定版本。
版本记录解决“发布了什么”,发布环境解决“在哪里生效”,域名绑定解决“谁能访问”。三者分开以后,发布不再是一条只能向前走的单行道。
