Skip to content

Commit 45627e8

Browse files
committed
[#19] Add language input and support for multilingual release notes
1 parent a900b45 commit 45627e8

File tree

5 files changed

+63
-8
lines changed

5 files changed

+63
-8
lines changed

canary-publish/action.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,7 @@ inputs:
3737
description: 'create release with package and version'
3838
required: false
3939
default: 'false'
40+
language:
41+
description: 'language for release note, comment etc.'
42+
required: false
43+
default: 'en'

canary-publish/dist/index.js

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53204,6 +53204,29 @@ function Node (value, prev, next, list) {
5320453204
}
5320553205

5320653206

53207+
/***/ }),
53208+
53209+
/***/ 5264:
53210+
/***/ ((__unused_webpack_module, exports) => {
53211+
53212+
"use strict";
53213+
53214+
Object.defineProperty(exports, "__esModule", ({ value: true }));
53215+
exports.LANGUAGES = void 0;
53216+
exports.LANGUAGES = {
53217+
en: {
53218+
empty: 'No changed files exist under the {PATH} path, no packages have been deployed.',
53219+
error: 'An error occurred during the canary deployment.',
53220+
failure: 'Please specify the detect version for a valid canary version deployment',
53221+
},
53222+
ko: {
53223+
empty: '{PATH} 하위 변경된 파일이 없어, 배포된 패키지가 없습니다.',
53224+
error: '카나리 배포 도중 에러가 발생했습니다.',
53225+
failure: '올바른 카나리 버전 배포를 위해 detect version을 명시해주세요',
53226+
},
53227+
};
53228+
53229+
5320753230
/***/ }),
5320853231

5320953232
/***/ 7630:
@@ -53250,6 +53273,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
5325053273
const core = __importStar(__nccwpck_require__(6108));
5325153274
const exec_1 = __nccwpck_require__(9629);
5325253275
const read_1 = __importDefault(__nccwpck_require__(1746));
53276+
const lang_1 = __nccwpck_require__(5264);
5325353277
const fs = __importStar(__nccwpck_require__(77));
5325453278
const resolve_from_1 = __importDefault(__nccwpck_require__(1345));
5325553279
const apis_1 = __importDefault(__nccwpck_require__(6500));
@@ -53270,12 +53294,13 @@ function main() {
5327053294
yield (0, npm_1.setNpmRc)();
5327153295
const { pullFetchers, issueFetchers } = (0, apis_1.default)();
5327253296
const pullRequestInfo = yield pullFetchers.getPullRequestInfo();
53297+
const language = core.getInput('language');
5327353298
try {
5327453299
// 변경된 사항이 있는지 체크.
5327553300
// 변경사항이 있을때만 카나리를 배포 할 수 있다.
5327653301
const changesets = yield (0, read_1.default)(cwd);
5327753302
if (changesets.length === 0) {
53278-
yield issueFetchers.addComment('올바른 카나리 버전 배포를 위해 detect version을 명시해주세요');
53303+
yield issueFetchers.addComment(lang_1.LANGUAGES[language].failure);
5327953304
return;
5328053305
}
5328153306
const changedFiles = yield (0, utils_1.getChangedAllFiles)({
@@ -53358,6 +53383,7 @@ function main() {
5335853383
const { message, publishedPackages } = (0, publish_1.getPublishedPackageInfos)({
5335953384
execOutput: changesetPublishOutput,
5336053385
packagesDir,
53386+
language,
5336153387
});
5336253388
const createRelease = core.getBooleanInput('create_release');
5336353389
createRelease && (yield (0, publish_1.createReleaseForTags)(publishedPackages.map(({ name, version }) => `${name}@${version}`)));
@@ -53370,7 +53396,7 @@ function main() {
5337053396
}
5337153397
catch (e) {
5337253398
core.error(e === null || e === void 0 ? void 0 : e.message);
53373-
issueFetchers.addComment('카나리 배포 도중 에러가 발생했습니다.');
53399+
issueFetchers.addComment(lang_1.LANGUAGES[language].error);
5337453400
}
5337553401
});
5337653402
}
@@ -53599,8 +53625,9 @@ exports.createReleaseForTags = createReleaseForTags;
5359953625
const node_child_process_1 = __nccwpck_require__(7718);
5360053626
const core = __importStar(__nccwpck_require__(6108));
5360153627
const exec_1 = __nccwpck_require__(9629);
53628+
const lang_1 = __nccwpck_require__(5264);
5360253629
const utils_1 = __nccwpck_require__(3927);
53603-
function getPublishedPackageInfos({ packagesDir, execOutput }) {
53630+
function getPublishedPackageInfos({ packagesDir, execOutput, language, }) {
5360453631
const publishedPackages = [];
5360553632
for (const publishOutput of execOutput.stdout.split('\n')) {
5360653633
// eslint-disable-next-line no-useless-escape
@@ -53616,7 +53643,7 @@ function getPublishedPackageInfos({ packagesDir, execOutput }) {
5361653643
const copyCodeBlock = uniqPackages.map(({ name, version }) => `${name}@${version}`).join('\n');
5361753644
const message = uniqPackages.length > 0
5361853645
? ['## Published Canary Packages', '', '', '```', `${copyCodeBlock}`, '```'].join('\n')
53619-
: `${packagesDir} 하위 변경된 파일이 없어, 배포된 패키지가 없습니다.`;
53646+
: lang_1.LANGUAGES[language].empty.replace('{PATH}', packagesDir);
5362053647
return {
5362153648
message,
5362253649
publishedPackages: uniqPackages,
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export const LANGUAGES = {
2+
en: {
3+
empty: 'No changed files exist under the {PATH} path, no packages have been deployed.',
4+
error: 'An error occurred during the canary deployment.',
5+
failure: 'Please specify the detect version for a valid canary version deployment',
6+
},
7+
ko: {
8+
empty: '{PATH} 하위 변경된 파일이 없어, 배포된 패키지가 없습니다.',
9+
error: '카나리 배포 도중 에러가 발생했습니다.',
10+
failure: '올바른 카나리 버전 배포를 위해 detect version을 명시해주세요',
11+
},
12+
}

canary-publish/src/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as core from '@actions/core'
22
import {exec, getExecOutput} from '@actions/exec'
33
import readChangesets from '@changesets/read'
4+
import {LANGUAGES} from 'canary-publish/src/constants/lang'
45
import * as fs from 'fs-extra'
56
import resolveFrom from 'resolve-from'
67

@@ -25,14 +26,15 @@ async function main() {
2526

2627
const {pullFetchers, issueFetchers} = createFetchers()
2728
const pullRequestInfo = await pullFetchers.getPullRequestInfo()
29+
const language = core.getInput('language') as 'ko' | 'en'
2830

2931
try {
3032
// 변경된 사항이 있는지 체크.
3133
// 변경사항이 있을때만 카나리를 배포 할 수 있다.
3234
const changesets = await readChangesets(cwd)
3335

3436
if (changesets.length === 0) {
35-
await issueFetchers.addComment('올바른 카나리 버전 배포를 위해 detect version을 명시해주세요')
37+
await issueFetchers.addComment(LANGUAGES[language].failure)
3638

3739
return
3840
}
@@ -139,6 +141,7 @@ async function main() {
139141
const {message, publishedPackages} = getPublishedPackageInfos({
140142
execOutput: changesetPublishOutput,
141143
packagesDir,
144+
language,
142145
})
143146

144147
const createRelease = core.getBooleanInput('create_release')
@@ -154,7 +157,7 @@ async function main() {
154157
core.setOutput('message', message)
155158
} catch (e) {
156159
core.error((e as Error)?.message)
157-
issueFetchers.addComment('카나리 배포 도중 에러가 발생했습니다.')
160+
issueFetchers.addComment(LANGUAGES[language].error)
158161
}
159162
}
160163

canary-publish/src/utils/publish.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,19 @@ import {execSync} from 'node:child_process'
22

33
import * as core from '@actions/core'
44
import {ExecOutput, exec} from '@actions/exec'
5+
import {LANGUAGES} from 'canary-publish/src/constants/lang'
56

67
import {uniqBy} from '$actions/utils'
78

8-
export function getPublishedPackageInfos({packagesDir, execOutput}: {execOutput: ExecOutput; packagesDir: string}) {
9+
export function getPublishedPackageInfos({
10+
packagesDir,
11+
execOutput,
12+
language,
13+
}: {
14+
execOutput: ExecOutput
15+
packagesDir: string
16+
language: 'ko' | 'en'
17+
}) {
918
const publishedPackages = []
1019

1120
for (const publishOutput of execOutput.stdout.split('\n')) {
@@ -26,7 +35,7 @@ export function getPublishedPackageInfos({packagesDir, execOutput}: {execOutput:
2635
const message =
2736
uniqPackages.length > 0
2837
? ['## Published Canary Packages', '', '', '```', `${copyCodeBlock}`, '```'].join('\n')
29-
: `${packagesDir} 하위 변경된 파일이 없어, 배포된 패키지가 없습니다.`
38+
: LANGUAGES[language].empty.replace('{PATH}', packagesDir)
3039

3140
return {
3241
message,

0 commit comments

Comments
 (0)