UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

56 lines 7.08 kB
"use strict"; 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