jsii-release
Version:
Release jsii modules to multiple package managers
127 lines • 13.1 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.mavenLogin = mavenLogin;
exports.uploadJavaPackages = uploadJavaPackages;
exports.writeMavenSettingsFile = writeMavenSettingsFile;
/* eslint-disable no-console */
const path = __importStar(require("path"));
const fs_extra_1 = require("fs-extra");
const parallel_shell_1 = require("./parallel-shell");
const display_1 = require("../display");
const files_1 = require("../files");
const shell_1 = require("../shell");
// Do not try to JIT the Maven binary
const NO_JIT = '-XX:+TieredCompilation -XX:TieredStopAtLevel=1';
async function mavenLogin(login, usageDir) {
await writeMavenSettingsFile(settingsFile(usageDir), login);
// Write env var
// Twiddle JVM settings a bit to make Maven survive running on a CodeBuild box.
await usageDir.addToEnv({
MAVEN_OPTS: `-Duser.home=${usageDir.directory} ${NO_JIT} ${process.env.MAVEN_OPTS ?? ''}`.trim(),
});
}
function settingsFile(usageDir) {
// If we configure usageDir as a fake home directory Maven will find this file.
// (No other way to configure the settings file as part of the environment).
return path.join(usageDir.directory, '.m2', 'settings.xml');
}
async function uploadJavaPackages(packages, login, usageDir) {
if (packages.length === 0) {
return;
}
(0, display_1.header)('Java');
await (0, parallel_shell_1.parallelShell)(packages, async (pkg, output) => {
console.log(`⏳ ${pkg}`);
const sourcesFile = pkg.replace(/.pom$/, '-sources.jar');
const javadocFile = pkg.replace(/.pom$/, '-javadoc.jar');
await (0, shell_1.shell)(['mvn',
`--settings=${settingsFile(usageDir)}`,
'org.apache.maven.plugins:maven-deploy-plugin:3.0.0:deploy-file',
`-Durl=${login.mavenEndpoint}`,
'-DrepositoryId=codeartifact',
`-DpomFile=${pkg}`,
`-Dfile=${pkg.replace(/.pom$/, '.jar')}`,
...await (0, fs_extra_1.pathExists)(sourcesFile) ? [`-Dsources=${sourcesFile}`] : [],
...await (0, fs_extra_1.pathExists)(javadocFile) ? [`-Djavadoc=${javadocFile}`] : []], {
output,
modEnv: {
// Do not try to JIT the Maven binary
MAVEN_OPTS: `${NO_JIT} ${process.env.MAVEN_OPTS ?? ''}`.trim(),
},
});
console.log(`✅ ${pkg}`);
}, (pkg, output) => {
if (output.toString().includes('409 Conflict')) {
console.log(`❌ ${pkg}: already exists. Skipped.`);
return 'skip';
}
if (output.toString().includes('Too Many Requests')) {
console.log(`♻️ ${pkg}: Too many requests. Retrying.`);
return 'retry';
}
return 'fail';
});
}
async function writeMavenSettingsFile(filename, login) {
await (0, files_1.writeFile)(filename, `<?xml version="1.0" encoding="UTF-8" ?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>codeartifact</id>
<username>aws</username>
<password>${login.authToken}</password>
</server>
</servers>
<profiles>
<profile>
<id>default</id>
<repositories>
<repository>
<id>codeartifact</id>
<url>${login.mavenEndpoint}</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
</settings>`);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29kZWFydGlmYWN0L3N0YWdpbmcvbWF2ZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxnQ0FRQztBQVFELGdEQXlDQztBQUVELHdEQTRCQztBQXBHRCwrQkFBK0I7QUFDL0IsMkNBQTZCO0FBQzdCLHVDQUFzQztBQUN0QyxxREFBaUQ7QUFFakQsd0NBQW9DO0FBQ3BDLG9DQUFxQztBQUNyQyxvQ0FBaUM7QUFHakMscUNBQXFDO0FBQ3JDLE1BQU0sTUFBTSxHQUFHLGdEQUFnRCxDQUFDO0FBRXpELEtBQUssVUFBVSxVQUFVLENBQUMsS0FBdUIsRUFBRSxRQUFrQjtJQUMxRSxNQUFNLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUU1RCxnQkFBZ0I7SUFDaEIsK0VBQStFO0lBQy9FLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN0QixVQUFVLEVBQUUsZUFBZSxRQUFRLENBQUMsU0FBUyxJQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUU7S0FDakcsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLFFBQWtCO0lBQ3RDLCtFQUErRTtJQUMvRSw0RUFBNEU7SUFDNUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxLQUF1QixFQUFFLFFBQWtCO0lBQ3RHLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNmLE1BQU0sSUFBQSw4QkFBYSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRXpELE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxLQUFLO1lBQ2hCLGNBQWMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RDLGdFQUFnRTtZQUNoRSxTQUFTLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFDOUIsNkJBQTZCO1lBQzdCLGFBQWEsR0FBRyxFQUFFO1lBQ2xCLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDeEMsR0FBRyxNQUFNLElBQUEscUJBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEUsR0FBRyxNQUFNLElBQUEscUJBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZFLE1BQU07WUFDTixNQUFNLEVBQUU7Z0JBQ04scUNBQXFDO2dCQUNyQyxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO2FBQy9EO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFTSxLQUFLLFVBQVUsc0JBQXNCLENBQUMsUUFBZ0IsRUFBRSxLQUF1QjtJQUNwRixNQUFNLElBQUEsaUJBQVMsRUFBQyxRQUFRLEVBQUU7Ozs7Ozs7OztvQkFTUixLQUFLLENBQUMsU0FBUzs7Ozs7Ozs7O21CQVNoQixLQUFLLENBQUMsYUFBYTs7Ozs7Ozs7Y0FReEIsQ0FBQyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IHBhcmFsbGVsU2hlbGwgfSBmcm9tICcuL3BhcmFsbGVsLXNoZWxsJztcbmltcG9ydCB7IExvZ2luSW5mb3JtYXRpb24gfSBmcm9tICcuLi9jb2RlYXJ0aWZhY3QtcmVwbyc7XG5pbXBvcnQgeyBoZWFkZXIgfSBmcm9tICcuLi9kaXNwbGF5JztcbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJy4uL2ZpbGVzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuaW1wb3J0IHsgVXNhZ2VEaXIgfSBmcm9tICcuLi91c2FnZS1kaXInO1xuXG4vLyBEbyBub3QgdHJ5IHRvIEpJVCB0aGUgTWF2ZW4gYmluYXJ5XG5jb25zdCBOT19KSVQgPSAnLVhYOitUaWVyZWRDb21waWxhdGlvbiAtWFg6VGllcmVkU3RvcEF0TGV2ZWw9MSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXZlbkxvZ2luKGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgYXdhaXQgd3JpdGVNYXZlblNldHRpbmdzRmlsZShzZXR0aW5nc0ZpbGUodXNhZ2VEaXIpLCBsb2dpbik7XG5cbiAgLy8gV3JpdGUgZW52IHZhclxuICAvLyBUd2lkZGxlIEpWTSBzZXR0aW5ncyBhIGJpdCB0byBtYWtlIE1hdmVuIHN1cnZpdmUgcnVubmluZyBvbiBhIENvZGVCdWlsZCBib3guXG4gIGF3YWl0IHVzYWdlRGlyLmFkZFRvRW52KHtcbiAgICBNQVZFTl9PUFRTOiBgLUR1c2VyLmhvbWU9JHt1c2FnZURpci5kaXJlY3Rvcnl9ICR7Tk9fSklUfSAke3Byb2Nlc3MuZW52Lk1BVkVOX09QVFMgPz8gJyd9YC50cmltKCksXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXR0aW5nc0ZpbGUodXNhZ2VEaXI6IFVzYWdlRGlyKSB7XG4gIC8vIElmIHdlIGNvbmZpZ3VyZSB1c2FnZURpciBhcyBhIGZha2UgaG9tZSBkaXJlY3RvcnkgTWF2ZW4gd2lsbCBmaW5kIHRoaXMgZmlsZS5cbiAgLy8gKE5vIG90aGVyIHdheSB0byBjb25maWd1cmUgdGhlIHNldHRpbmdzIGZpbGUgYXMgcGFydCBvZiB0aGUgZW52aXJvbm1lbnQpLlxuICByZXR1cm4gcGF0aC5qb2luKHVzYWdlRGlyLmRpcmVjdG9yeSwgJy5tMicsICdzZXR0aW5ncy54bWwnKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwbG9hZEphdmFQYWNrYWdlcyhwYWNrYWdlczogc3RyaW5nW10sIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgaWYgKHBhY2thZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGhlYWRlcignSmF2YScpO1xuICBhd2FpdCBwYXJhbGxlbFNoZWxsKHBhY2thZ2VzLCBhc3luYyAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhg4o+zICR7cGtnfWApO1xuXG4gICAgY29uc3Qgc291cmNlc0ZpbGUgPSBwa2cucmVwbGFjZSgvLnBvbSQvLCAnLXNvdXJjZXMuamFyJyk7XG4gICAgY29uc3QgamF2YWRvY0ZpbGUgPSBwa2cucmVwbGFjZSgvLnBvbSQvLCAnLWphdmFkb2MuamFyJyk7XG5cbiAgICBhd2FpdCBzaGVsbChbJ212bicsXG4gICAgICBgLS1zZXR0aW5ncz0ke3NldHRpbmdzRmlsZSh1c2FnZURpcil9YCxcbiAgICAgICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tZGVwbG95LXBsdWdpbjozLjAuMDpkZXBsb3ktZmlsZScsXG4gICAgICBgLUR1cmw9JHtsb2dpbi5tYXZlbkVuZHBvaW50fWAsXG4gICAgICAnLURyZXBvc2l0b3J5SWQ9Y29kZWFydGlmYWN0JyxcbiAgICAgIGAtRHBvbUZpbGU9JHtwa2d9YCxcbiAgICAgIGAtRGZpbGU9JHtwa2cucmVwbGFjZSgvLnBvbSQvLCAnLmphcicpfWAsXG4gICAgICAuLi5hd2FpdCBwYXRoRXhpc3RzKHNvdXJjZXNGaWxlKSA/IFtgLURzb3VyY2VzPSR7c291cmNlc0ZpbGV9YF0gOiBbXSxcbiAgICAgIC4uLmF3YWl0IHBhdGhFeGlzdHMoamF2YWRvY0ZpbGUpID8gW2AtRGphdmFkb2M9JHtqYXZhZG9jRmlsZX1gXSA6IFtdXSwge1xuICAgICAgb3V0cHV0LFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIC8vIERvIG5vdCB0cnkgdG8gSklUIHRoZSBNYXZlbiBiaW5hcnlcbiAgICAgICAgTUFWRU5fT1BUUzogYCR7Tk9fSklUfSAke3Byb2Nlc3MuZW52Lk1BVkVOX09QVFMgPz8gJyd9YC50cmltKCksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYOKchSAke3BrZ31gKTtcbiAgfSxcbiAgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCc0MDkgQ29uZmxpY3QnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGFscmVhZHkgZXhpc3RzLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdUb28gTWFueSBSZXF1ZXN0cycpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4pm777iPICR7cGtnfTogVG9vIG1hbnkgcmVxdWVzdHMuIFJldHJ5aW5nLmApO1xuICAgICAgcmV0dXJuICdyZXRyeSc7XG4gICAgfVxuICAgIHJldHVybiAnZmFpbCc7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVNYXZlblNldHRpbmdzRmlsZShmaWxlbmFtZTogc3RyaW5nLCBsb2dpbjogTG9naW5JbmZvcm1hdGlvbikge1xuICBhd2FpdCB3cml0ZUZpbGUoZmlsZW5hbWUsIGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiID8+XG4gIDxzZXR0aW5ncyB4bWxucz1cImh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1NFVFRJTkdTLzEuMC4wXCJcbiAgICAgICAgICAgIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCJcbiAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj1cImh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1NFVFRJTkdTLzEuMC4wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9zZXR0aW5ncy0xLjAuMC54c2RcIj5cbiAgICA8c2VydmVycz5cbiAgICAgIDxzZXJ2ZXI+XG4gICAgICAgIDxpZD5jb2RlYXJ0aWZhY3Q8L2lkPlxuICAgICAgICA8dXNlcm5hbWU+YXdzPC91c2VybmFtZT5cbiAgICAgICAgPHBhc3N3b3JkPiR7bG9naW4uYXV0aFRva2VufTwvcGFzc3dvcmQ+XG4gICAgICA8L3NlcnZlcj5cbiAgICA8L3NlcnZlcnM+XG4gICAgPHByb2ZpbGVzPlxuICAgICAgPHByb2ZpbGU+XG4gICAgICAgIDxpZD5kZWZhdWx0PC9pZD5cbiAgICAgICAgPHJlcG9zaXRvcmllcz5cbiAgICAgICAgICA8cmVwb3NpdG9yeT5cbiAgICAgICAgICAgIDxpZD5jb2RlYXJ0aWZhY3Q8L2lkPlxuICAgICAgICAgICAgPHVybD4ke2xvZ2luLm1hdmVuRW5kcG9pbnR9PC91cmw+XG4gICAgICAgICAgPC9yZXBvc2l0b3J5PlxuICAgICAgICA8L3JlcG9zaXRvcmllcz5cbiAgICAgIDwvcHJvZmlsZT5cbiAgICA8L3Byb2ZpbGVzPlxuICAgIDxhY3RpdmVQcm9maWxlcz5cbiAgICAgIDxhY3RpdmVQcm9maWxlPmRlZmF1bHQ8L2FjdGl2ZVByb2ZpbGU+XG4gICAgPC9hY3RpdmVQcm9maWxlcz5cbiAgPC9zZXR0aW5ncz5gKTtcbn1cbiJdfQ==