UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

55 lines 8.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.npmLogin = npmLogin; exports.uploadNpmPackages = uploadNpmPackages; /* eslint-disable no-console */ const path = require("path"); const parallel_shell_1 = require("./parallel-shell"); const files_1 = require("../files"); const shell_1 = require("../shell"); async function npmLogin(login, usageDir) { // Creating an ~/.npmrc that references an envvar is what you're supposed to do. (https://docs.npmjs.com/private-modules/ci-server-config) await writeNpmLoginToken(usageDir, login.npmEndpoint, '${NPM_TOKEN}'); // Add variables to env file await usageDir.addToEnv(npmEnv(usageDir, login)); } function npmEnv(usageDir, login) { return { npm_config_userconfig: path.join(usageDir.directory, '.npmrc'), npm_config_registry: login.npmEndpoint, npm_config_always_auth: 'true', // Necessary for NPM 6, otherwise it will sometimes not pass the token NPM_TOKEN: login.authToken, }; } async function uploadNpmPackages(packages, login, usageDir) { await (0, parallel_shell_1.parallelShell)(packages, async (pkg, output) => { console.log(`⏳ ${pkg}`); // path.resolve() is required -- if the filename ends up looking like `js/bla.tgz` then NPM thinks it's a short form GitHub name. await (0, shell_1.shell)(['node', require.resolve('npm'), 'publish', path.resolve(pkg)], { modEnv: npmEnv(usageDir, login), show: 'error', outputs: [output], }); console.log(`✅ ${pkg}`); }, (pkg, output) => { if (output.toString().includes('code EPUBLISHCONFLICT')) { console.log(`❌ ${pkg}: already exists. Skipped.`); return 'skip'; } if (output.toString().includes('code EPRIVATE')) { console.log(`❌ ${pkg}: is private. Skipped.`); return 'skip'; } return 'fail'; }); } async function writeNpmLoginToken(usageDir, endpoint, token) { const rcFile = path.join(usageDir.directory, '.npmrc'); const lines = await (0, files_1.loadLines)(rcFile); const key = `${endpoint.replace(/^https:/, '')}:_authToken`; (0, files_1.updateIniKey)(lines, key, token); await (0, files_1.writeLines)(rcFile, lines); return rcFile; } // Environment variable, .npmrc in same directory as package.json or in home dir //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsNEJBTUM7QUFXRCw4Q0F1QkM7QUFoREQsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QixxREFBaUQ7QUFFakQsb0NBQStEO0FBQy9ELG9DQUFpQztBQUUxQixLQUFLLFVBQVUsUUFBUSxDQUFDLEtBQXVCLEVBQUUsUUFBa0I7SUFDeEUsMElBQTBJO0lBQzFJLE1BQU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFdEUsNEJBQTRCO0lBQzVCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLFFBQWtCLEVBQUUsS0FBdUI7SUFDekQsT0FBTztRQUNMLHFCQUFxQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7UUFDOUQsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDdEMsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLHNFQUFzRTtRQUN0RyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsUUFBa0IsRUFBRSxLQUF1QixFQUFFLFFBQWtCO0lBQ3JHLE1BQU0sSUFBQSw4QkFBYSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLGlJQUFpSTtRQUNqSSxNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMxRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7WUFDL0IsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztZQUM5QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxLQUFhO0lBQ25GLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsaUJBQVMsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUV0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDNUQsSUFBQSxvQkFBWSxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFaEMsTUFBTSxJQUFBLGtCQUFVLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHR5cGUgeyBMb2dpbkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QnO1xuaW1wb3J0IHsgcGFyYWxsZWxTaGVsbCB9IGZyb20gJy4vcGFyYWxsZWwtc2hlbGwnO1xuaW1wb3J0IHR5cGUgeyBVc2FnZURpciB9IGZyb20gJy4vdXNhZ2UtZGlyJztcbmltcG9ydCB7IHVwZGF0ZUluaUtleSwgbG9hZExpbmVzLCB3cml0ZUxpbmVzIH0gZnJvbSAnLi4vZmlsZXMnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1Mb2dpbihsb2dpbjogTG9naW5JbmZvcm1hdGlvbiwgdXNhZ2VEaXI6IFVzYWdlRGlyKSB7XG4gIC8vIENyZWF0aW5nIGFuIH4vLm5wbXJjIHRoYXQgcmVmZXJlbmNlcyBhbiBlbnZ2YXIgaXMgd2hhdCB5b3UncmUgc3VwcG9zZWQgdG8gZG8uIChodHRwczovL2RvY3MubnBtanMuY29tL3ByaXZhdGUtbW9kdWxlcy9jaS1zZXJ2ZXItY29uZmlnKVxuICBhd2FpdCB3cml0ZU5wbUxvZ2luVG9rZW4odXNhZ2VEaXIsIGxvZ2luLm5wbUVuZHBvaW50LCAnJHtOUE1fVE9LRU59Jyk7XG5cbiAgLy8gQWRkIHZhcmlhYmxlcyB0byBlbnYgZmlsZVxuICBhd2FpdCB1c2FnZURpci5hZGRUb0VudihucG1FbnYodXNhZ2VEaXIsIGxvZ2luKSk7XG59XG5cbmZ1bmN0aW9uIG5wbUVudih1c2FnZURpcjogVXNhZ2VEaXIsIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uKSB7XG4gIHJldHVybiB7XG4gICAgbnBtX2NvbmZpZ191c2VyY29uZmlnOiBwYXRoLmpvaW4odXNhZ2VEaXIuZGlyZWN0b3J5LCAnLm5wbXJjJyksXG4gICAgbnBtX2NvbmZpZ19yZWdpc3RyeTogbG9naW4ubnBtRW5kcG9pbnQsXG4gICAgbnBtX2NvbmZpZ19hbHdheXNfYXV0aDogJ3RydWUnLCAvLyBOZWNlc3NhcnkgZm9yIE5QTSA2LCBvdGhlcndpc2UgaXQgd2lsbCBzb21ldGltZXMgbm90IHBhc3MgdGhlIHRva2VuXG4gICAgTlBNX1RPS0VOOiBsb2dpbi5hdXRoVG9rZW4sXG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGxvYWROcG1QYWNrYWdlcyhwYWNrYWdlczogc3RyaW5nW10sIGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgYXdhaXQgcGFyYWxsZWxTaGVsbChwYWNrYWdlcywgYXN5bmMgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgY29uc29sZS5sb2coYOKPsyAke3BrZ31gKTtcblxuICAgIC8vIHBhdGgucmVzb2x2ZSgpIGlzIHJlcXVpcmVkIC0tIGlmIHRoZSBmaWxlbmFtZSBlbmRzIHVwIGxvb2tpbmcgbGlrZSBganMvYmxhLnRnemAgdGhlbiBOUE0gdGhpbmtzIGl0J3MgYSBzaG9ydCBmb3JtIEdpdEh1YiBuYW1lLlxuICAgIGF3YWl0IHNoZWxsKFsnbm9kZScsIHJlcXVpcmUucmVzb2x2ZSgnbnBtJyksICdwdWJsaXNoJywgcGF0aC5yZXNvbHZlKHBrZyldLCB7XG4gICAgICBtb2RFbnY6IG5wbUVudih1c2FnZURpciwgbG9naW4pLFxuICAgICAgc2hvdzogJ2Vycm9yJyxcbiAgICAgIG91dHB1dHM6IFtvdXRwdXRdLFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYOKchSAke3BrZ31gKTtcbiAgfSwgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdjb2RlIEVQVUJMSVNIQ09ORkxJQ1QnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGFscmVhZHkgZXhpc3RzLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdjb2RlIEVQUklWQVRFJykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDinYwgJHtwa2d9OiBpcyBwcml2YXRlLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgcmV0dXJuICdmYWlsJztcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlTnBtTG9naW5Ub2tlbih1c2FnZURpcjogVXNhZ2VEaXIsIGVuZHBvaW50OiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcbiAgY29uc3QgcmNGaWxlID0gcGF0aC5qb2luKHVzYWdlRGlyLmRpcmVjdG9yeSwgJy5ucG1yYycpO1xuICBjb25zdCBsaW5lcyA9IGF3YWl0IGxvYWRMaW5lcyhyY0ZpbGUpO1xuXG4gIGNvbnN0IGtleSA9IGAke2VuZHBvaW50LnJlcGxhY2UoL15odHRwczovLCAnJyl9Ol9hdXRoVG9rZW5gO1xuICB1cGRhdGVJbmlLZXkobGluZXMsIGtleSwgdG9rZW4pO1xuXG4gIGF3YWl0IHdyaXRlTGluZXMocmNGaWxlLCBsaW5lcyk7XG4gIHJldHVybiByY0ZpbGU7XG59XG5cbi8vIEVudmlyb25tZW50IHZhcmlhYmxlLCAubnBtcmMgaW4gc2FtZSBkaXJlY3RvcnkgYXMgcGFja2FnZS5qc29uIG9yIGluIGhvbWUgZGlyXG4iXX0=