@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
89 lines • 11.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mavenLogin = mavenLogin;
exports.uploadJavaPackages = uploadJavaPackages;
exports.writeMavenSettingsFile = writeMavenSettingsFile;
/* eslint-disable no-console */
const path = require("path");
const fs_extra_1 = require("fs-extra");
const parallel_shell_1 = require("./parallel-shell");
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) {
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}`] : []], {
outputs: [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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXZlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLGdDQVFDO0FBUUQsZ0RBb0NDO0FBRUQsd0RBNEJDO0FBOUZELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsdUNBQXNDO0FBRXRDLHFEQUFpRDtBQUVqRCxvQ0FBcUM7QUFDckMsb0NBQWlDO0FBRWpDLHFDQUFxQztBQUNyQyxNQUFNLE1BQU0sR0FBRyxnREFBZ0QsQ0FBQztBQUV6RCxLQUFLLFVBQVUsVUFBVSxDQUFDLEtBQXVCLEVBQUUsUUFBa0I7SUFDMUUsTUFBTSxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFNUQsZ0JBQWdCO0lBQ2hCLCtFQUErRTtJQUMvRSxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdEIsVUFBVSxFQUFFLGVBQWUsUUFBUSxDQUFDLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO0tBQ2pHLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxRQUFrQjtJQUN0QywrRUFBK0U7SUFDL0UsNEVBQTRFO0lBQzVFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRU0sS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsS0FBdUIsRUFBRSxRQUFrQjtJQUN0RyxNQUFNLElBQUEsOEJBQWEsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV4QixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN6RCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV6RCxNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsS0FBSztZQUNoQixjQUFjLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0QyxnRUFBZ0U7WUFDaEUsU0FBUyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQzlCLDZCQUE2QjtZQUM3QixhQUFhLEdBQUcsRUFBRTtZQUNsQixVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3hDLEdBQUcsTUFBTSxJQUFBLHFCQUFVLEVBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BFLEdBQUcsTUFBTSxJQUFBLHFCQUFVLEVBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN2RSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsTUFBTSxFQUFFO2dCQUNOLHFDQUFxQztnQkFDckMsVUFBVSxFQUFFLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTthQUMvRDtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNkLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDLENBQUM7WUFDbEQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsZ0NBQWdDLENBQUMsQ0FBQztZQUN2RCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRU0sS0FBSyxVQUFVLHNCQUFzQixDQUFDLFFBQWdCLEVBQUUsS0FBdUI7SUFDcEYsTUFBTSxJQUFBLGlCQUFTLEVBQUMsUUFBUSxFQUFFOzs7Ozs7Ozs7b0JBU1IsS0FBSyxDQUFDLFNBQVM7Ozs7Ozs7OzttQkFTaEIsS0FBSyxDQUFDLGFBQWE7Ozs7Ozs7O2NBUXhCLENBQUMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHBhdGhFeGlzdHMgfSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IExvZ2luSW5mb3JtYXRpb24gfSBmcm9tICcuL2NvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBwYXJhbGxlbFNoZWxsIH0gZnJvbSAnLi9wYXJhbGxlbC1zaGVsbCc7XG5pbXBvcnQgdHlwZSB7IFVzYWdlRGlyIH0gZnJvbSAnLi91c2FnZS1kaXInO1xuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnLi4vZmlsZXMnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbi8vIERvIG5vdCB0cnkgdG8gSklUIHRoZSBNYXZlbiBiaW5hcnlcbmNvbnN0IE5PX0pJVCA9ICctWFg6K1RpZXJlZENvbXBpbGF0aW9uIC1YWDpUaWVyZWRTdG9wQXRMZXZlbD0xJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hdmVuTG9naW4obG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICBhd2FpdCB3cml0ZU1hdmVuU2V0dGluZ3NGaWxlKHNldHRpbmdzRmlsZSh1c2FnZURpciksIGxvZ2luKTtcblxuICAvLyBXcml0ZSBlbnYgdmFyXG4gIC8vIFR3aWRkbGUgSlZNIHNldHRpbmdzIGEgYml0IHRvIG1ha2UgTWF2ZW4gc3Vydml2ZSBydW5uaW5nIG9uIGEgQ29kZUJ1aWxkIGJveC5cbiAgYXdhaXQgdXNhZ2VEaXIuYWRkVG9FbnYoe1xuICAgIE1BVkVOX09QVFM6IGAtRHVzZXIuaG9tZT0ke3VzYWdlRGlyLmRpcmVjdG9yeX0gJHtOT19KSVR9ICR7cHJvY2Vzcy5lbnYuTUFWRU5fT1BUUyA/PyAnJ31gLnRyaW0oKSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldHRpbmdzRmlsZSh1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgLy8gSWYgd2UgY29uZmlndXJlIHVzYWdlRGlyIGFzIGEgZmFrZSBob21lIGRpcmVjdG9yeSBNYXZlbiB3aWxsIGZpbmQgdGhpcyBmaWxlLlxuICAvLyAoTm8gb3RoZXIgd2F5IHRvIGNvbmZpZ3VyZSB0aGUgc2V0dGluZ3MgZmlsZSBhcyBwYXJ0IG9mIHRoZSBlbnZpcm9ubWVudCkuXG4gIHJldHVybiBwYXRoLmpvaW4odXNhZ2VEaXIuZGlyZWN0b3J5LCAnLm0yJywgJ3NldHRpbmdzLnhtbCcpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBsb2FkSmF2YVBhY2thZ2VzKHBhY2thZ2VzOiBzdHJpbmdbXSwgbG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICBhd2FpdCBwYXJhbGxlbFNoZWxsKHBhY2thZ2VzLCBhc3luYyAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhg4o+zICR7cGtnfWApO1xuXG4gICAgY29uc3Qgc291cmNlc0ZpbGUgPSBwa2cucmVwbGFjZSgvLnBvbSQvLCAnLXNvdXJjZXMuamFyJyk7XG4gICAgY29uc3QgamF2YWRvY0ZpbGUgPSBwa2cucmVwbGFjZSgvLnBvbSQvLCAnLWphdmFkb2MuamFyJyk7XG5cbiAgICBhd2FpdCBzaGVsbChbJ212bicsXG4gICAgICBgLS1zZXR0aW5ncz0ke3NldHRpbmdzRmlsZSh1c2FnZURpcil9YCxcbiAgICAgICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tZGVwbG95LXBsdWdpbjozLjAuMDpkZXBsb3ktZmlsZScsXG4gICAgICBgLUR1cmw9JHtsb2dpbi5tYXZlbkVuZHBvaW50fWAsXG4gICAgICAnLURyZXBvc2l0b3J5SWQ9Y29kZWFydGlmYWN0JyxcbiAgICAgIGAtRHBvbUZpbGU9JHtwa2d9YCxcbiAgICAgIGAtRGZpbGU9JHtwa2cucmVwbGFjZSgvLnBvbSQvLCAnLmphcicpfWAsXG4gICAgICAuLi5hd2FpdCBwYXRoRXhpc3RzKHNvdXJjZXNGaWxlKSA/IFtgLURzb3VyY2VzPSR7c291cmNlc0ZpbGV9YF0gOiBbXSxcbiAgICAgIC4uLmF3YWl0IHBhdGhFeGlzdHMoamF2YWRvY0ZpbGUpID8gW2AtRGphdmFkb2M9JHtqYXZhZG9jRmlsZX1gXSA6IFtdXSwge1xuICAgICAgb3V0cHV0czogW291dHB1dF0sXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgLy8gRG8gbm90IHRyeSB0byBKSVQgdGhlIE1hdmVuIGJpbmFyeVxuICAgICAgICBNQVZFTl9PUFRTOiBgJHtOT19KSVR9ICR7cHJvY2Vzcy5lbnYuTUFWRU5fT1BUUyA/PyAnJ31gLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhg4pyFICR7cGtnfWApO1xuICB9LFxuICAocGtnLCBvdXRwdXQpID0+IHtcbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJzQwOSBDb25mbGljdCcpKSB7XG4gICAgICBjb25zb2xlLmxvZyhg4p2MICR7cGtnfTogYWxyZWFkeSBleGlzdHMuIFNraXBwZWQuYCk7XG4gICAgICByZXR1cm4gJ3NraXAnO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1RvbyBNYW55IFJlcXVlc3RzJykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDimbvvuI8gJHtwa2d9OiBUb28gbWFueSByZXF1ZXN0cy4gUmV0cnlpbmcuYCk7XG4gICAgICByZXR1cm4gJ3JldHJ5JztcbiAgICB9XG4gICAgcmV0dXJuICdmYWlsJztcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZU1hdmVuU2V0dGluZ3NGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uKSB7XG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlbmFtZSwgYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCIgPz5cbiAgPHNldHRpbmdzIHhtbG5zPVwiaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvU0VUVElOR1MvMS4wLjBcIlxuICAgICAgICAgICAgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIlxuICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPVwiaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvU0VUVElOR1MvMS4wLjBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL3NldHRpbmdzLTEuMC4wLnhzZFwiPlxuICAgIDxzZXJ2ZXJzPlxuICAgICAgPHNlcnZlcj5cbiAgICAgICAgPGlkPmNvZGVhcnRpZmFjdDwvaWQ+XG4gICAgICAgIDx1c2VybmFtZT5hd3M8L3VzZXJuYW1lPlxuICAgICAgICA8cGFzc3dvcmQ+JHtsb2dpbi5hdXRoVG9rZW59PC9wYXNzd29yZD5cbiAgICAgIDwvc2VydmVyPlxuICAgIDwvc2VydmVycz5cbiAgICA8cHJvZmlsZXM+XG4gICAgICA8cHJvZmlsZT5cbiAgICAgICAgPGlkPmRlZmF1bHQ8L2lkPlxuICAgICAgICA8cmVwb3NpdG9yaWVzPlxuICAgICAgICAgIDxyZXBvc2l0b3J5PlxuICAgICAgICAgICAgPGlkPmNvZGVhcnRpZmFjdDwvaWQ+XG4gICAgICAgICAgICA8dXJsPiR7bG9naW4ubWF2ZW5FbmRwb2ludH08L3VybD5cbiAgICAgICAgICA8L3JlcG9zaXRvcnk+XG4gICAgICAgIDwvcmVwb3NpdG9yaWVzPlxuICAgICAgPC9wcm9maWxlPlxuICAgIDwvcHJvZmlsZXM+XG4gICAgPGFjdGl2ZVByb2ZpbGVzPlxuICAgICAgPGFjdGl2ZVByb2ZpbGU+ZGVmYXVsdDwvYWN0aXZlUHJvZmlsZT5cbiAgICA8L2FjdGl2ZVByb2ZpbGVzPlxuICA8L3NldHRpbmdzPmApO1xufVxuIl19