@jcoreio/aws-ecr-utils 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/checkECRRepositoryPolicy.d.ts +20 -0
- package/checkECRRepositoryPolicy.js +132 -0
- package/checkECRRepositoryPolicy.mjs +100 -0
- package/copyECRImage.js +79 -104
- package/copyECRImage.mjs +67 -0
- package/ecrImageExists.js +51 -74
- package/ecrImageExists.mjs +31 -0
- package/index.d.ts +2 -0
- package/index.js +20 -13
- package/index.mjs +8 -0
- package/loginToECR.js +44 -65
- package/loginToECR.mjs +38 -0
- package/package.json +25 -104
- package/parseECRImageUri.d.ts +3 -2
- package/parseECRImageUri.js +6 -10
- package/parseECRImageUri.mjs +11 -0
- package/parseECRRepositoryHostname.d.ts +6 -0
- package/parseECRRepositoryHostname.js +22 -0
- package/parseECRRepositoryHostname.mjs +10 -0
- package/tagECRImage.js +81 -115
- package/tagECRImage.mjs +50 -0
- package/upsertECRRepository.js +45 -64
- package/upsertECRRepository.mjs +33 -0
- package/es/copyECRImage.d.ts +0 -13
- package/es/copyECRImage.js +0 -76
- package/es/ecrImageExists.d.ts +0 -9
- package/es/ecrImageExists.js +0 -45
- package/es/index.d.ts +0 -6
- package/es/index.js +0 -56
- package/es/loginToECR.d.ts +0 -8
- package/es/loginToECR.js +0 -56
- package/es/parseECRImageUri.d.ts +0 -6
- package/es/parseECRImageUri.js +0 -19
- package/es/tagECRImage.d.ts +0 -10
- package/es/tagECRImage.js +0 -65
- package/es/upsertECRRepository.d.ts +0 -6
- package/es/upsertECRRepository.js +0 -45
- /package/{es/copyECRImage.js.flow → copyECRImage.mjs.flow} +0 -0
- /package/{es/ecrImageExists.js.flow → ecrImageExists.mjs.flow} +0 -0
- /package/{es/index.js.flow → index.mjs.flow} +0 -0
- /package/{es/loginToECR.js.flow → loginToECR.mjs.flow} +0 -0
- /package/{es/parseECRImageUri.js.flow → parseECRImageUri.mjs.flow} +0 -0
- /package/{es/tagECRImage.js.flow → tagECRImage.mjs.flow} +0 -0
- /package/{es/upsertECRRepository.js.flow → upsertECRRepository.mjs.flow} +0 -0
package/es/index.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "copyECRImage", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _copyECRImage.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "ecrImageExists", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _ecrImageExists.default;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "loginToECR", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _loginToECR.default;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(exports, "parseECRImageUri", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function () {
|
|
27
|
-
return _parseECRImageUri.default;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(exports, "tagECRImage", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function () {
|
|
33
|
-
return _tagECRImage.default;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
Object.defineProperty(exports, "upsertECRRepository", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function () {
|
|
39
|
-
return _upsertECRRepository.default;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
var _copyECRImage = _interopRequireDefault(require("./copyECRImage"));
|
|
44
|
-
|
|
45
|
-
var _ecrImageExists = _interopRequireDefault(require("./ecrImageExists"));
|
|
46
|
-
|
|
47
|
-
var _loginToECR = _interopRequireDefault(require("./loginToECR"));
|
|
48
|
-
|
|
49
|
-
var _tagECRImage = _interopRequireDefault(require("./tagECRImage"));
|
|
50
|
-
|
|
51
|
-
var _parseECRImageUri = _interopRequireDefault(require("./parseECRImageUri"));
|
|
52
|
-
|
|
53
|
-
var _upsertECRRepository = _interopRequireDefault(require("./upsertECRRepository"));
|
|
54
|
-
|
|
55
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgY29weUVDUkltYWdlIH0gZnJvbSAnLi9jb3B5RUNSSW1hZ2UnXG5leHBvcnQgeyBkZWZhdWx0IGFzIGVjckltYWdlRXhpc3RzIH0gZnJvbSAnLi9lY3JJbWFnZUV4aXN0cydcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbG9naW5Ub0VDUiB9IGZyb20gJy4vbG9naW5Ub0VDUidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdGFnRUNSSW1hZ2UgfSBmcm9tICcuL3RhZ0VDUkltYWdlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJzZUVDUkltYWdlVXJpIH0gZnJvbSAnLi9wYXJzZUVDUkltYWdlVXJpJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1cHNlcnRFQ1JSZXBvc2l0b3J5IH0gZnJvbSAnLi91cHNlcnRFQ1JSZXBvc2l0b3J5J1xuIl19
|
package/es/loginToECR.d.ts
DELETED
package/es/loginToECR.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = loginToECR;
|
|
7
|
-
|
|
8
|
-
var _awsSdk = _interopRequireDefault(require("aws-sdk"));
|
|
9
|
-
|
|
10
|
-
var _promisifyChildProcess = require("promisify-child-process");
|
|
11
|
-
|
|
12
|
-
var _base64Js = _interopRequireDefault(require("base64-js"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @prettier
|
|
18
|
-
*/
|
|
19
|
-
async function loginToECR({
|
|
20
|
-
ecr,
|
|
21
|
-
awsConfig
|
|
22
|
-
}) {
|
|
23
|
-
if (!ecr) ecr = new _awsSdk.default.ECR(awsConfig);
|
|
24
|
-
const {
|
|
25
|
-
authorizationData
|
|
26
|
-
} = await ecr.getAuthorizationToken().promise();
|
|
27
|
-
const {
|
|
28
|
-
authorizationToken,
|
|
29
|
-
proxyEndpoint
|
|
30
|
-
} = (authorizationData === null || authorizationData === void 0 ? void 0 : authorizationData[0]) || {};
|
|
31
|
-
|
|
32
|
-
if (!authorizationToken) {
|
|
33
|
-
throw new Error('failed to get authorizationToken from ECR');
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (!proxyEndpoint) {
|
|
37
|
-
throw new Error('failed to get proxyEndpoint from ECR');
|
|
38
|
-
} // this is silly...
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const decoded = new Buffer(_base64Js.default.toByteArray(authorizationToken)).toString('utf8');
|
|
42
|
-
const [user, password] = decoded.split(/:/);
|
|
43
|
-
const child = (0, _promisifyChildProcess.spawn)('docker', ['login', '-u', user, '--password-stdin', proxyEndpoint], {
|
|
44
|
-
stdio: 'pipe',
|
|
45
|
-
encoding: 'utf8'
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
if (!child.stdin) {
|
|
49
|
-
throw new Error('expected child.stdin to be defined');
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
child.stdin.write(password);
|
|
53
|
-
child.stdin.end();
|
|
54
|
-
await child;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2dpblRvRUNSLnRzIl0sIm5hbWVzIjpbImxvZ2luVG9FQ1IiLCJlY3IiLCJhd3NDb25maWciLCJBV1MiLCJFQ1IiLCJhdXRob3JpemF0aW9uRGF0YSIsImdldEF1dGhvcml6YXRpb25Ub2tlbiIsInByb21pc2UiLCJhdXRob3JpemF0aW9uVG9rZW4iLCJwcm94eUVuZHBvaW50IiwiRXJyb3IiLCJkZWNvZGVkIiwiQnVmZmVyIiwiYmFzZTY0IiwidG9CeXRlQXJyYXkiLCJ0b1N0cmluZyIsInVzZXIiLCJwYXNzd29yZCIsInNwbGl0IiwiY2hpbGQiLCJzdGRpbyIsImVuY29kaW5nIiwic3RkaW4iLCJ3cml0ZSIsImVuZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUNBOztBQUNBOzs7O0FBTEE7QUFDQTtBQUNBO0FBS2UsZUFBZUEsVUFBZixDQUEwQjtBQUN2Q0MsRUFBQUEsR0FEdUM7QUFFdkNDLEVBQUFBO0FBRnVDLENBQTFCLEVBTUc7QUFDaEIsTUFBSSxDQUFDRCxHQUFMLEVBQVVBLEdBQUcsR0FBRyxJQUFJRSxnQkFBSUMsR0FBUixDQUFZRixTQUFaLENBQU47QUFDVixRQUFNO0FBQUVHLElBQUFBO0FBQUYsTUFBd0IsTUFBTUosR0FBRyxDQUFDSyxxQkFBSixHQUE0QkMsT0FBNUIsRUFBcEM7QUFDQSxRQUFNO0FBQUVDLElBQUFBLGtCQUFGO0FBQXNCQyxJQUFBQTtBQUF0QixNQUF3QyxDQUFBSixpQkFBaUIsU0FBakIsSUFBQUEsaUJBQWlCLFdBQWpCLFlBQUFBLGlCQUFpQixDQUFHLENBQUgsQ0FBakIsS0FBMEIsRUFBeEU7O0FBQ0EsTUFBSSxDQUFDRyxrQkFBTCxFQUF5QjtBQUN2QixVQUFNLElBQUlFLEtBQUosQ0FBVSwyQ0FBVixDQUFOO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDRCxhQUFMLEVBQW9CO0FBQ2xCLFVBQU0sSUFBSUMsS0FBSixDQUFVLHNDQUFWLENBQU47QUFDRCxHQVRlLENBVWhCOzs7QUFDQSxRQUFNQyxPQUFPLEdBQUcsSUFBSUMsTUFBSixDQUFXQyxrQkFBT0MsV0FBUCxDQUFtQk4sa0JBQW5CLENBQVgsRUFBbURPLFFBQW5ELENBQ2QsTUFEYyxDQUFoQjtBQUdBLFFBQU0sQ0FBQ0MsSUFBRCxFQUFPQyxRQUFQLElBQW1CTixPQUFPLENBQUNPLEtBQVIsQ0FBYyxHQUFkLENBQXpCO0FBQ0EsUUFBTUMsS0FBSyxHQUFHLGtDQUNaLFFBRFksRUFFWixDQUFDLE9BQUQsRUFBVSxJQUFWLEVBQWdCSCxJQUFoQixFQUFzQixrQkFBdEIsRUFBMENQLGFBQTFDLENBRlksRUFHWjtBQUNFVyxJQUFBQSxLQUFLLEVBQUUsTUFEVDtBQUVFQyxJQUFBQSxRQUFRLEVBQUU7QUFGWixHQUhZLENBQWQ7O0FBUUEsTUFBSSxDQUFDRixLQUFLLENBQUNHLEtBQVgsRUFBa0I7QUFDaEIsVUFBTSxJQUFJWixLQUFKLENBQVUsb0NBQVYsQ0FBTjtBQUNEOztBQUNEUyxFQUFBQSxLQUFLLENBQUNHLEtBQU4sQ0FBWUMsS0FBWixDQUFrQk4sUUFBbEI7QUFDQUUsRUFBQUEsS0FBSyxDQUFDRyxLQUFOLENBQVlFLEdBQVo7QUFDQSxRQUFNTCxLQUFOO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgQVdTIGZyb20gJ2F3cy1zZGsnXG5pbXBvcnQgeyBzcGF3biB9IGZyb20gJ3Byb21pc2lmeS1jaGlsZC1wcm9jZXNzJ1xuaW1wb3J0IGJhc2U2NCBmcm9tICdiYXNlNjQtanMnXG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGxvZ2luVG9FQ1Ioe1xuICBlY3IsXG4gIGF3c0NvbmZpZyxcbn06IHtcbiAgZWNyPzogQVdTLkVDUlxuICBhd3NDb25maWc/OiBBV1MuQ29uZmlndXJhdGlvbk9wdGlvbnNcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFlY3IpIGVjciA9IG5ldyBBV1MuRUNSKGF3c0NvbmZpZylcbiAgY29uc3QgeyBhdXRob3JpemF0aW9uRGF0YSB9ID0gYXdhaXQgZWNyLmdldEF1dGhvcml6YXRpb25Ub2tlbigpLnByb21pc2UoKVxuICBjb25zdCB7IGF1dGhvcml6YXRpb25Ub2tlbiwgcHJveHlFbmRwb2ludCB9ID0gYXV0aG9yaXphdGlvbkRhdGE/LlswXSB8fCB7fVxuICBpZiAoIWF1dGhvcml6YXRpb25Ub2tlbikge1xuICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkIHRvIGdldCBhdXRob3JpemF0aW9uVG9rZW4gZnJvbSBFQ1InKVxuICB9XG4gIGlmICghcHJveHlFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkIHRvIGdldCBwcm94eUVuZHBvaW50IGZyb20gRUNSJylcbiAgfVxuICAvLyB0aGlzIGlzIHNpbGx5Li4uXG4gIGNvbnN0IGRlY29kZWQgPSBuZXcgQnVmZmVyKGJhc2U2NC50b0J5dGVBcnJheShhdXRob3JpemF0aW9uVG9rZW4pKS50b1N0cmluZyhcbiAgICAndXRmOCdcbiAgKVxuICBjb25zdCBbdXNlciwgcGFzc3dvcmRdID0gZGVjb2RlZC5zcGxpdCgvOi8pXG4gIGNvbnN0IGNoaWxkID0gc3Bhd24oXG4gICAgJ2RvY2tlcicsXG4gICAgWydsb2dpbicsICctdScsIHVzZXIsICctLXBhc3N3b3JkLXN0ZGluJywgcHJveHlFbmRwb2ludF0sXG4gICAge1xuICAgICAgc3RkaW86ICdwaXBlJyxcbiAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgfVxuICApXG4gIGlmICghY2hpbGQuc3RkaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGNoaWxkLnN0ZGluIHRvIGJlIGRlZmluZWQnKVxuICB9XG4gIGNoaWxkLnN0ZGluLndyaXRlKHBhc3N3b3JkKVxuICBjaGlsZC5zdGRpbi5lbmQoKVxuICBhd2FpdCBjaGlsZFxufVxuIl19
|
package/es/parseECRImageUri.d.ts
DELETED
package/es/parseECRImageUri.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = parseECRImageUri;
|
|
7
|
-
|
|
8
|
-
function parseECRImageUri(imageUri) {
|
|
9
|
-
const match = /(\d+)\.dkr\.ecr\.([^.]+)\.amazonaws\.com\/([^:]+):(.+)/.exec(imageUri);
|
|
10
|
-
if (!match) throw new Error(`invalid imageUri: ${imageUri}`);
|
|
11
|
-
const [, registryId, region, repositoryName, imageTag] = match;
|
|
12
|
-
return {
|
|
13
|
-
registryId,
|
|
14
|
-
region,
|
|
15
|
-
repositoryName,
|
|
16
|
-
imageTag
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZUVDUkltYWdlVXJpLnRzIl0sIm5hbWVzIjpbInBhcnNlRUNSSW1hZ2VVcmkiLCJpbWFnZVVyaSIsIm1hdGNoIiwiZXhlYyIsIkVycm9yIiwicmVnaXN0cnlJZCIsInJlZ2lvbiIsInJlcG9zaXRvcnlOYW1lIiwiaW1hZ2VUYWciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZSxTQUFTQSxnQkFBVCxDQUEwQkMsUUFBMUIsRUFLYjtBQUNBLFFBQU1DLEtBQUssR0FBRyx5REFBeURDLElBQXpELENBQ1pGLFFBRFksQ0FBZDtBQUdBLE1BQUksQ0FBQ0MsS0FBTCxFQUFZLE1BQU0sSUFBSUUsS0FBSixDQUFXLHFCQUFvQkgsUUFBUyxFQUF4QyxDQUFOO0FBQ1osUUFBTSxHQUFHSSxVQUFILEVBQWVDLE1BQWYsRUFBdUJDLGNBQXZCLEVBQXVDQyxRQUF2QyxJQUFtRE4sS0FBekQ7QUFDQSxTQUFPO0FBQUVHLElBQUFBLFVBQUY7QUFBY0MsSUFBQUEsTUFBZDtBQUFzQkMsSUFBQUEsY0FBdEI7QUFBc0NDLElBQUFBO0FBQXRDLEdBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcnNlRUNSSW1hZ2VVcmkoaW1hZ2VVcmk6IHN0cmluZyk6IHtcbiAgcmVnaXN0cnlJZDogc3RyaW5nXG4gIHJlZ2lvbjogc3RyaW5nXG4gIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmdcbiAgaW1hZ2VUYWc6IHN0cmluZ1xufSB7XG4gIGNvbnN0IG1hdGNoID0gLyhcXGQrKVxcLmRrclxcLmVjclxcLihbXi5dKylcXC5hbWF6b25hd3NcXC5jb21cXC8oW146XSspOiguKykvLmV4ZWMoXG4gICAgaW1hZ2VVcmlcbiAgKVxuICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaW1hZ2VVcmk6ICR7aW1hZ2VVcml9YClcbiAgY29uc3QgWywgcmVnaXN0cnlJZCwgcmVnaW9uLCByZXBvc2l0b3J5TmFtZSwgaW1hZ2VUYWddID0gbWF0Y2hcbiAgcmV0dXJuIHsgcmVnaXN0cnlJZCwgcmVnaW9uLCByZXBvc2l0b3J5TmFtZSwgaW1hZ2VUYWcgfVxufVxuIl19
|
package/es/tagECRImage.d.ts
DELETED
package/es/tagECRImage.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = tagECRImage;
|
|
7
|
-
|
|
8
|
-
var _awsSdk = _interopRequireDefault(require("aws-sdk"));
|
|
9
|
-
|
|
10
|
-
var _parseECRImageUri = _interopRequireDefault(require("./parseECRImageUri"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @prettier
|
|
16
|
-
*/
|
|
17
|
-
async function tagECRImage({
|
|
18
|
-
ecr,
|
|
19
|
-
awsConfig,
|
|
20
|
-
imageUri,
|
|
21
|
-
tags
|
|
22
|
-
}) {
|
|
23
|
-
const {
|
|
24
|
-
region,
|
|
25
|
-
repositoryName,
|
|
26
|
-
imageTag
|
|
27
|
-
} = (0, _parseECRImageUri.default)(imageUri);
|
|
28
|
-
if (!ecr) ecr = new _awsSdk.default.ECR({ ...awsConfig,
|
|
29
|
-
region
|
|
30
|
-
});
|
|
31
|
-
const imageManifest = await ecr.batchGetImage({
|
|
32
|
-
repositoryName,
|
|
33
|
-
imageIds: [{
|
|
34
|
-
imageTag
|
|
35
|
-
}]
|
|
36
|
-
}).promise().then(r => {
|
|
37
|
-
var _r$images, _r$images$;
|
|
38
|
-
|
|
39
|
-
return r === null || r === void 0 ? void 0 : (_r$images = r.images) === null || _r$images === void 0 ? void 0 : (_r$images$ = _r$images[0]) === null || _r$images$ === void 0 ? void 0 : _r$images$.imageManifest;
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
if (!imageManifest) {
|
|
43
|
-
throw new Error(`failed to get image manifest for ${imageUri}`);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (imageManifest) {
|
|
47
|
-
// add other tags to ECR
|
|
48
|
-
for (const tag of tags) {
|
|
49
|
-
// eslint-disable-next-line no-console
|
|
50
|
-
console.error(`Adding tag ${repositoryName}:${tag}`);
|
|
51
|
-
|
|
52
|
-
try {
|
|
53
|
-
await ecr.putImage({
|
|
54
|
-
repositoryName,
|
|
55
|
-
imageManifest,
|
|
56
|
-
imageTag: tag.substring(tag.indexOf(':') + 1)
|
|
57
|
-
}).promise();
|
|
58
|
-
} catch (error) {
|
|
59
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
|
-
if ((error === null || error === void 0 ? void 0 : error.code) !== 'ImageAlreadyExistsException') throw error;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90YWdFQ1JJbWFnZS50cyJdLCJuYW1lcyI6WyJ0YWdFQ1JJbWFnZSIsImVjciIsImF3c0NvbmZpZyIsImltYWdlVXJpIiwidGFncyIsInJlZ2lvbiIsInJlcG9zaXRvcnlOYW1lIiwiaW1hZ2VUYWciLCJBV1MiLCJFQ1IiLCJpbWFnZU1hbmlmZXN0IiwiYmF0Y2hHZXRJbWFnZSIsImltYWdlSWRzIiwicHJvbWlzZSIsInRoZW4iLCJyIiwiaW1hZ2VzIiwiRXJyb3IiLCJ0YWciLCJjb25zb2xlIiwiZXJyb3IiLCJwdXRJbWFnZSIsInN1YnN0cmluZyIsImluZGV4T2YiLCJjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0E7O0FBQ0E7Ozs7QUFKQTtBQUNBO0FBQ0E7QUFJZSxlQUFlQSxXQUFmLENBQTJCO0FBQ3hDQyxFQUFBQSxHQUR3QztBQUV4Q0MsRUFBQUEsU0FGd0M7QUFHeENDLEVBQUFBLFFBSHdDO0FBSXhDQyxFQUFBQTtBQUp3QyxDQUEzQixFQVVHO0FBQ2hCLFFBQU07QUFBRUMsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQSxjQUFWO0FBQTBCQyxJQUFBQTtBQUExQixNQUF1QywrQkFBaUJKLFFBQWpCLENBQTdDO0FBQ0EsTUFBSSxDQUFDRixHQUFMLEVBQVVBLEdBQUcsR0FBRyxJQUFJTyxnQkFBSUMsR0FBUixDQUFZLEVBQUUsR0FBR1AsU0FBTDtBQUFnQkcsSUFBQUE7QUFBaEIsR0FBWixDQUFOO0FBRVYsUUFBTUssYUFBYSxHQUFHLE1BQU1ULEdBQUcsQ0FDNUJVLGFBRHlCLENBQ1g7QUFDYkwsSUFBQUEsY0FEYTtBQUViTSxJQUFBQSxRQUFRLEVBQUUsQ0FBQztBQUFFTCxNQUFBQTtBQUFGLEtBQUQ7QUFGRyxHQURXLEVBS3pCTSxPQUx5QixHQU16QkMsSUFOeUIsQ0FNbkJDLENBQUQ7QUFBQTs7QUFBQSxXQUFPQSxDQUFQLGFBQU9BLENBQVAsb0NBQU9BLENBQUMsQ0FBRUMsTUFBViw0REFBTyxVQUFZLENBQVosQ0FBUCwrQ0FBTyxXQUFnQk4sYUFBdkI7QUFBQSxHQU5vQixDQUE1Qjs7QUFRQSxNQUFJLENBQUNBLGFBQUwsRUFBb0I7QUFDbEIsVUFBTSxJQUFJTyxLQUFKLENBQVcsb0NBQW1DZCxRQUFTLEVBQXZELENBQU47QUFDRDs7QUFFRCxNQUFJTyxhQUFKLEVBQW1CO0FBQ2pCO0FBQ0EsU0FBSyxNQUFNUSxHQUFYLElBQWtCZCxJQUFsQixFQUF3QjtBQUN0QjtBQUNBZSxNQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBZSxjQUFhZCxjQUFlLElBQUdZLEdBQUksRUFBbEQ7O0FBQ0EsVUFBSTtBQUNGLGNBQU1qQixHQUFHLENBQ05vQixRQURHLENBQ007QUFDUmYsVUFBQUEsY0FEUTtBQUVSSSxVQUFBQSxhQUZRO0FBR1JILFVBQUFBLFFBQVEsRUFBRVcsR0FBRyxDQUFDSSxTQUFKLENBQWNKLEdBQUcsQ0FBQ0ssT0FBSixDQUFZLEdBQVosSUFBbUIsQ0FBakM7QUFIRixTQUROLEVBTUhWLE9BTkcsRUFBTjtBQU9ELE9BUkQsQ0FRRSxPQUFPTyxLQUFQLEVBQWM7QUFDZDtBQUNBLFlBQUksQ0FBQ0EsS0FBRCxhQUFDQSxLQUFELHVCQUFDQSxLQUFELENBQWdCSSxJQUFoQixNQUF5Qiw2QkFBN0IsRUFBNEQsTUFBTUosS0FBTjtBQUM3RDtBQUNGO0FBQ0Y7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBBV1MgZnJvbSAnYXdzLXNkaydcbmltcG9ydCBwYXJzZUVDUkltYWdlVXJpIGZyb20gJy4vcGFyc2VFQ1JJbWFnZVVyaSdcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gdGFnRUNSSW1hZ2Uoe1xuICBlY3IsXG4gIGF3c0NvbmZpZyxcbiAgaW1hZ2VVcmksXG4gIHRhZ3MsXG59OiB7XG4gIGVjcj86IEFXUy5FQ1JcbiAgYXdzQ29uZmlnPzogQVdTLkNvbmZpZ3VyYXRpb25PcHRpb25zXG4gIGltYWdlVXJpOiBzdHJpbmdcbiAgdGFnczogc3RyaW5nW11cbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyByZWdpb24sIHJlcG9zaXRvcnlOYW1lLCBpbWFnZVRhZyB9ID0gcGFyc2VFQ1JJbWFnZVVyaShpbWFnZVVyaSlcbiAgaWYgKCFlY3IpIGVjciA9IG5ldyBBV1MuRUNSKHsgLi4uYXdzQ29uZmlnLCByZWdpb24gfSlcblxuICBjb25zdCBpbWFnZU1hbmlmZXN0ID0gYXdhaXQgZWNyXG4gICAgLmJhdGNoR2V0SW1hZ2Uoe1xuICAgICAgcmVwb3NpdG9yeU5hbWUsXG4gICAgICBpbWFnZUlkczogW3sgaW1hZ2VUYWcgfV0sXG4gICAgfSlcbiAgICAucHJvbWlzZSgpXG4gICAgLnRoZW4oKHIpID0+IHI/LmltYWdlcz8uWzBdPy5pbWFnZU1hbmlmZXN0KVxuXG4gIGlmICghaW1hZ2VNYW5pZmVzdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGdldCBpbWFnZSBtYW5pZmVzdCBmb3IgJHtpbWFnZVVyaX1gKVxuICB9XG5cbiAgaWYgKGltYWdlTWFuaWZlc3QpIHtcbiAgICAvLyBhZGQgb3RoZXIgdGFncyB0byBFQ1JcbiAgICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcihgQWRkaW5nIHRhZyAke3JlcG9zaXRvcnlOYW1lfToke3RhZ31gKVxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZWNyXG4gICAgICAgICAgLnB1dEltYWdlKHtcbiAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgICAgaW1hZ2VNYW5pZmVzdCxcbiAgICAgICAgICAgIGltYWdlVGFnOiB0YWcuc3Vic3RyaW5nKHRhZy5pbmRleE9mKCc6JykgKyAxKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5wcm9taXNlKClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGlmICgoZXJyb3IgYXMgYW55KT8uY29kZSAhPT0gJ0ltYWdlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbicpIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = upsertECRRepository;
|
|
7
|
-
|
|
8
|
-
var _awsSdk = _interopRequireDefault(require("aws-sdk"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
// @flow
|
|
13
|
-
async function upsertECRRepository({
|
|
14
|
-
ecr,
|
|
15
|
-
awsConfig,
|
|
16
|
-
repositoryName
|
|
17
|
-
}) {
|
|
18
|
-
if (!ecr) ecr = new _awsSdk.default.ECR(awsConfig);
|
|
19
|
-
|
|
20
|
-
try {
|
|
21
|
-
const {
|
|
22
|
-
repositories
|
|
23
|
-
} = await ecr.describeRepositories({
|
|
24
|
-
repositoryNames: [repositoryName]
|
|
25
|
-
}).promise();
|
|
26
|
-
const repository = repositories === null || repositories === void 0 ? void 0 : repositories[0];
|
|
27
|
-
if (repository) return repository;
|
|
28
|
-
} catch (error) {// ignore
|
|
29
|
-
} // eslint-disable-next-line no-console
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
console.error(`Creating ECR repository {bold ${repositoryName}}...`);
|
|
33
|
-
const {
|
|
34
|
-
repository
|
|
35
|
-
} = await ecr.createRepository({
|
|
36
|
-
repositoryName
|
|
37
|
-
}).promise();
|
|
38
|
-
|
|
39
|
-
if (!repository) {
|
|
40
|
-
throw new Error(`repository is missing from createRepository response`);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return repository;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cHNlcnRFQ1JSZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbInVwc2VydEVDUlJlcG9zaXRvcnkiLCJlY3IiLCJhd3NDb25maWciLCJyZXBvc2l0b3J5TmFtZSIsIkFXUyIsIkVDUiIsInJlcG9zaXRvcmllcyIsImRlc2NyaWJlUmVwb3NpdG9yaWVzIiwicmVwb3NpdG9yeU5hbWVzIiwicHJvbWlzZSIsInJlcG9zaXRvcnkiLCJlcnJvciIsImNvbnNvbGUiLCJjcmVhdGVSZXBvc2l0b3J5IiwiRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7OztBQUZBO0FBSWUsZUFBZUEsbUJBQWYsQ0FBbUM7QUFDaERDLEVBQUFBLEdBRGdEO0FBRWhEQyxFQUFBQSxTQUZnRDtBQUdoREMsRUFBQUE7QUFIZ0QsQ0FBbkMsRUFRaUI7QUFDOUIsTUFBSSxDQUFDRixHQUFMLEVBQVVBLEdBQUcsR0FBRyxJQUFJRyxnQkFBSUMsR0FBUixDQUFZSCxTQUFaLENBQU47O0FBQ1YsTUFBSTtBQUNGLFVBQU07QUFBRUksTUFBQUE7QUFBRixRQUFtQixNQUFNTCxHQUFHLENBQy9CTSxvQkFENEIsQ0FDUDtBQUFFQyxNQUFBQSxlQUFlLEVBQUUsQ0FBQ0wsY0FBRDtBQUFuQixLQURPLEVBRTVCTSxPQUY0QixFQUEvQjtBQUdBLFVBQU1DLFVBQVUsR0FBR0osWUFBSCxhQUFHQSxZQUFILHVCQUFHQSxZQUFZLENBQUcsQ0FBSCxDQUEvQjtBQUNBLFFBQUlJLFVBQUosRUFBZ0IsT0FBT0EsVUFBUDtBQUNqQixHQU5ELENBTUUsT0FBT0MsS0FBUCxFQUFjLENBQ2Q7QUFDRCxHQVY2QixDQVk5Qjs7O0FBQ0FDLEVBQUFBLE9BQU8sQ0FBQ0QsS0FBUixDQUFlLGlDQUFnQ1IsY0FBZSxNQUE5RDtBQUNBLFFBQU07QUFBRU8sSUFBQUE7QUFBRixNQUFpQixNQUFNVCxHQUFHLENBQzdCWSxnQkFEMEIsQ0FDVDtBQUFFVixJQUFBQTtBQUFGLEdBRFMsRUFFMUJNLE9BRjBCLEVBQTdCOztBQUdBLE1BQUksQ0FBQ0MsVUFBTCxFQUFpQjtBQUNmLFVBQU0sSUFBSUksS0FBSixDQUFXLHNEQUFYLENBQU47QUFDRDs7QUFDRCxTQUFPSixVQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuXG5pbXBvcnQgQVdTIGZyb20gJ2F3cy1zZGsnXG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwc2VydEVDUlJlcG9zaXRvcnkoe1xuICBlY3IsXG4gIGF3c0NvbmZpZyxcbiAgcmVwb3NpdG9yeU5hbWUsXG59OiB7XG4gIGVjcj86IEFXUy5FQ1JcbiAgYXdzQ29uZmlnPzogQVdTLkNvbmZpZ3VyYXRpb25PcHRpb25zXG4gIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmdcbn0pOiBQcm9taXNlPEFXUy5FQ1IuUmVwb3NpdG9yeT4ge1xuICBpZiAoIWVjcikgZWNyID0gbmV3IEFXUy5FQ1IoYXdzQ29uZmlnKVxuICB0cnkge1xuICAgIGNvbnN0IHsgcmVwb3NpdG9yaWVzIH0gPSBhd2FpdCBlY3JcbiAgICAgIC5kZXNjcmliZVJlcG9zaXRvcmllcyh7IHJlcG9zaXRvcnlOYW1lczogW3JlcG9zaXRvcnlOYW1lXSB9KVxuICAgICAgLnByb21pc2UoKVxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSByZXBvc2l0b3JpZXM/LlswXVxuICAgIGlmIChyZXBvc2l0b3J5KSByZXR1cm4gcmVwb3NpdG9yeVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGlnbm9yZVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihgQ3JlYXRpbmcgRUNSIHJlcG9zaXRvcnkge2JvbGQgJHtyZXBvc2l0b3J5TmFtZX19Li4uYClcbiAgY29uc3QgeyByZXBvc2l0b3J5IH0gPSBhd2FpdCBlY3JcbiAgICAuY3JlYXRlUmVwb3NpdG9yeSh7IHJlcG9zaXRvcnlOYW1lIH0pXG4gICAgLnByb21pc2UoKVxuICBpZiAoIXJlcG9zaXRvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHJlcG9zaXRvcnkgaXMgbWlzc2luZyBmcm9tIGNyZWF0ZVJlcG9zaXRvcnkgcmVzcG9uc2VgKVxuICB9XG4gIHJldHVybiByZXBvc2l0b3J5XG59XG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|