@24i/smartapps-bigscreen-rnv-build-engine 0.0.2-alpha.1355 → 0.0.2-alpha.1357
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/constants/buildSchemes.js +1 -1
- package/dist/src/constants/platforms.js +1 -1
- package/dist/src/index.js +21 -23
- package/dist/src/resolvers/resolveBaseUrl.js +12 -14
- package/dist/src/resolvers/resolveBuildVersion.js +15 -16
- package/dist/src/resolvers/resolveBuildVersionOffset.js +11 -12
- package/dist/src/resolvers/resolveDeployLocations.js +41 -54
- package/dist/src/resolvers/resolveGenericRnvConfig.js +17 -29
- package/dist/src/resolvers/resolveHbbtvDeployConfig.js +2 -2
- package/dist/src/resolvers/resolveHbbtvDeployUrl.js +6 -6
- package/dist/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.js +11 -11
- package/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +10 -10
- package/dist/src/scripts/buildAllWithScheme.js +13 -13
- package/dist/src/scripts/gitReleaser/afterVersionBump.js +9 -10
- package/dist/src/scripts/gitReleaser/beforeVersionBump.js +6 -7
- package/dist/src/scripts/gitReleaser/checkReleaseNotes.js +8 -9
- package/dist/src/scripts/gitReleaser/pushRelease.js +16 -17
- package/dist/src/scripts/gitReleaser/pushReleaseCandidate.js +3 -3
- package/dist/src/scripts/gitReleaser/pushReleaseNotes.js +15 -16
- package/dist/src/scripts/release/deleteSourceMaps.js +5 -5
- package/dist/src/scripts/release/deployToAppCenter.js +34 -35
- package/dist/src/scripts/release/githubRelease.js +56 -60
- package/dist/src/scripts/release/notifySlack/makePayload.js +43 -47
- package/dist/src/scripts/release/notifySlack/notifySlack.js +9 -10
- package/dist/src/scripts/release/notifySlack/slackBlockKitBuilder.js +20 -23
- package/dist/src/scripts/release/sentryRelease.js +33 -36
- package/dist/src/scripts/release/urlsMarkdown.js +22 -24
- package/dist/src/scripts/releaseAllWithScheme.js +25 -25
- package/dist/src/scripts/utils/cmdUtils.js +5 -5
- package/dist/src/scripts/utils/fsUtils.js +5 -5
- package/dist/src/scripts/utils/gitUtils.js +37 -37
- package/dist/src/scripts/utils/stringUtils.js +1 -4
- package/dist/src/sdks/index.js +14 -53
- package/dist/src/sdks/sdk-tizen/index.js +145 -250
- package/dist/src/sdks/sdk-webos/index.js +133 -231
- package/dist/src/sdks/sdk-webpack/index.js +19 -68
- package/dist/src/sdks/sdkUtils.js +13 -58
- package/dist/src/tasks/deploy/aswS3/aws.js +8 -8
- package/dist/src/tasks/deploy/aswS3/deployS3.js +43 -82
- package/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +67 -136
- package/dist/src/tasks/engineTasks.js +9 -9
- package/dist/src/tasks/task.rnv.build.js +70 -127
- package/dist/src/tasks/task.rnv.configure.js +37 -87
- package/dist/src/tasks/task.rnv.configureSoft.js +20 -73
- package/dist/src/tasks/task.rnv.deploy.js +27 -77
- package/dist/src/tasks/task.rnv.hooks.run.js +40 -91
- package/dist/src/tasks/task.rnv.package.js +16 -59
- package/dist/src/tasks/task.rnv.project.configure.js +78 -181
- package/dist/src/tasks/task.rnv.start.js +39 -85
- package/dist/src/utils/forEachSupportedPlatformFlavour.js +11 -12
- package/dist/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.js +9 -10
- package/dist/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.js +22 -28
- package/dist/src/utils/zipBuildsByPlatforms.js +24 -24
- package/dist/templates/platforms/_shared/template.js +53 -38
- package/dist/templates/platforms/_shared/webpack.base.js +86 -106
- package/dist/templates/platforms/entone/webpack.config.dev.js +43 -22
- package/dist/templates/platforms/entone/webpack.config.prod.js +38 -21
- package/dist/templates/platforms/hbbtv/webpack.config.dev.js +57 -23
- package/dist/templates/platforms/hbbtv/webpack.config.prod.js +52 -22
- package/dist/templates/platforms/tizen/webpack.config.dev.js +44 -22
- package/dist/templates/platforms/tizen/webpack.config.prod.js +38 -21
- package/dist/templates/platforms/webos/webpack.config.dev.js +47 -24
- package/dist/templates/platforms/webos/webpack.config.prod.js +40 -23
- package/dist/templates/platforms/webtv/webpack.config.dev.js +43 -22
- package/dist/templates/platforms/webtv/webpack.config.prod.js +38 -21
- package/package.json +2 -2
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const resolvers_1 = require("../../resolvers");
|
|
5
|
+
const gitUtils_1 = require("../utils/gitUtils");
|
|
6
|
+
const { ok } = assert_1.strict;
|
|
7
|
+
const c = resolvers_1.getBaseConfig();
|
|
8
|
+
const { branchNames = {}, commitTitles = {} } = c.buildConfig?.common?.git || {};
|
|
10
9
|
ok(branchNames.dev);
|
|
11
10
|
ok(branchNames.rc);
|
|
12
11
|
ok(commitTitles.versionBump);
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkReleaseNotes = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _c = ((_b = (_a = c.buildConfig) === null || _a === void 0 ? void 0 : _a.common) === null || _b === void 0 ? void 0 : _b.releaseNotes) || {}, relativePath = _c.relativePath, _d = _c.requiredRows, requiredRows = _d === void 0 ? [] : _d;
|
|
4
|
+
const assert_1 = require("assert");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const { ok } = assert_1.strict;
|
|
7
|
+
const checkReleaseNotes = (c) => {
|
|
8
|
+
const { relativePath, requiredRows = [] } = c.buildConfig?.common?.releaseNotes || {};
|
|
10
9
|
utils_1.fsUtils.assertPath(relativePath);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const fileContent = utils_1.fsUtils.getFileContentAsString(relativePath);
|
|
11
|
+
const assertFileContentRow = (expectedRowContent) => {
|
|
12
|
+
const errorMsg = `${relativePath} should contain following row: "${expectedRowContent}"`;
|
|
14
13
|
ok(fileContent.includes(expectedRowContent), errorMsg);
|
|
15
14
|
};
|
|
16
15
|
requiredRows.forEach(assertFileContentRow);
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const resolvers_1 = require("../../resolvers");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const checkReleaseNotes_1 = require("./checkReleaseNotes");
|
|
7
|
+
const { ok } = assert_1.strict;
|
|
8
|
+
const c = resolvers_1.getBaseConfig();
|
|
9
|
+
const { branchNames = {}, pullRequestTitles } = c.buildConfig?.common?.git || {};
|
|
10
|
+
const rcBranchName = branchNames.rc;
|
|
11
|
+
const distBranchName = branchNames.dist;
|
|
12
|
+
const devBranchName = branchNames.dev;
|
|
14
13
|
ok(rcBranchName);
|
|
15
14
|
ok(distBranchName);
|
|
16
15
|
ok(devBranchName);
|
|
@@ -18,16 +17,16 @@ utils_1.gitUtils.assertCurrentBranch(rcBranchName);
|
|
|
18
17
|
utils_1.gitUtils.assertEmptyStatusList();
|
|
19
18
|
utils_1.gitUtils.assertRemoteBranch(rcBranchName);
|
|
20
19
|
utils_1.gitUtils.assertRemoteBranch(distBranchName);
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
const distributionPrTitle = pullRequestTitles.rcToDist;
|
|
21
|
+
const developmentPrTitle = pullRequestTitles.rcToDev;
|
|
23
22
|
ok(distributionPrTitle);
|
|
24
23
|
ok(developmentPrTitle);
|
|
25
24
|
utils_1.gitUtils.pull();
|
|
26
25
|
checkReleaseNotes_1.checkReleaseNotes(c);
|
|
27
|
-
console.log(
|
|
28
|
-
console.log(
|
|
26
|
+
console.log(`Creating Pull Request from ${rcBranchName} branch to ${distBranchName} branch...`);
|
|
27
|
+
console.log(`Applied PR title: "${distributionPrTitle}"`);
|
|
29
28
|
utils_1.gitUtils.pullRequest(rcBranchName, distBranchName, distributionPrTitle);
|
|
30
|
-
console.log(
|
|
31
|
-
console.log(
|
|
29
|
+
console.log(`\nCreating Pull Request from ${rcBranchName} branch to ${devBranchName} branch...`);
|
|
30
|
+
console.log(`Applied PR title: "${developmentPrTitle}"`);
|
|
32
31
|
utils_1.gitUtils.pullRequest(rcBranchName, devBranchName, developmentPrTitle);
|
|
33
32
|
console.log('\nDone! Pull requests have been created!');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
const child_process_1 = require("child_process");
|
|
4
4
|
console.log('Bumping the version...');
|
|
5
|
-
|
|
6
|
-
child_process_1.execSync(
|
|
5
|
+
const bumpType = process.argv[2] || 'patch';
|
|
6
|
+
child_process_1.execSync(`npm --no-git-tag-version version ${bumpType}`, { stdio: 'inherit' });
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c, _d;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const resolvers_1 = require("../../resolvers");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const checkReleaseNotes_1 = require("./checkReleaseNotes");
|
|
7
|
+
const { ok } = assert_1.strict;
|
|
8
|
+
const c = resolvers_1.getBaseConfig();
|
|
9
|
+
const { branchNames = {}, commitTitles = {}, pullRequestTitles = {}, } = c.buildConfig?.common?.git || {};
|
|
10
|
+
const { relativePath = [] } = c.buildConfig?.common?.releaseNotes || {};
|
|
11
|
+
const rcBranchName = branchNames.rc;
|
|
12
|
+
const releaseNotesBranchName = branchNames.rcReleaseNotes;
|
|
13
|
+
const commitTitle = commitTitles.rcReleaseNotes;
|
|
14
|
+
const prTitle = pullRequestTitles.releaseNotesToRc;
|
|
16
15
|
ok(relativePath);
|
|
17
16
|
ok(releaseNotesBranchName);
|
|
18
17
|
ok(commitTitle);
|
|
@@ -21,13 +20,13 @@ utils_1.gitUtils.assertCurrentBranch(rcBranchName);
|
|
|
21
20
|
utils_1.gitUtils.assertRemoteBranch(rcBranchName);
|
|
22
21
|
checkReleaseNotes_1.checkReleaseNotes(c);
|
|
23
22
|
utils_1.gitUtils.pull();
|
|
24
|
-
|
|
23
|
+
const changedFilesCount = utils_1.gitUtils.statusList().length;
|
|
25
24
|
if (changedFilesCount === 0) {
|
|
26
|
-
console.log(
|
|
25
|
+
console.log(`It seems ${relativePath} file has been updated before.`);
|
|
27
26
|
console.log('Skipping making a commit, if needed, please continue on your own (manually).');
|
|
28
27
|
}
|
|
29
28
|
else {
|
|
30
|
-
ok(changedFilesCount === 1,
|
|
29
|
+
ok(changedFilesCount === 1, `Only ${relativePath} should contain changes!`);
|
|
31
30
|
utils_1.gitUtils.createBranch(releaseNotesBranchName);
|
|
32
31
|
utils_1.gitUtils.checkout(releaseNotesBranchName);
|
|
33
32
|
utils_1.gitUtils.add([relativePath]);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.deleteSourceMaps = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
executeSync(
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const executeSync = (cmd) => child_process_1.execSync(cmd, { stdio: 'inherit' });
|
|
6
|
+
const deleteSourceMaps = (c) => {
|
|
7
|
+
const { platformBuildsDir } = c.buildConfig.paths;
|
|
8
|
+
executeSync(`find ${platformBuildsDir} -type f -iname "*.map" -delete`);
|
|
9
9
|
console.log('Source Maps deleted...');
|
|
10
10
|
};
|
|
11
11
|
exports.deleteSourceMaps = deleteSourceMaps;
|
|
@@ -20,24 +20,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.deployToAppCenter = void 0;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
const child_process_1 = require("child_process");
|
|
24
|
+
const fs = __importStar(require("fs"));
|
|
25
|
+
const common_1 = require("rnv/dist/core/common");
|
|
26
|
+
const resolvers_1 = require("../../resolvers");
|
|
27
|
+
const urlsMarkdown_1 = require("./urlsMarkdown");
|
|
28
|
+
const appCenterRelease = (params) => {
|
|
29
|
+
const { filePath, releaseNotesPath, buildVersion, token, projectName, group = 'Collaborators', organizationName = '24i-Media', } = params;
|
|
30
|
+
const app = `${organizationName}/${projectName}`;
|
|
31
31
|
child_process_1.execSync('appcenter distribute release '
|
|
32
|
-
+
|
|
33
|
-
+
|
|
34
|
-
+
|
|
35
|
-
+
|
|
36
|
-
+
|
|
37
|
-
+
|
|
32
|
+
+ `--file "${filePath}" `
|
|
33
|
+
+ `--release-notes-file "${releaseNotesPath}" `
|
|
34
|
+
+ `--build-version "${buildVersion}" `
|
|
35
|
+
+ `--app "${app}" `
|
|
36
|
+
+ `--token "${token}" `
|
|
37
|
+
+ `--group "${group}" `
|
|
38
38
|
+ '--disable-telemetry', { stdio: 'inherit' });
|
|
39
39
|
};
|
|
40
|
-
|
|
40
|
+
const getAppCenterConfigByPlatformName = (c, platformName) => {
|
|
41
41
|
try {
|
|
42
42
|
return c.buildConfig.platforms[platformName].deploy.appCenter || null;
|
|
43
43
|
}
|
|
@@ -45,40 +45,39 @@ var getAppCenterConfigByPlatformName = function (c, platformName) {
|
|
|
45
45
|
return null;
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
var envVariableName = "APPCENTER_TOKEN_" + platformName.toUpperCase();
|
|
48
|
+
const getTokenByPlatform = (platformName = '') => {
|
|
49
|
+
const envVariableName = `APPCENTER_TOKEN_${platformName.toUpperCase()}`;
|
|
51
50
|
return process.env[envVariableName] || '';
|
|
52
51
|
};
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
const processPlatform = (c, platformName) => {
|
|
53
|
+
const appCenterConfig = getAppCenterConfigByPlatformName(c, platformName);
|
|
55
54
|
if (!appCenterConfig)
|
|
56
55
|
return;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
const { appName } = appCenterConfig;
|
|
57
|
+
const token = getTokenByPlatform(platformName);
|
|
58
|
+
const zipPath = resolvers_1.resolveZippedPlatformBuildsRelativeFilePath(c, platformName);
|
|
59
|
+
const buildVersion = common_1.getConfigProp(c, platformName, 'packageVersion', '');
|
|
60
|
+
const releaseNotesPath = common_1.getConfigProp(c, platformName, 'releaseNotes', {}).relativePath || '';
|
|
62
61
|
if (!appName || !token || !releaseNotesPath || !zipPath || !buildVersion)
|
|
63
62
|
return;
|
|
64
|
-
|
|
63
|
+
const tempReleaseNotesPath = `RELEASE_NOTES_APPCENTER_${platformName.toUpperCase()}.md`;
|
|
65
64
|
if (fs.existsSync(tempReleaseNotesPath)) {
|
|
66
65
|
fs.unlinkSync(tempReleaseNotesPath);
|
|
67
66
|
}
|
|
68
|
-
child_process_1.execSync(
|
|
69
|
-
|
|
70
|
-
child_process_1.execSync(
|
|
71
|
-
console.log(
|
|
67
|
+
child_process_1.execSync(`cat ${releaseNotesPath} >> ${tempReleaseNotesPath}`);
|
|
68
|
+
const urlsMarkdown = urlsMarkdown_1.getUrlsMarkdown(c, [platformName]);
|
|
69
|
+
child_process_1.execSync(`echo "${urlsMarkdown}" >> ${tempReleaseNotesPath}`);
|
|
70
|
+
console.log(`Deploying ${platformName} platform to AppCenter.ms...`);
|
|
72
71
|
appCenterRelease({
|
|
73
72
|
projectName: appName,
|
|
74
|
-
buildVersion
|
|
73
|
+
buildVersion,
|
|
75
74
|
filePath: zipPath,
|
|
76
75
|
releaseNotesPath: tempReleaseNotesPath,
|
|
77
|
-
token
|
|
76
|
+
token,
|
|
78
77
|
});
|
|
79
78
|
};
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
supportedPlatforms.forEach(
|
|
79
|
+
const deployToAppCenter = (c) => {
|
|
80
|
+
const { supportedPlatforms = [] } = c.buildConfig.defaults || {};
|
|
81
|
+
supportedPlatforms.forEach((platformName) => processPlatform(c, platformName));
|
|
83
82
|
};
|
|
84
83
|
exports.deployToAppCenter = deployToAppCenter;
|
|
@@ -20,34 +20,31 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.githubRelease = void 0;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
const child_process_1 = require("child_process");
|
|
24
|
+
const fs = __importStar(require("fs"));
|
|
25
|
+
const assert_1 = require("assert");
|
|
26
|
+
const path_1 = require("path");
|
|
27
|
+
const resolvers_1 = require("../../resolvers");
|
|
28
|
+
const urlsMarkdown_1 = require("./urlsMarkdown");
|
|
29
|
+
const { ok } = assert_1.strict;
|
|
30
|
+
const token = process.env.GITHUB_TOKEN;
|
|
31
|
+
const targetCommit = process.env.TRAVIS_COMMIT;
|
|
32
|
+
const githubContentType = 'application/vnd.github.v3+json';
|
|
33
|
+
const githubReleaseNotesPath = 'RELEASE_NOTES_GITHUB.md';
|
|
34
|
+
const handleResponseErrors = (response) => {
|
|
35
|
+
const { errors, message } = response;
|
|
36
36
|
if (message && !errors)
|
|
37
|
-
throw new Error(
|
|
37
|
+
throw new Error(`GitHub error: ${message}`);
|
|
38
38
|
if (!errors)
|
|
39
39
|
return;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
var errorsDetails = errors.map(makeErrorDetailString);
|
|
48
|
-
throw new Error("GitHub error: " + (message || '') + "\n" + errorsDetails.join('\n'));
|
|
40
|
+
const makeErrorDetailString = (error = {}) => Object
|
|
41
|
+
.keys(error)
|
|
42
|
+
.map((key) => `${key}: "${error[key]}"`)
|
|
43
|
+
.join(', ');
|
|
44
|
+
const errorsDetails = errors.map(makeErrorDetailString);
|
|
45
|
+
throw new Error(`GitHub error: ${message || ''}\n${errorsDetails.join('\n')}`);
|
|
49
46
|
};
|
|
50
|
-
|
|
47
|
+
const getReleaseNotesPath = (c) => {
|
|
51
48
|
try {
|
|
52
49
|
return c.buildConfig.common.releaseNotes.relativePath || '';
|
|
53
50
|
}
|
|
@@ -55,30 +52,30 @@ var getReleaseNotesPath = function (c) {
|
|
|
55
52
|
return '';
|
|
56
53
|
}
|
|
57
54
|
};
|
|
58
|
-
|
|
55
|
+
const deleteFileIfExists = (filePath) => {
|
|
59
56
|
if (fs.existsSync(filePath)) {
|
|
60
57
|
fs.unlinkSync(filePath);
|
|
61
58
|
}
|
|
62
59
|
};
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
const makeGitHubReleaseNotes = (c) => {
|
|
61
|
+
const releaseNotesPath = getReleaseNotesPath(c);
|
|
65
62
|
ok(releaseNotesPath, 'The path to the file with release notes is missing!');
|
|
66
63
|
deleteFileIfExists(githubReleaseNotesPath);
|
|
67
|
-
child_process_1.execSync(
|
|
68
|
-
|
|
69
|
-
child_process_1.execSync(
|
|
64
|
+
child_process_1.execSync(`sed '1d;2d' ${releaseNotesPath} >> ${githubReleaseNotesPath}`);
|
|
65
|
+
const textToAppend = urlsMarkdown_1.getUrlsMarkdown(c);
|
|
66
|
+
child_process_1.execSync(`echo "${textToAppend}" >> ${githubReleaseNotesPath}`);
|
|
70
67
|
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
const createRelease = (c) => {
|
|
69
|
+
const { packageVersion, git = {} } = c.buildConfig.common;
|
|
70
|
+
const versionLabel = `v${packageVersion}`;
|
|
74
71
|
ok(token, 'process.env.GITHUB_TOKEN is not set!');
|
|
75
72
|
ok(targetCommit, 'process.env.TRAVIS_COMMIT is not set!');
|
|
76
73
|
ok(git.owner, 'Missing value for rnv config prop: common.git.owner');
|
|
77
74
|
ok(git.repo, 'Missing value for rnv config prop: common.git.repo');
|
|
78
75
|
ok(packageVersion);
|
|
79
76
|
makeGitHubReleaseNotes(c);
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
const releaseNotesContent = fs.readFileSync(githubReleaseNotesPath).toString();
|
|
78
|
+
const data = {
|
|
82
79
|
tag_name: versionLabel,
|
|
83
80
|
target_commitish: targetCommit,
|
|
84
81
|
name: versionLabel,
|
|
@@ -86,50 +83,49 @@ var createRelease = function (c) {
|
|
|
86
83
|
draft: false,
|
|
87
84
|
prerelease: false,
|
|
88
85
|
};
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
console.log(
|
|
94
|
-
|
|
95
|
-
|
|
86
|
+
const url = `https://api.github.com/repos/${git.owner}/${git.repo}/releases`;
|
|
87
|
+
const headers = `-H "Accept: ${githubContentType}" -H "Authorization: token ${token}"`;
|
|
88
|
+
const dataStringWithFixedSingleQuotes = JSON.stringify(data).replace(/'/g, "'\\''");
|
|
89
|
+
const cmd = `curl -X POST ${headers} ${url} -d '${dataStringWithFixedSingleQuotes}'`;
|
|
90
|
+
console.log(`Pushing GitHub Release: ${versionLabel}...`);
|
|
91
|
+
const responseString = child_process_1.execSync(cmd, { stdio: 'pipe' }).toString();
|
|
92
|
+
const response = JSON.parse(responseString);
|
|
96
93
|
handleResponseErrors(response);
|
|
97
94
|
console.log('Pushing done.');
|
|
98
95
|
return response;
|
|
99
96
|
};
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
const getFileMimeType = (filepath) => {
|
|
98
|
+
const cmd = `file --mime-type -b ${filepath}`;
|
|
102
99
|
return child_process_1.execSync(cmd, { stdio: 'pipe' })
|
|
103
100
|
.toString()
|
|
104
101
|
.replace(/\r?\n/, '');
|
|
105
102
|
};
|
|
106
|
-
|
|
107
|
-
if (uploadUrl === void 0) { uploadUrl = ''; }
|
|
103
|
+
const uploadAsset = (uploadUrl = '', filePath) => {
|
|
108
104
|
if (!uploadUrl)
|
|
109
105
|
return null;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
console.log(
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
const url = `${uploadUrl.replace('{?name,label}', '')}`;
|
|
107
|
+
const headers = `-H "Accept: ${githubContentType}" -H "Authorization: token ${token}" -H "content-type: ${getFileMimeType(filePath)}" -H "content-length: ${fs.statSync(filePath).size}"`;
|
|
108
|
+
const cmd = `curl --data-binary @"${filePath}" ${headers} ${url}?name=${path_1.basename(filePath)}`;
|
|
109
|
+
console.log(`Uploading ${filePath} asset to created GitHub Release...`);
|
|
110
|
+
const responseString = child_process_1.execSync(cmd, { stdio: 'pipe' }).toString();
|
|
111
|
+
const uploadResponse = JSON.parse(responseString);
|
|
116
112
|
handleResponseErrors(uploadResponse);
|
|
117
113
|
console.log('Uploading done.');
|
|
118
114
|
return uploadResponse;
|
|
119
115
|
};
|
|
120
|
-
|
|
121
|
-
|
|
116
|
+
const uploadZipWithPlatformBuilds = (c, platformName, githubUploadUrl) => {
|
|
117
|
+
const zipFilePath = resolvers_1.resolveZippedPlatformBuildsRelativeFilePath(c, platformName);
|
|
122
118
|
if (zipFilePath) {
|
|
123
119
|
uploadAsset(githubUploadUrl, zipFilePath);
|
|
124
120
|
}
|
|
125
121
|
};
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
const githubRelease = (c) => {
|
|
123
|
+
const releaseResponse = createRelease(c) || {};
|
|
124
|
+
const uploadUrl = releaseResponse.upload_url;
|
|
129
125
|
ok(uploadUrl, 'Missing "upload_url" in release response!');
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
supportedPlatforms.forEach(
|
|
126
|
+
const { defaults = {} } = c.buildConfig;
|
|
127
|
+
const { supportedPlatforms = [] } = defaults;
|
|
128
|
+
supportedPlatforms.forEach((platformName) => {
|
|
133
129
|
uploadZipWithPlatformBuilds(c, platformName, uploadUrl);
|
|
134
130
|
});
|
|
135
131
|
deleteFileIfExists(githubReleaseNotesPath);
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
3
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
4
|
-
to[j] = from[i];
|
|
5
|
-
return to;
|
|
6
|
-
};
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.makeDistributionPayload = exports.makeReleaseCandidatePayload = exports.makeDevelopmentPayload = void 0;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
const slackBlockKitBuilder_1 = require("./slackBlockKitBuilder");
|
|
5
|
+
const resolvers_1 = require("../../../resolvers");
|
|
6
|
+
const getVersionsObject = (c) => {
|
|
7
|
+
const { versions = [] } = resolvers_1.resolveDeployLocations(c) || {};
|
|
13
8
|
return versions;
|
|
14
9
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
const getVersion = (c) => Object.keys(getVersionsObject(c))[0] || '';
|
|
11
|
+
const getPlatformsObject = (c) => {
|
|
12
|
+
const version = getVersion(c);
|
|
13
|
+
const { platforms = {} } = getVersionsObject(c)[version] || {};
|
|
19
14
|
return platforms;
|
|
20
15
|
};
|
|
21
|
-
|
|
16
|
+
const getCommonAppName = (c) => {
|
|
22
17
|
try {
|
|
23
18
|
return c.buildConfig.common.appName;
|
|
24
19
|
}
|
|
@@ -26,67 +21,68 @@ var getCommonAppName = function (c) {
|
|
|
26
21
|
return '';
|
|
27
22
|
}
|
|
28
23
|
};
|
|
29
|
-
|
|
30
|
-
.map(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return "- *" + flavour + "* [<" + packageUrl + "|Download>] [<" + indexUrl + "|Open deployed index.html>]";
|
|
24
|
+
const makeFlavoursMarkdown = (platformName, entries) => entries
|
|
25
|
+
.map(([flavour, flavourData]) => {
|
|
26
|
+
const { indexUrl, packageUrl } = flavourData;
|
|
27
|
+
return `- *${flavour}* [<${packageUrl}|Download>] [<${indexUrl}|Open deployed index.html>]`;
|
|
34
28
|
})
|
|
35
|
-
.join('\n');
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
29
|
+
.join('\n');
|
|
30
|
+
const makePackagePayload = (c, platformName) => {
|
|
31
|
+
const platformData = getPlatformsObject(c)[platformName];
|
|
32
|
+
const flavoursEntries = Object.entries(platformData);
|
|
39
33
|
return [
|
|
40
34
|
slackBlockKitBuilder_1.Divider.plain(),
|
|
41
|
-
slackBlockKitBuilder_1.Context.mrkdwns([
|
|
35
|
+
slackBlockKitBuilder_1.Context.mrkdwns([`Platform: *${platformName}*`]),
|
|
42
36
|
slackBlockKitBuilder_1.Context.mrkdwns([makeFlavoursMarkdown(platformName, flavoursEntries)]),
|
|
43
37
|
];
|
|
44
38
|
};
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
const makePackagesPayload = (c) => {
|
|
40
|
+
const platformList = Object.keys(getPlatformsObject(c));
|
|
47
41
|
return platformList
|
|
48
|
-
.map(
|
|
42
|
+
.map((platformName) => makePackagePayload(c, platformName))
|
|
49
43
|
.flat();
|
|
50
44
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var version = getVersion(c);
|
|
45
|
+
const makeHeaderPayload = (c, { title = '', buttons }) => {
|
|
46
|
+
const { travisBuild, gitHubRelease } = buttons || {};
|
|
47
|
+
const { owner, repo } = c.buildConfig.common.git || {};
|
|
48
|
+
const version = getVersion(c);
|
|
56
49
|
return [
|
|
57
50
|
slackBlockKitBuilder_1.Divider.plain(),
|
|
58
51
|
slackBlockKitBuilder_1.Section.mrkdwn(title),
|
|
59
|
-
slackBlockKitBuilder_1.Context.mrkdwns([
|
|
52
|
+
slackBlockKitBuilder_1.Context.mrkdwns([`Version: *${version}*`]),
|
|
60
53
|
slackBlockKitBuilder_1.Actions.buttons([
|
|
61
54
|
travisBuild ? {
|
|
62
55
|
text: 'View Travis Build Log',
|
|
63
|
-
url: process.env.TRAVIS_BUILD_WEB_URL ||
|
|
56
|
+
url: process.env.TRAVIS_BUILD_WEB_URL || `https://travis-ci.com/github/${owner}/${repo}/branches`,
|
|
64
57
|
} : null,
|
|
65
58
|
gitHubRelease ? {
|
|
66
59
|
text: 'View GitHub Release',
|
|
67
|
-
url:
|
|
60
|
+
url: `https://github.com/${owner}/${repo}/releases/tag/${version}`,
|
|
68
61
|
} : null,
|
|
69
62
|
].filter(Boolean)),
|
|
70
63
|
];
|
|
71
64
|
};
|
|
72
|
-
|
|
73
|
-
blocks:
|
|
74
|
-
})
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
65
|
+
const makePayload = (c, title, buttons) => ({
|
|
66
|
+
blocks: [
|
|
67
|
+
...makeHeaderPayload(c, { title, buttons }),
|
|
68
|
+
...makePackagesPayload(c),
|
|
69
|
+
],
|
|
70
|
+
});
|
|
71
|
+
const makeDevelopmentPayload = (c) => {
|
|
72
|
+
const title = `There are new *development* builds for *${getCommonAppName(c)}* app!`;
|
|
73
|
+
const buttons = { travisBuild: true };
|
|
78
74
|
return makePayload(c, title, buttons);
|
|
79
75
|
};
|
|
80
76
|
exports.makeDevelopmentPayload = makeDevelopmentPayload;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
77
|
+
const makeReleaseCandidatePayload = (c) => {
|
|
78
|
+
const title = `There are new *release candidate* builds for *${getCommonAppName(c)}* app!`;
|
|
79
|
+
const buttons = { travisBuild: true };
|
|
84
80
|
return makePayload(c, title, buttons);
|
|
85
81
|
};
|
|
86
82
|
exports.makeReleaseCandidatePayload = makeReleaseCandidatePayload;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
const makeDistributionPayload = (c) => {
|
|
84
|
+
const title = `There are new *distribution* builds for *${getCommonAppName(c)}* app!`;
|
|
85
|
+
const buttons = { travisBuild: true, gitHubRelease: true };
|
|
90
86
|
return makePayload(c, title, buttons);
|
|
91
87
|
};
|
|
92
88
|
exports.makeDistributionPayload = makeDistributionPayload;
|