fix(release): allow controller protocol self-upgrade
This commit is contained in:
@@ -86,4 +86,6 @@ rollback하려면 새 schema와의 하위 호환성을 릴리스 전에 확인
|
||||
`release-manifest.json`의 `controllerProtocol`이 올라간 릴리스는 controller를
|
||||
먼저 self-upgrade해야 합니다. Protocol 2는 `GatewayReleaseLog` 진행 로그 저장을
|
||||
요구합니다. 구형 controller로 새 Gateway만 배포하면 관리자 화면과 controller의
|
||||
기능이 어긋날 수 있으므로, manifest protocol 검사를 우회하지 마세요.
|
||||
기능이 어긋날 수 있으므로, 일반 배포의 manifest protocol 검사를 우회하지
|
||||
마세요. Self-upgrade CLI만 다음 protocol을 허용하며 schema head와 component는
|
||||
동일하게 검증합니다.
|
||||
|
||||
@@ -65,7 +65,10 @@ export const upgradeReleaseController = async (options: {
|
||||
}): Promise<{ commitSha: string; workspace: string }> => {
|
||||
const commitSha = await options.workspaceManager.resolveCommit(options.sourceMode, options.sourceRef);
|
||||
const workspace = await options.workspaceManager.prepare(commitSha);
|
||||
const manifest = await readReleaseManifest(workspace.root);
|
||||
// The target controller, rather than this bootstrap CLI, owns the target
|
||||
// controller protocol. Keep all manifest/schema/component checks while
|
||||
// allowing this explicit self-upgrade boundary to cross protocol versions.
|
||||
const manifest = await readReleaseManifest(workspace.root, { allowControllerUpgrade: true });
|
||||
assertReleaseComponents(manifest, ['release-controller']);
|
||||
const build = await options.buildRunner.run(
|
||||
buildReleaseControllerCommands(workspace.root, workspace.needsInstall, options.config)
|
||||
|
||||
Reference in New Issue
Block a user