엔진의 부대·예약턴·집계 변화와 mailbox writer를 저널에 연결하고 dashboard.global 및 인증 아이콘 source를 dependency vector에 포함한다. post-deploy coverage v1 활성화는 shared head seed와 CAS를 한 transaction으로 수행한다.
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
import {
|
|
activateReadModelRevisionCoverage,
|
|
createGamePostgresConnector,
|
|
resolvePostgresConfigFromEnv,
|
|
} from '../dist/index.js';
|
|
|
|
const main = async () => {
|
|
const profile = process.env.READ_MODEL_COVERAGE_PROFILE?.trim();
|
|
const expectedConfirm = profile ? `activate:${profile}:coverage-v1` : '';
|
|
if (!profile || process.env.READ_MODEL_COVERAGE_CONFIRM !== expectedConfirm) {
|
|
throw new Error('confirmation');
|
|
}
|
|
if (!/^[a-zA-Z0-9_-]+$/u.test(profile)) {
|
|
throw new Error('profile');
|
|
}
|
|
|
|
const connector = createGamePostgresConnector(resolvePostgresConfigFromEnv({ schema: profile }));
|
|
try {
|
|
await connector.connect();
|
|
const result = await connector.prisma.$transaction((transaction) =>
|
|
activateReadModelRevisionCoverage(transaction)
|
|
);
|
|
process.stdout.write(
|
|
`${JSON.stringify({
|
|
profile,
|
|
previousVersion: result.previousVersion,
|
|
coverageVersion: result.coverageVersion,
|
|
seededHeads: result.seededHeads,
|
|
})}\n`
|
|
);
|
|
} finally {
|
|
await connector.disconnect();
|
|
}
|
|
};
|
|
|
|
await main().catch(() => {
|
|
process.stderr.write(
|
|
'Read-model coverage activation failed. Check the profile confirmation, built infra package, database connectivity, and current coverage version.\n'
|
|
);
|
|
process.exitCode = 1;
|
|
});
|