@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
56 lines • 7.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.emitVersionsEmf = emitVersionsEmf;
exports.createVersionsEmf = createVersionsEmf;
/**
* Emit an EMF event with the versions of the CLI, library, toolkit-lib and cdk-assets that were used to run the tests.
*
* The version numbers are first scalarized so that they can be graphed, and the CodeBuild Project Name is used as
* a dimension to keep different test runs in the same account separate.
*
* The way EMF works, if CloudWatch sees a log message like this it will
* automatically emit metric data from these fields.
*/
function emitVersionsEmf(versions) {
// eslint-disable-next-line no-console
console.log(JSON.stringify(createVersionsEmf(versions)));
}
function createVersionsEmf(versions) {
const emf = {
_aws: {
Timestamp: Date.now(),
CloudWatchMetrics: [{
Namespace: 'CDK/CLIInteg',
Dimensions: [['ProjectName']],
Metrics: [
{ Name: 'CliVersion' },
{ Name: 'LibraryVersion' },
{ Name: 'ToolkitLibVersion' },
{ Name: 'CdkAssetsVersion' },
{ Name: 'TestsVersion' },
],
}],
},
// Dimensions
ProjectName: process.env.CODEBUILD_BUILD_ID?.split(':')[0] ?? 'unknown',
// Metrics
CliVersion: scalarizeVersion(versions.cli),
LibraryVersion: scalarizeVersion(versions.library),
ToolkitLibVersion: scalarizeVersion(versions.toolkitLib),
CdkAssetsVersion: scalarizeVersion(versions.cdkAssets),
TestsVersion: scalarizeVersion(versions.tests),
};
return emf;
function scalarizeVersion(version) {
const parts = version.match(/(\d+)\.(\d+)\.(\d+)/);
if (!parts) {
return 0;
}
const vs = parts.slice(1).map(p => parseInt(p, 10));
// This gives 4 digits for the minor version (necessary for the CLI), and 1 digit for the patch version
return vs[0] * 100000
+ (vs[1] % 10000) * 10
+ vs[2] % 10;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW1mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsMENBR0M7QUFFRCw4Q0F5Q0M7QUF2REQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixlQUFlLENBQUMsUUFBa0I7SUFDaEQsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLFFBQWtCO0lBQ2xELE1BQU0sR0FBRyxHQUFHO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckIsaUJBQWlCLEVBQUUsQ0FBQztvQkFDbEIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFVBQVUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzdCLE9BQU8sRUFBRTt3QkFDUCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7d0JBQ3RCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO3dCQUMxQixFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTt3QkFDN0IsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7d0JBQzVCLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRTtxQkFDekI7aUJBQ0YsQ0FBQztTQUNIO1FBQ0QsYUFBYTtRQUNiLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTO1FBQ3ZFLFVBQVU7UUFDVixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUMxQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNsRCxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3hELGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDdEQsWUFBWSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7S0FDL0MsQ0FBQztJQUVGLE9BQU8sR0FBRyxDQUFDO0lBRVgsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRCx1R0FBdUc7UUFDdkcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTTtjQUNqQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFO2NBQ3BCLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVtaXQgYW4gRU1GIGV2ZW50IHdpdGggdGhlIHZlcnNpb25zIG9mIHRoZSBDTEksIGxpYnJhcnksIHRvb2xraXQtbGliIGFuZCBjZGstYXNzZXRzIHRoYXQgd2VyZSB1c2VkIHRvIHJ1biB0aGUgdGVzdHMuXG4gKlxuICogVGhlIHZlcnNpb24gbnVtYmVycyBhcmUgZmlyc3Qgc2NhbGFyaXplZCBzbyB0aGF0IHRoZXkgY2FuIGJlIGdyYXBoZWQsIGFuZCB0aGUgQ29kZUJ1aWxkIFByb2plY3QgTmFtZSBpcyB1c2VkIGFzXG4gKiBhIGRpbWVuc2lvbiB0byBrZWVwIGRpZmZlcmVudCB0ZXN0IHJ1bnMgaW4gdGhlIHNhbWUgYWNjb3VudCBzZXBhcmF0ZS5cbiAqXG4gKiBUaGUgd2F5IEVNRiB3b3JrcywgaWYgQ2xvdWRXYXRjaCBzZWVzIGEgbG9nIG1lc3NhZ2UgbGlrZSB0aGlzIGl0IHdpbGxcbiAqIGF1dG9tYXRpY2FsbHkgZW1pdCBtZXRyaWMgZGF0YSBmcm9tIHRoZXNlIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRWZXJzaW9uc0VtZih2ZXJzaW9uczogVmVyc2lvbnMpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoY3JlYXRlVmVyc2lvbnNFbWYodmVyc2lvbnMpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWZXJzaW9uc0VtZih2ZXJzaW9uczogVmVyc2lvbnMpIHtcbiAgY29uc3QgZW1mID0ge1xuICAgIF9hd3M6IHtcbiAgICAgIFRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIENsb3VkV2F0Y2hNZXRyaWNzOiBbe1xuICAgICAgICBOYW1lc3BhY2U6ICdDREsvQ0xJSW50ZWcnLFxuICAgICAgICBEaW1lbnNpb25zOiBbWydQcm9qZWN0TmFtZSddXSxcbiAgICAgICAgTWV0cmljczogW1xuICAgICAgICAgIHsgTmFtZTogJ0NsaVZlcnNpb24nIH0sXG4gICAgICAgICAgeyBOYW1lOiAnTGlicmFyeVZlcnNpb24nIH0sXG4gICAgICAgICAgeyBOYW1lOiAnVG9vbGtpdExpYlZlcnNpb24nIH0sXG4gICAgICAgICAgeyBOYW1lOiAnQ2RrQXNzZXRzVmVyc2lvbicgfSxcbiAgICAgICAgICB7IE5hbWU6ICdUZXN0c1ZlcnNpb24nIH0sXG4gICAgICAgIF0sXG4gICAgICB9XSxcbiAgICB9LFxuICAgIC8vIERpbWVuc2lvbnNcbiAgICBQcm9qZWN0TmFtZTogcHJvY2Vzcy5lbnYuQ09ERUJVSUxEX0JVSUxEX0lEPy5zcGxpdCgnOicpWzBdID8/ICd1bmtub3duJyxcbiAgICAvLyBNZXRyaWNzXG4gICAgQ2xpVmVyc2lvbjogc2NhbGFyaXplVmVyc2lvbih2ZXJzaW9ucy5jbGkpLFxuICAgIExpYnJhcnlWZXJzaW9uOiBzY2FsYXJpemVWZXJzaW9uKHZlcnNpb25zLmxpYnJhcnkpLFxuICAgIFRvb2xraXRMaWJWZXJzaW9uOiBzY2FsYXJpemVWZXJzaW9uKHZlcnNpb25zLnRvb2xraXRMaWIpLFxuICAgIENka0Fzc2V0c1ZlcnNpb246IHNjYWxhcml6ZVZlcnNpb24odmVyc2lvbnMuY2RrQXNzZXRzKSxcbiAgICBUZXN0c1ZlcnNpb246IHNjYWxhcml6ZVZlcnNpb24odmVyc2lvbnMudGVzdHMpLFxuICB9O1xuXG4gIHJldHVybiBlbWY7XG5cbiAgZnVuY3Rpb24gc2NhbGFyaXplVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IHBhcnRzID0gdmVyc2lvbi5tYXRjaCgvKFxcZCspXFwuKFxcZCspXFwuKFxcZCspLyk7XG4gICAgaWYgKCFwYXJ0cykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgdnMgPSBwYXJ0cy5zbGljZSgxKS5tYXAocCA9PiBwYXJzZUludChwLCAxMCkpO1xuXG4gICAgLy8gVGhpcyBnaXZlcyA0IGRpZ2l0cyBmb3IgdGhlIG1pbm9yIHZlcnNpb24gKG5lY2Vzc2FyeSBmb3IgdGhlIENMSSksIGFuZCAxIGRpZ2l0IGZvciB0aGUgcGF0Y2ggdmVyc2lvblxuICAgIHJldHVybiB2c1swXSAqIDEwMDAwMFxuICAgICAgKyAodnNbMV0gJSAxMDAwMCkgKiAxMFxuICAgICAgKyB2c1syXSAlIDEwO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbnMge1xuICByZWFkb25seSBjbGk6IHN0cmluZztcbiAgcmVhZG9ubHkgbGlicmFyeTogc3RyaW5nO1xuICByZWFkb25seSB0b29sa2l0TGliOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNka0Fzc2V0czogc3RyaW5nO1xuICByZWFkb25seSB0ZXN0czogc3RyaW5nO1xufVxuIl19