원격 릴리스 빌드에 토큰 파일 인증과 응답 제한을 적용한다
This commit is contained in:
@@ -29,7 +29,12 @@ const main = async (): Promise<void> => {
|
||||
baseEnv: config.baseEnv,
|
||||
});
|
||||
const migrationRunner = new PnpmBuildRunner();
|
||||
const releaseBuildRunner = createReleaseBuildRunner(config.releaseBuilderUrl, migrationRunner);
|
||||
const releaseBuildRunner = createReleaseBuildRunner(
|
||||
config.releaseBuilderUrl,
|
||||
migrationRunner,
|
||||
fetch,
|
||||
config.baseEnv.RELEASE_BUILDER_TOKEN_FILE
|
||||
);
|
||||
const processManager = new Pm2ProcessManager();
|
||||
const controller = new GatewayReleaseController(
|
||||
repository,
|
||||
|
||||
@@ -160,7 +160,12 @@ export class GatewayReleaseController {
|
||||
private readonly now: () => Date = () => new Date(),
|
||||
private readonly fetchImpl: typeof fetch = fetch
|
||||
) {
|
||||
this.releaseBuildRunner = createReleaseBuildRunner(config.releaseBuilderUrl, migrationRunner, fetchImpl);
|
||||
this.releaseBuildRunner = createReleaseBuildRunner(
|
||||
config.releaseBuilderUrl,
|
||||
migrationRunner,
|
||||
fetchImpl,
|
||||
config.baseEnv.RELEASE_BUILDER_TOKEN_FILE
|
||||
);
|
||||
this.artifactManager = new FrontendArtifactManager(config.frontendArtifactRoot ?? '/srv/frontend-artifacts');
|
||||
}
|
||||
|
||||
@@ -509,7 +514,11 @@ export class GatewayReleaseController {
|
||||
}
|
||||
|
||||
private async waitForReadiness(operationId: string): Promise<void> {
|
||||
await this.appendLog(operationId, 'readiness', 'Gateway API, 정적 frontend와 PM2 process readiness를 확인합니다.');
|
||||
await this.appendLog(
|
||||
operationId,
|
||||
'readiness',
|
||||
'Gateway API, 정적 frontend와 PM2 process readiness를 확인합니다.'
|
||||
);
|
||||
const deadline = performance.now() + this.config.readinessTimeoutMs;
|
||||
const apiUrl = `http://127.0.0.1:${this.config.gatewayApiPort}/healthz`;
|
||||
const frontendUrl =
|
||||
@@ -524,10 +533,7 @@ export class GatewayReleaseController {
|
||||
);
|
||||
while (performance.now() < deadline) {
|
||||
try {
|
||||
const [api, frontend] = await Promise.all([
|
||||
this.fetchImpl(apiUrl),
|
||||
this.fetchImpl(frontendUrl),
|
||||
]);
|
||||
const [api, frontend] = await Promise.all([this.fetchImpl(apiUrl), this.fetchImpl(frontendUrl)]);
|
||||
const processes = await this.processManager.list();
|
||||
const expected = processes.filter((process) => expectedNames.includes(process.name));
|
||||
const safe = expected.filter(
|
||||
|
||||
Reference in New Issue
Block a user