UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

74 lines 10.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Tests for the standalone cdk-assets executable, as used by CDK Pipelines */ const fs_1 = require("fs"); const path = require("path"); const lib_1 = require("../../../lib"); jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime (0, lib_1.integTest)(`cdk-assets smoke test`, (0, lib_1.withDefaultFixture)(async (fixture) => { await fixture.shell(['npm', 'init', '-y']); await fixture.shell(['npm', 'install', `cdk-assets@latest`]); const account = await fixture.aws.account(); const region = fixture.aws.region; const bucketName = `cdk-hnb659fds-assets-${account}-${region}`; const repositoryName = `cdk-hnb659fds-container-assets-${account}-${region}`; const imageDir = 'imagedir'; await fs_1.promises.mkdir(path.join(fixture.integTestDir, imageDir), { recursive: true }); // Write an asset file and a data file for the Docker image const assetFile = 'testfile.txt'; for (const toCreate of [assetFile, `${imageDir}/datafile.txt`]) { await fs_1.promises.writeFile(path.join(fixture.integTestDir, toCreate), 'some asset file'); } // Write a Dockerfile for the image build with a data file in it await fs_1.promises.writeFile(path.join(fixture.integTestDir, imageDir, 'Dockerfile'), [ 'FROM scratch', 'ADD datafile.txt datafile.txt', ].join('\n')); // Write an asset JSON file to publish to the bootstrapped environment const assetsJson = { version: "38.0.1", files: { testfile: { source: { path: assetFile, packaging: 'file', }, destinations: { current: { region, assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-file-publishing-role-${account}-${region}`, bucketName, objectKey: `test-file-${Date.now()}.json`, } } } }, dockerImages: { testimage: { source: { directory: imageDir, }, destinations: { current: { region, assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-image-publishing-role-${account}-${region}`, repositoryName, imageTag: `test-image`, // Not fresh on every run because we'll run out of tags too easily }, }, }, } }; await fs_1.promises.writeFile(path.join(fixture.integTestDir, 'assets.json'), JSON.stringify(assetsJson, undefined, 2)); await fixture.shell(['npx', 'cdk-assets', '--path', 'assets.json', '--verbose', 'publish'], { modEnv: { ...fixture.cdkShellEnv(), // This is necessary for cdk-assets v2, if the credentials are supplied via // config file (which they are on the CodeBuild canaries). AWS_SDK_LOAD_CONFIG: '1', }, }); })); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21va2V0ZXN0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNtb2tldGVzdC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0Isc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCx1QkFBdUIsRUFDdkIsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBRTdELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyx3QkFBd0IsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQy9ELE1BQU0sY0FBYyxHQUFHLGtDQUFrQyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFFN0UsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzVCLE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUvRSwyREFBMkQ7SUFDM0QsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDO0lBQ2pDLEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxRQUFRLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDL0QsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUU7UUFDMUUsY0FBYztRQUNkLCtCQUErQjtLQUNoQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWQsc0VBQXNFO0lBQ3RFLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFNBQVM7b0JBQ2YsU0FBUyxFQUFFLE1BQU07aUJBQ2xCO2dCQUNELFlBQVksRUFBRTtvQkFDWixPQUFPLEVBQUU7d0JBQ1AsTUFBTTt3QkFDTixhQUFhLEVBQUUsK0JBQStCLE9BQU8sNENBQTRDLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQ3BILFVBQVU7d0JBQ1YsU0FBUyxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPO3FCQUMxQztpQkFDRjthQUNGO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLFNBQVMsRUFBRSxRQUFRO2lCQUNwQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLE1BQU07d0JBQ04sYUFBYSxFQUFFLCtCQUErQixPQUFPLDZDQUE2QyxPQUFPLElBQUksTUFBTSxFQUFFO3dCQUNySCxjQUFjO3dCQUNkLFFBQVEsRUFBRSxZQUFZLEVBQUUsa0VBQWtFO3FCQUMzRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQzFGLE1BQU0sRUFBRTtZQUNOLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUN4QiwyRUFBMkU7WUFDM0UsMERBQTBEO1lBQzFELG1CQUFtQixFQUFFLEdBQUc7U0FDekI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZXN0cyBmb3IgdGhlIHN0YW5kYWxvbmUgY2RrLWFzc2V0cyBleGVjdXRhYmxlLCBhcyB1c2VkIGJ5IENESyBQaXBlbGluZXNcbiAqL1xuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gIGBjZGstYXNzZXRzIHNtb2tlIHRlc3RgLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbnBtJywgJ2luaXQnLCAnLXknXSk7XG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ25wbScsICdpbnN0YWxsJywgYGNkay1hc3NldHNAbGF0ZXN0YF0pO1xuXG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZpeHR1cmUuYXdzLmFjY291bnQoKTtcbiAgICBjb25zdCByZWdpb24gPSBmaXh0dXJlLmF3cy5yZWdpb247XG4gICAgY29uc3QgYnVja2V0TmFtZSA9IGBjZGstaG5iNjU5ZmRzLWFzc2V0cy0ke2FjY291bnR9LSR7cmVnaW9ufWA7XG4gICAgY29uc3QgcmVwb3NpdG9yeU5hbWUgPSBgY2RrLWhuYjY1OWZkcy1jb250YWluZXItYXNzZXRzLSR7YWNjb3VudH0tJHtyZWdpb259YDtcblxuICAgIGNvbnN0IGltYWdlRGlyID0gJ2ltYWdlZGlyJztcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGltYWdlRGlyKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAvLyBXcml0ZSBhbiBhc3NldCBmaWxlIGFuZCBhIGRhdGEgZmlsZSBmb3IgdGhlIERvY2tlciBpbWFnZVxuICAgIGNvbnN0IGFzc2V0RmlsZSA9ICd0ZXN0ZmlsZS50eHQnO1xuICAgIGZvciAoY29uc3QgdG9DcmVhdGUgb2YgW2Fzc2V0RmlsZSwgYCR7aW1hZ2VEaXJ9L2RhdGFmaWxlLnR4dGBdKSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCB0b0NyZWF0ZSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgICB9XG5cbiAgICAvLyBXcml0ZSBhIERvY2tlcmZpbGUgZm9yIHRoZSBpbWFnZSBidWlsZCB3aXRoIGEgZGF0YSBmaWxlIGluIGl0XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgaW1hZ2VEaXIsICdEb2NrZXJmaWxlJyksIFtcbiAgICAgICdGUk9NIHNjcmF0Y2gnLFxuICAgICAgJ0FERCBkYXRhZmlsZS50eHQgZGF0YWZpbGUudHh0JyxcbiAgICBdLmpvaW4oJ1xcbicpKTtcblxuICAgIC8vIFdyaXRlIGFuIGFzc2V0IEpTT04gZmlsZSB0byBwdWJsaXNoIHRvIHRoZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRcbiAgICBjb25zdCBhc3NldHNKc29uID0ge1xuICAgICAgdmVyc2lvbjogXCIzOC4wLjFcIixcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIHRlc3RmaWxlOiB7XG4gICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICBwYXRoOiBhc3NldEZpbGUsXG4gICAgICAgICAgICBwYWNrYWdpbmc6ICdmaWxlJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlc3RpbmF0aW9uczoge1xuICAgICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICAgIGFzc3VtZVJvbGVBcm46IGBhcm46XFwke0FXUzo6UGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cm9sZS9jZGstaG5iNjU5ZmRzLWZpbGUtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YCxcbiAgICAgICAgICAgICAgYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgb2JqZWN0S2V5OiBgdGVzdC1maWxlLSR7RGF0ZS5ub3coKX0uanNvbmAsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZG9ja2VySW1hZ2VzOiB7XG4gICAgICAgIHRlc3RpbWFnZToge1xuICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBpbWFnZURpcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlc3RpbmF0aW9uczoge1xuICAgICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICAgIGFzc3VtZVJvbGVBcm46IGBhcm46XFwke0FXUzo6UGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cm9sZS9jZGstaG5iNjU5ZmRzLWltYWdlLXB1Ymxpc2hpbmctcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWAsXG4gICAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgICAgICBpbWFnZVRhZzogYHRlc3QtaW1hZ2VgLCAvLyBOb3QgZnJlc2ggb24gZXZlcnkgcnVuIGJlY2F1c2Ugd2UnbGwgcnVuIG91dCBvZiB0YWdzIHRvbyBlYXNpbHlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Fzc2V0cy5qc29uJyksIEpTT04uc3RyaW5naWZ5KGFzc2V0c0pzb24sIHVuZGVmaW5lZCwgMikpO1xuICAgIGF3YWl0IGZpeHR1cmUuc2hlbGwoWyducHgnLCAnY2RrLWFzc2V0cycsICctLXBhdGgnLCAnYXNzZXRzLmpzb24nLCAnLS12ZXJib3NlJywgJ3B1Ymxpc2gnXSwge1xuICAgICAgbW9kRW52OiB7XG4gICAgICAgIC4uLmZpeHR1cmUuY2RrU2hlbGxFbnYoKSxcbiAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGNkay1hc3NldHMgdjIsIGlmIHRoZSBjcmVkZW50aWFscyBhcmUgc3VwcGxpZWQgdmlhXG4gICAgICAgIC8vIGNvbmZpZyBmaWxlICh3aGljaCB0aGV5IGFyZSBvbiB0aGUgQ29kZUJ1aWxkIGNhbmFyaWVzKS5cbiAgICAgICAgQVdTX1NES19MT0FEX0NPTkZJRzogJzEnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSksXG4pOyJdfQ==