@jcoreio/aws-ecr-utils 2.2.1 → 2.4.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/ECRDeployer.d.mts +35 -3
- package/ECRDeployer.d.mts.map +1 -1
- package/ECRDeployer.d.ts +35 -3
- package/ECRDeployer.d.ts.map +1 -1
- package/ECRDeployer.js +242 -82
- package/ECRDeployer.js.map +1 -1
- package/ECRDeployer.mjs +47 -3
- package/ECRDeployer.mjs.map +1 -1
- package/package.json +1 -1
- package/src/ECRDeployer.ts +100 -3
package/ECRDeployer.d.mts
CHANGED
|
@@ -10,13 +10,40 @@ export interface ECRDeployerOptions {
|
|
|
10
10
|
* The name of the ECR repository
|
|
11
11
|
*/
|
|
12
12
|
repositoryName: string;
|
|
13
|
+
/**
|
|
14
|
+
* Options for {@link ECRDeployer#build}. If a custom function is given,
|
|
15
|
+
* it will be called instead of running `docker build`.
|
|
16
|
+
*/
|
|
17
|
+
build?: (BuildOptions & {
|
|
18
|
+
args?: string[];
|
|
19
|
+
}) | ((options: {
|
|
20
|
+
/**
|
|
21
|
+
* The tag to apply to the local docker image
|
|
22
|
+
*/
|
|
23
|
+
tag: string;
|
|
24
|
+
}) => Promise<void>);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Options for {@link ECRDeployer#build}
|
|
28
|
+
*/
|
|
29
|
+
export interface BuildOptions {
|
|
30
|
+
/**
|
|
31
|
+
* the path to build (defaults to `.`)
|
|
32
|
+
*/
|
|
33
|
+
path?: string;
|
|
34
|
+
/**
|
|
35
|
+
* If `true`, doesn't pass `--build-arg NPM_TOKEN=...`
|
|
36
|
+
*/
|
|
37
|
+
noNpmTokenArg?: boolean;
|
|
13
38
|
}
|
|
14
39
|
/**
|
|
15
40
|
* Class that implements our conventional process for deploying docker images to ECR.
|
|
16
41
|
*
|
|
17
|
-
* The CI build step should build the docker image
|
|
18
|
-
*
|
|
19
|
-
*
|
|
42
|
+
* The CI build step should build and push the docker image if necessary; you can use
|
|
43
|
+
* {@link buildAndPushIfNecessary}. If you need to customize the build you can pass
|
|
44
|
+
* options or even a custom function in {@link ECRDeployerOptions.build}, or you can
|
|
45
|
+
* even call {@link isPushed}, {@link build}, {@link push}, and {@link getNpmToken}
|
|
46
|
+
* yourself.
|
|
20
47
|
*
|
|
21
48
|
* The CI release step should call {@link release} to add tags for the git branch and
|
|
22
49
|
* the `version` in your `package.json`.
|
|
@@ -33,6 +60,11 @@ export declare class ECRDeployer {
|
|
|
33
60
|
private getRegion;
|
|
34
61
|
private getECRHost;
|
|
35
62
|
private getProjectPackageJson;
|
|
63
|
+
getLocalDockerTag(): Promise<string>;
|
|
64
|
+
build(options?: BuildOptions): Promise<void>;
|
|
65
|
+
build(args: string[], options?: BuildOptions): Promise<void>;
|
|
66
|
+
isPushed(): Promise<boolean>;
|
|
67
|
+
buildAndPushIfNecessary(): Promise<void>;
|
|
36
68
|
getDockerTags(): Promise<{
|
|
37
69
|
latest: string;
|
|
38
70
|
branch: string;
|
package/ECRDeployer.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECRDeployer.d.mts","names":["ECRClientConfig","ECRDeployerOptions","awsConfig","releaseBranches","repositoryName","
|
|
1
|
+
{"version":3,"file":"ECRDeployer.d.mts","names":["ECRClientConfig","ECRDeployerOptions","awsConfig","releaseBranches","repositoryName","build","BuildOptions","args","options","tag","Promise","path","noNpmTokenArg","ECRDeployer","getBranch","getCommitHash","getAWSAccountId","getRegion","getECRHost","getProjectPackageJson","getLocalDockerTag","isPushed","buildAndPushIfNecessary","getDockerTags","latest","branch","commitHash","version","push","release","getNpmToken","env","NodeJS","ProcessEnv"],"sources":["src/ECRDeployer.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,eAAe,QAEV,qBAAqB;AAU5B,OAAM,UAAWC,kBAAkB;EACjCC,SAAS,CAAC,EAAEF,eAAe;EAC3B;;;;EAIAG,eAAe,CAAC,EAAE,MAAM,EAAE;EAC1B;;;EAGAC,cAAc,EAAE,MAAM;EACtB;;;;EAIAC,KAAK,CAAC,EACF,CAACC,YAAY,GAAG;IAAEC,IAAI,CAAC,EAAE,MAAM,EAAE;GAAE,CAAC,GACpC,CAAC,CAACC,OAAO,EAAE;IACT;;;IAGAC,GAAG,EAAE,MAAM;GACZ,KAAKC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAG1B;;;AAGA,OAAM,UAAWJ,YAAY;EAC3B;;;EAGAK,IAAI,CAAC,EAAE,MAAM;EACb;;;EAGAC,aAAa,CAAC,EAAE,OAAO;;AAGzB;;;;;;;;;;;;;;;AAeA,qBAAaC,WAAW;EACtBL,OAAO,EAAEP,kBAAkB;cAEfO,OAAO,EAAEP,kBAAkB;EAIjCa,SAASA,CAAA,GAAAJ,OAAA;EAWTK,aAAaA,CAAA,GAAAL,OAAA;EAMnB,QAAQM,eAAe;UAOTC,SAAS;UAYTC,UAAU;UAIVC,qBAAqB;EAoB7BC,iBAAiBA,CAAA,GAAAV,OAAA;EAIjBL,KAAKA,CAACG,OAAsB,CAAd,EAAEF,YAAY,GAAGI,OAAO,CAAC,IAAI,CAAC;EAC5CL,KAAKA,CAACE,IAAI,EAAE,MAAM,EAAE,EAAEC,OAAsB,CAAd,EAAEF,YAAY,GAAGI,OAAO,CAAC,IAAI,CAAC;EA4C5DW,QAAQA,CAAA,GAAAX,OAAA;EAaRY,uBAAuBA,CAAA,GAAAZ,OAAA;EAMvBa,aAAaA,CAAA,GAAIb,OAAO,CAAC;IAC7Bc,MAAM,EAAE,MAAM;IACdC,MAAM,EAAE,MAAM;IACdC,UAAU,EAAE,MAAM;IAClBC,OAAO,CAAC,EAAE,MAAM;GACjB,CAAC;EA+BIC,IAAIA,CAAA,GAAAlB,OAAA;EAuBJmB,OAAOA,CAAA,GAAAnB,OAAA;EAuDPoB,WAAWA,CAACC,GAAiB,CAAd,EAAAC,MAAA,CAAAC,UAAc,GAAAvB,OAAA","ignoreList":[]}
|
package/ECRDeployer.d.ts
CHANGED
|
@@ -10,13 +10,40 @@ export interface ECRDeployerOptions {
|
|
|
10
10
|
* The name of the ECR repository
|
|
11
11
|
*/
|
|
12
12
|
repositoryName: string;
|
|
13
|
+
/**
|
|
14
|
+
* Options for {@link ECRDeployer#build}. If a custom function is given,
|
|
15
|
+
* it will be called instead of running `docker build`.
|
|
16
|
+
*/
|
|
17
|
+
build?: (BuildOptions & {
|
|
18
|
+
args?: string[];
|
|
19
|
+
}) | ((options: {
|
|
20
|
+
/**
|
|
21
|
+
* The tag to apply to the local docker image
|
|
22
|
+
*/
|
|
23
|
+
tag: string;
|
|
24
|
+
}) => Promise<void>);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Options for {@link ECRDeployer#build}
|
|
28
|
+
*/
|
|
29
|
+
export interface BuildOptions {
|
|
30
|
+
/**
|
|
31
|
+
* the path to build (defaults to `.`)
|
|
32
|
+
*/
|
|
33
|
+
path?: string;
|
|
34
|
+
/**
|
|
35
|
+
* If `true`, doesn't pass `--build-arg NPM_TOKEN=...`
|
|
36
|
+
*/
|
|
37
|
+
noNpmTokenArg?: boolean;
|
|
13
38
|
}
|
|
14
39
|
/**
|
|
15
40
|
* Class that implements our conventional process for deploying docker images to ECR.
|
|
16
41
|
*
|
|
17
|
-
* The CI build step should build the docker image
|
|
18
|
-
*
|
|
19
|
-
*
|
|
42
|
+
* The CI build step should build and push the docker image if necessary; you can use
|
|
43
|
+
* {@link buildAndPushIfNecessary}. If you need to customize the build you can pass
|
|
44
|
+
* options or even a custom function in {@link ECRDeployerOptions.build}, or you can
|
|
45
|
+
* even call {@link isPushed}, {@link build}, {@link push}, and {@link getNpmToken}
|
|
46
|
+
* yourself.
|
|
20
47
|
*
|
|
21
48
|
* The CI release step should call {@link release} to add tags for the git branch and
|
|
22
49
|
* the `version` in your `package.json`.
|
|
@@ -33,6 +60,11 @@ export declare class ECRDeployer {
|
|
|
33
60
|
private getRegion;
|
|
34
61
|
private getECRHost;
|
|
35
62
|
private getProjectPackageJson;
|
|
63
|
+
getLocalDockerTag(): Promise<string>;
|
|
64
|
+
build(options?: BuildOptions): Promise<void>;
|
|
65
|
+
build(args: string[], options?: BuildOptions): Promise<void>;
|
|
66
|
+
isPushed(): Promise<boolean>;
|
|
67
|
+
buildAndPushIfNecessary(): Promise<void>;
|
|
36
68
|
getDockerTags(): Promise<{
|
|
37
69
|
latest: string;
|
|
38
70
|
branch: string;
|
package/ECRDeployer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECRDeployer.d.ts","names":["ECRClientConfig","ECRDeployerOptions","awsConfig","releaseBranches","repositoryName","
|
|
1
|
+
{"version":3,"file":"ECRDeployer.d.ts","names":["ECRClientConfig","ECRDeployerOptions","awsConfig","releaseBranches","repositoryName","build","BuildOptions","args","options","tag","Promise","path","noNpmTokenArg","ECRDeployer","getBranch","getCommitHash","getAWSAccountId","getRegion","getECRHost","getProjectPackageJson","getLocalDockerTag","isPushed","buildAndPushIfNecessary","getDockerTags","latest","branch","commitHash","version","push","release","getNpmToken","env","NodeJS","ProcessEnv"],"sources":["src/ECRDeployer.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,eAAe,QAEV,qBAAqB;AAU5B,OAAM,UAAWC,kBAAkB;EACjCC,SAAS,CAAC,EAAEF,eAAe;EAC3B;;;;EAIAG,eAAe,CAAC,EAAE,MAAM,EAAE;EAC1B;;;EAGAC,cAAc,EAAE,MAAM;EACtB;;;;EAIAC,KAAK,CAAC,EACF,CAACC,YAAY,GAAG;IAAEC,IAAI,CAAC,EAAE,MAAM,EAAE;GAAE,CAAC,GACpC,CAAC,CAACC,OAAO,EAAE;IACT;;;IAGAC,GAAG,EAAE,MAAM;GACZ,KAAKC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAG1B;;;AAGA,OAAM,UAAWJ,YAAY;EAC3B;;;EAGAK,IAAI,CAAC,EAAE,MAAM;EACb;;;EAGAC,aAAa,CAAC,EAAE,OAAO;;AAGzB;;;;;;;;;;;;;;;AAeA,qBAAaC,WAAW;EACtBL,OAAO,EAAEP,kBAAkB;cAEfO,OAAO,EAAEP,kBAAkB;EAIjCa,SAASA,CAAA,GAAAJ,OAAA;EAWTK,aAAaA,CAAA,GAAAL,OAAA;EAMnB,QAAQM,eAAe;UAOTC,SAAS;UAYTC,UAAU;UAIVC,qBAAqB;EAoB7BC,iBAAiBA,CAAA,GAAAV,OAAA;EAIjBL,KAAKA,CAACG,OAAsB,CAAd,EAAEF,YAAY,GAAGI,OAAO,CAAC,IAAI,CAAC;EAC5CL,KAAKA,CAACE,IAAI,EAAE,MAAM,EAAE,EAAEC,OAAsB,CAAd,EAAEF,YAAY,GAAGI,OAAO,CAAC,IAAI,CAAC;EA4C5DW,QAAQA,CAAA,GAAAX,OAAA;EAaRY,uBAAuBA,CAAA,GAAAZ,OAAA;EAMvBa,aAAaA,CAAA,GAAIb,OAAO,CAAC;IAC7Bc,MAAM,EAAE,MAAM;IACdC,MAAM,EAAE,MAAM;IACdC,UAAU,EAAE,MAAM;IAClBC,OAAO,CAAC,EAAE,MAAM;GACjB,CAAC;EA+BIC,IAAIA,CAAA,GAAAlB,OAAA;EAuBJmB,OAAOA,CAAA,GAAAnB,OAAA;EAuDPoB,WAAWA,CAACC,GAAiB,CAAd,EAAAC,MAAA,CAAAC,UAAc,GAAAvB,OAAA","ignoreList":[]}
|
package/ECRDeployer.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.ECRDeployer = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
@@ -19,12 +20,18 @@ var _clientSts = require("@aws-sdk/client-sts");
|
|
|
19
20
|
var _once = require("./once.js");
|
|
20
21
|
var _loginToECR = _interopRequireDefault(require("./loginToECR.js"));
|
|
21
22
|
var _os = _interopRequireDefault(require("os"));
|
|
23
|
+
var _ecrImageExists = _interopRequireDefault(require("./ecrImageExists.js"));
|
|
24
|
+
/**
|
|
25
|
+
* Options for {@link ECRDeployer#build}
|
|
26
|
+
*/
|
|
22
27
|
/**
|
|
23
28
|
* Class that implements our conventional process for deploying docker images to ECR.
|
|
24
29
|
*
|
|
25
|
-
* The CI build step should build the docker image
|
|
26
|
-
*
|
|
27
|
-
*
|
|
30
|
+
* The CI build step should build and push the docker image if necessary; you can use
|
|
31
|
+
* {@link buildAndPushIfNecessary}. If you need to customize the build you can pass
|
|
32
|
+
* options or even a custom function in {@link ECRDeployerOptions.build}, or you can
|
|
33
|
+
* even call {@link isPushed}, {@link build}, {@link push}, and {@link getNpmToken}
|
|
34
|
+
* yourself.
|
|
28
35
|
*
|
|
29
36
|
* The CI release step should call {@link release} to add tags for the git branch and
|
|
30
37
|
* the `version` in your `package.json`.
|
|
@@ -263,21 +270,174 @@ var ECRDeployer = exports.ECRDeployer = /*#__PURE__*/function () {
|
|
|
263
270
|
return getProjectPackageJson;
|
|
264
271
|
}()
|
|
265
272
|
}, {
|
|
266
|
-
key: "
|
|
273
|
+
key: "getLocalDockerTag",
|
|
267
274
|
value: function () {
|
|
268
|
-
var
|
|
269
|
-
var _yield$Promise$all, _yield$Promise$all2, commitHash, branch, packageJson, base, result, _this$options$release, releaseBranches, version;
|
|
275
|
+
var _getLocalDockerTag = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
270
276
|
return _regenerator["default"].wrap(function (_context8) {
|
|
271
277
|
while (1) switch (_context8.prev = _context8.next) {
|
|
272
278
|
case 0:
|
|
273
279
|
_context8.next = 1;
|
|
280
|
+
return this.getDockerTags();
|
|
281
|
+
case 1:
|
|
282
|
+
return _context8.abrupt("return", _context8.sent.commitHash);
|
|
283
|
+
case 2:
|
|
284
|
+
case "end":
|
|
285
|
+
return _context8.stop();
|
|
286
|
+
}
|
|
287
|
+
}, _callee8, this);
|
|
288
|
+
}));
|
|
289
|
+
function getLocalDockerTag() {
|
|
290
|
+
return _getLocalDockerTag.apply(this, arguments);
|
|
291
|
+
}
|
|
292
|
+
return getLocalDockerTag;
|
|
293
|
+
}()
|
|
294
|
+
}, {
|
|
295
|
+
key: "build",
|
|
296
|
+
value: function () {
|
|
297
|
+
var _build = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(args, options) {
|
|
298
|
+
var _options$noNpmTokenAr, _options, _ref3, _options$path, _options2;
|
|
299
|
+
var buildOptions, _yield$Promise$all, _yield$Promise$all2, npmToken, tag, _t9, _t0, _t1, _t10, _t11, _t12;
|
|
300
|
+
return _regenerator["default"].wrap(function (_context9) {
|
|
301
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
302
|
+
case 0:
|
|
303
|
+
if (!Array.isArray(args)) {
|
|
304
|
+
options = args;
|
|
305
|
+
args = [];
|
|
306
|
+
}
|
|
307
|
+
buildOptions = this.options.build;
|
|
308
|
+
_context9.next = 1;
|
|
309
|
+
return Promise.all([((_options$noNpmTokenAr = (_options = options) === null || _options === void 0 ? void 0 : _options.noNpmTokenArg) !== null && _options$noNpmTokenAr !== void 0 ? _options$noNpmTokenAr : typeof buildOptions === 'function' ? undefined : buildOptions === null || buildOptions === void 0 ? void 0 : buildOptions.noNpmTokenArg) ? undefined : this.getNpmToken(), this.getLocalDockerTag()]);
|
|
310
|
+
case 1:
|
|
311
|
+
_yield$Promise$all = _context9.sent;
|
|
312
|
+
_yield$Promise$all2 = (0, _slicedToArray2["default"])(_yield$Promise$all, 2);
|
|
313
|
+
npmToken = _yield$Promise$all2[0];
|
|
314
|
+
tag = _yield$Promise$all2[1];
|
|
315
|
+
if (!(typeof buildOptions === 'function')) {
|
|
316
|
+
_context9.next = 3;
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
_context9.next = 2;
|
|
320
|
+
return buildOptions({
|
|
321
|
+
tag: tag
|
|
322
|
+
});
|
|
323
|
+
case 2:
|
|
324
|
+
return _context9.abrupt("return");
|
|
325
|
+
case 3:
|
|
326
|
+
_t9 = _promisifyChildProcess.spawn;
|
|
327
|
+
_t0 = ['build', (_ref3 = (_options$path = (_options2 = options) === null || _options2 === void 0 ? void 0 : _options2.path) !== null && _options$path !== void 0 ? _options$path : buildOptions === null || buildOptions === void 0 ? void 0 : buildOptions.path) !== null && _ref3 !== void 0 ? _ref3 : '.'];
|
|
328
|
+
_t1 = _toConsumableArray2["default"];
|
|
329
|
+
if (!npmToken) {
|
|
330
|
+
_context9.next = 5;
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
_t11 = "NPM_TOKEN=";
|
|
334
|
+
_context9.next = 4;
|
|
335
|
+
return this.getNpmToken();
|
|
336
|
+
case 4:
|
|
337
|
+
_t12 = _t11.concat.call(_t11, _context9.sent);
|
|
338
|
+
_t10 = ['--build-arg', _t12];
|
|
339
|
+
_context9.next = 6;
|
|
340
|
+
break;
|
|
341
|
+
case 5:
|
|
342
|
+
_t10 = [];
|
|
343
|
+
case 6:
|
|
344
|
+
_context9.next = 7;
|
|
345
|
+
return _t9('docker', _t0.concat.call(_t0, _t1(_t10), ['--tag', tag], (0, _toConsumableArray2["default"])((buildOptions === null || buildOptions === void 0 ? void 0 : buildOptions.args) || []), (0, _toConsumableArray2["default"])(args)), {
|
|
346
|
+
stdio: 'inherit'
|
|
347
|
+
});
|
|
348
|
+
case 7:
|
|
349
|
+
case "end":
|
|
350
|
+
return _context9.stop();
|
|
351
|
+
}
|
|
352
|
+
}, _callee9, this);
|
|
353
|
+
}));
|
|
354
|
+
function build(_x2, _x3) {
|
|
355
|
+
return _build.apply(this, arguments);
|
|
356
|
+
}
|
|
357
|
+
return build;
|
|
358
|
+
}()
|
|
359
|
+
}, {
|
|
360
|
+
key: "isPushed",
|
|
361
|
+
value: function () {
|
|
362
|
+
var _isPushed = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() {
|
|
363
|
+
var _yield$Promise$all3, _yield$Promise$all4, ecrHost, tags, awsConfig;
|
|
364
|
+
return _regenerator["default"].wrap(function (_context0) {
|
|
365
|
+
while (1) switch (_context0.prev = _context0.next) {
|
|
366
|
+
case 0:
|
|
367
|
+
_context0.next = 1;
|
|
368
|
+
return Promise.all([this.getECRHost(), this.getDockerTags()]);
|
|
369
|
+
case 1:
|
|
370
|
+
_yield$Promise$all3 = _context0.sent;
|
|
371
|
+
_yield$Promise$all4 = (0, _slicedToArray2["default"])(_yield$Promise$all3, 2);
|
|
372
|
+
ecrHost = _yield$Promise$all4[0];
|
|
373
|
+
tags = _yield$Promise$all4[1];
|
|
374
|
+
awsConfig = this.options.awsConfig;
|
|
375
|
+
_context0.next = 2;
|
|
376
|
+
return (0, _ecrImageExists["default"])({
|
|
377
|
+
awsConfig: awsConfig,
|
|
378
|
+
imageUri: "".concat(ecrHost, "/").concat(tags.commitHash)
|
|
379
|
+
});
|
|
380
|
+
case 2:
|
|
381
|
+
return _context0.abrupt("return", _context0.sent);
|
|
382
|
+
case 3:
|
|
383
|
+
case "end":
|
|
384
|
+
return _context0.stop();
|
|
385
|
+
}
|
|
386
|
+
}, _callee0, this);
|
|
387
|
+
}));
|
|
388
|
+
function isPushed() {
|
|
389
|
+
return _isPushed.apply(this, arguments);
|
|
390
|
+
}
|
|
391
|
+
return isPushed;
|
|
392
|
+
}()
|
|
393
|
+
}, {
|
|
394
|
+
key: "buildAndPushIfNecessary",
|
|
395
|
+
value: function () {
|
|
396
|
+
var _buildAndPushIfNecessary = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() {
|
|
397
|
+
return _regenerator["default"].wrap(function (_context1) {
|
|
398
|
+
while (1) switch (_context1.prev = _context1.next) {
|
|
399
|
+
case 0:
|
|
400
|
+
_context1.next = 1;
|
|
401
|
+
return this.isPushed();
|
|
402
|
+
case 1:
|
|
403
|
+
if (!_context1.sent) {
|
|
404
|
+
_context1.next = 2;
|
|
405
|
+
break;
|
|
406
|
+
}
|
|
407
|
+
return _context1.abrupt("return");
|
|
408
|
+
case 2:
|
|
409
|
+
_context1.next = 3;
|
|
410
|
+
return this.build();
|
|
411
|
+
case 3:
|
|
412
|
+
_context1.next = 4;
|
|
413
|
+
return this.push();
|
|
414
|
+
case 4:
|
|
415
|
+
case "end":
|
|
416
|
+
return _context1.stop();
|
|
417
|
+
}
|
|
418
|
+
}, _callee1, this);
|
|
419
|
+
}));
|
|
420
|
+
function buildAndPushIfNecessary() {
|
|
421
|
+
return _buildAndPushIfNecessary.apply(this, arguments);
|
|
422
|
+
}
|
|
423
|
+
return buildAndPushIfNecessary;
|
|
424
|
+
}()
|
|
425
|
+
}, {
|
|
426
|
+
key: "getDockerTags",
|
|
427
|
+
value: function () {
|
|
428
|
+
var _getDockerTags = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
429
|
+
var _yield$Promise$all5, _yield$Promise$all6, commitHash, branch, packageJson, base, result, _this$options$release, releaseBranches, version;
|
|
430
|
+
return _regenerator["default"].wrap(function (_context10) {
|
|
431
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
432
|
+
case 0:
|
|
433
|
+
_context10.next = 1;
|
|
274
434
|
return Promise.all([this.getCommitHash(), this.getBranch(), this.getProjectPackageJson()]);
|
|
275
435
|
case 1:
|
|
276
|
-
_yield$Promise$
|
|
277
|
-
_yield$Promise$
|
|
278
|
-
commitHash = _yield$Promise$
|
|
279
|
-
branch = _yield$Promise$
|
|
280
|
-
packageJson = _yield$Promise$
|
|
436
|
+
_yield$Promise$all5 = _context10.sent;
|
|
437
|
+
_yield$Promise$all6 = (0, _slicedToArray2["default"])(_yield$Promise$all5, 3);
|
|
438
|
+
commitHash = _yield$Promise$all6[0];
|
|
439
|
+
branch = _yield$Promise$all6[1];
|
|
440
|
+
packageJson = _yield$Promise$all6[2];
|
|
281
441
|
base = this.options.repositoryName;
|
|
282
442
|
result = {
|
|
283
443
|
latest: base,
|
|
@@ -286,24 +446,24 @@ var ECRDeployer = exports.ECRDeployer = /*#__PURE__*/function () {
|
|
|
286
446
|
};
|
|
287
447
|
_this$options$release = this.options.releaseBranches, releaseBranches = _this$options$release === void 0 ? ['master', 'main', 'release'] : _this$options$release;
|
|
288
448
|
if (!releaseBranches.includes(branch)) {
|
|
289
|
-
|
|
449
|
+
_context10.next = 3;
|
|
290
450
|
break;
|
|
291
451
|
}
|
|
292
452
|
version = process.env.OVERRIDE_ECR_VERSION_TAG || packageJson.contents.version;
|
|
293
453
|
if (!(typeof version !== 'string')) {
|
|
294
|
-
|
|
454
|
+
_context10.next = 2;
|
|
295
455
|
break;
|
|
296
456
|
}
|
|
297
457
|
throw new Error("failed to get version from ".concat(_path["default"].relative(process.cwd(), packageJson.file)));
|
|
298
458
|
case 2:
|
|
299
459
|
result.version = "".concat(base, ":").concat(version);
|
|
300
460
|
case 3:
|
|
301
|
-
return
|
|
461
|
+
return _context10.abrupt("return", result);
|
|
302
462
|
case 4:
|
|
303
463
|
case "end":
|
|
304
|
-
return
|
|
464
|
+
return _context10.stop();
|
|
305
465
|
}
|
|
306
|
-
},
|
|
466
|
+
}, _callee10, this);
|
|
307
467
|
}));
|
|
308
468
|
function getDockerTags() {
|
|
309
469
|
return _getDockerTags.apply(this, arguments);
|
|
@@ -313,46 +473,46 @@ var ECRDeployer = exports.ECRDeployer = /*#__PURE__*/function () {
|
|
|
313
473
|
}, {
|
|
314
474
|
key: "push",
|
|
315
475
|
value: function () {
|
|
316
|
-
var _push = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
317
|
-
var awsConfig, _yield$Promise$
|
|
318
|
-
return _regenerator["default"].wrap(function (
|
|
319
|
-
while (1) switch (
|
|
476
|
+
var _push = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
477
|
+
var awsConfig, _yield$Promise$all7, _yield$Promise$all8, ecrHost, commitHash, _t13;
|
|
478
|
+
return _regenerator["default"].wrap(function (_context11) {
|
|
479
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
320
480
|
case 0:
|
|
321
481
|
awsConfig = this.options.awsConfig;
|
|
322
|
-
|
|
482
|
+
_context11.next = 1;
|
|
323
483
|
return Promise.all([this.getECRHost(), this.getDockerTags(), (0, _loginToECR["default"])({
|
|
324
484
|
awsConfig: awsConfig
|
|
325
485
|
})]);
|
|
326
486
|
case 1:
|
|
327
|
-
_yield$Promise$
|
|
328
|
-
_yield$Promise$
|
|
329
|
-
ecrHost = _yield$Promise$
|
|
330
|
-
commitHash = _yield$Promise$
|
|
331
|
-
|
|
332
|
-
|
|
487
|
+
_yield$Promise$all7 = _context11.sent;
|
|
488
|
+
_yield$Promise$all8 = (0, _slicedToArray2["default"])(_yield$Promise$all7, 2);
|
|
489
|
+
ecrHost = _yield$Promise$all8[0];
|
|
490
|
+
commitHash = _yield$Promise$all8[1].commitHash;
|
|
491
|
+
_context11.prev = 2;
|
|
492
|
+
_context11.next = 3;
|
|
333
493
|
return (0, _promisifyChildProcess.spawn)('docker', ['tag', commitHash, "".concat(ecrHost, "/").concat(commitHash)], {
|
|
334
494
|
stdio: 'inherit'
|
|
335
495
|
});
|
|
336
496
|
case 3:
|
|
337
|
-
|
|
497
|
+
_context11.next = 5;
|
|
338
498
|
break;
|
|
339
499
|
case 4:
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
500
|
+
_context11.prev = 4;
|
|
501
|
+
_t13 = _context11["catch"](2);
|
|
502
|
+
_context11.next = 5;
|
|
343
503
|
return (0, _promisifyChildProcess.spawn)('docker', ['tag', '-f', commitHash, "".concat(ecrHost, "/").concat(commitHash)], {
|
|
344
504
|
stdio: 'inherit'
|
|
345
505
|
});
|
|
346
506
|
case 5:
|
|
347
|
-
|
|
507
|
+
_context11.next = 6;
|
|
348
508
|
return (0, _promisifyChildProcess.spawn)('docker', ['push', "".concat(ecrHost, "/").concat(commitHash)], {
|
|
349
509
|
stdio: 'inherit'
|
|
350
510
|
});
|
|
351
511
|
case 6:
|
|
352
512
|
case "end":
|
|
353
|
-
return
|
|
513
|
+
return _context11.stop();
|
|
354
514
|
}
|
|
355
|
-
},
|
|
515
|
+
}, _callee11, this, [[2, 4]]);
|
|
356
516
|
}));
|
|
357
517
|
function push() {
|
|
358
518
|
return _push.apply(this, arguments);
|
|
@@ -362,22 +522,22 @@ var ECRDeployer = exports.ECRDeployer = /*#__PURE__*/function () {
|
|
|
362
522
|
}, {
|
|
363
523
|
key: "release",
|
|
364
524
|
value: function () {
|
|
365
|
-
var _release = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
366
|
-
var _yield$Promise$
|
|
367
|
-
return _regenerator["default"].wrap(function (
|
|
368
|
-
while (1) switch (
|
|
525
|
+
var _release = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
526
|
+
var _yield$Promise$all9, _yield$Promise$all0, commitHash, ecrHost, tags, ecr, repositoryName, _yield$ecr$send, _yield$ecr$send$image, _yield$ecr$send$image2, _yield$ecr$send$image3, image, imageManifest, _i, _arr, _tags$key, key, tag, _t14;
|
|
527
|
+
return _regenerator["default"].wrap(function (_context12) {
|
|
528
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
369
529
|
case 0:
|
|
370
|
-
|
|
530
|
+
_context12.next = 1;
|
|
371
531
|
return Promise.all([this.getCommitHash(), this.getECRHost(), this.getDockerTags()]);
|
|
372
532
|
case 1:
|
|
373
|
-
_yield$Promise$
|
|
374
|
-
_yield$Promise$
|
|
375
|
-
commitHash = _yield$Promise$
|
|
376
|
-
ecrHost = _yield$Promise$
|
|
377
|
-
tags = _yield$Promise$
|
|
533
|
+
_yield$Promise$all9 = _context12.sent;
|
|
534
|
+
_yield$Promise$all0 = (0, _slicedToArray2["default"])(_yield$Promise$all9, 3);
|
|
535
|
+
commitHash = _yield$Promise$all0[0];
|
|
536
|
+
ecrHost = _yield$Promise$all0[1];
|
|
537
|
+
tags = _yield$Promise$all0[2];
|
|
378
538
|
ecr = new _clientEcr.ECRClient();
|
|
379
539
|
repositoryName = this.options.repositoryName;
|
|
380
|
-
|
|
540
|
+
_context12.next = 2;
|
|
381
541
|
return ecr.send(new _clientEcr.BatchGetImageCommand({
|
|
382
542
|
repositoryName: repositoryName,
|
|
383
543
|
imageIds: [{
|
|
@@ -385,7 +545,7 @@ var ECRDeployer = exports.ECRDeployer = /*#__PURE__*/function () {
|
|
|
385
545
|
}]
|
|
386
546
|
}));
|
|
387
547
|
case 2:
|
|
388
|
-
_yield$ecr$send =
|
|
548
|
+
_yield$ecr$send = _context12.sent;
|
|
389
549
|
_yield$ecr$send$image = _yield$ecr$send.images;
|
|
390
550
|
_yield$ecr$send$image2 = _yield$ecr$send$image === void 0 ? [] : _yield$ecr$send$image;
|
|
391
551
|
_yield$ecr$send$image3 = (0, _slicedToArray2["default"])(_yield$ecr$send$image2, 1);
|
|
@@ -393,64 +553,64 @@ var ECRDeployer = exports.ECRDeployer = /*#__PURE__*/function () {
|
|
|
393
553
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
394
554
|
imageManifest = image === null || image === void 0 ? void 0 : image.imageManifest;
|
|
395
555
|
if (imageManifest) {
|
|
396
|
-
|
|
556
|
+
_context12.next = 3;
|
|
397
557
|
break;
|
|
398
558
|
}
|
|
399
559
|
throw new Error("failed to get image manifest for ".concat(repositoryName, ":").concat(commitHash));
|
|
400
560
|
case 3:
|
|
401
561
|
if (!imageManifest) {
|
|
402
|
-
|
|
562
|
+
_context12.next = 11;
|
|
403
563
|
break;
|
|
404
564
|
}
|
|
405
565
|
_i = 0, _arr = Object.keys(tags);
|
|
406
566
|
case 4:
|
|
407
567
|
if (!(_i < _arr.length)) {
|
|
408
|
-
|
|
568
|
+
_context12.next = 11;
|
|
409
569
|
break;
|
|
410
570
|
}
|
|
411
571
|
key = _arr[_i];
|
|
412
572
|
if (!(key === 'latest' || key === 'commitHash')) {
|
|
413
|
-
|
|
573
|
+
_context12.next = 5;
|
|
414
574
|
break;
|
|
415
575
|
}
|
|
416
|
-
return
|
|
576
|
+
return _context12.abrupt("continue", 10);
|
|
417
577
|
case 5:
|
|
418
578
|
tag = (_tags$key = tags[key]) === null || _tags$key === void 0 ? void 0 : _tags$key.replace(/^[^:]+:?/, '');
|
|
419
579
|
if (tag) {
|
|
420
|
-
|
|
580
|
+
_context12.next = 6;
|
|
421
581
|
break;
|
|
422
582
|
}
|
|
423
|
-
return
|
|
583
|
+
return _context12.abrupt("continue", 10);
|
|
424
584
|
case 6:
|
|
425
585
|
// eslint-disable-next-line no-console
|
|
426
586
|
console.error("Adding tag ".concat(ecrHost, "/").concat(tags[key]));
|
|
427
|
-
|
|
428
|
-
|
|
587
|
+
_context12.prev = 7;
|
|
588
|
+
_context12.next = 8;
|
|
429
589
|
return ecr.send(new _clientEcr.PutImageCommand({
|
|
430
590
|
repositoryName: repositoryName,
|
|
431
591
|
imageManifest: imageManifest,
|
|
432
592
|
imageTag: tag.substring(tag.indexOf(':') + 1)
|
|
433
593
|
}));
|
|
434
594
|
case 8:
|
|
435
|
-
|
|
595
|
+
_context12.next = 10;
|
|
436
596
|
break;
|
|
437
597
|
case 9:
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
if (!(
|
|
441
|
-
|
|
598
|
+
_context12.prev = 9;
|
|
599
|
+
_t14 = _context12["catch"](7);
|
|
600
|
+
if (!(_t14 instanceof Object && 'code' in _t14 && _t14.code !== 'ImageAlreadyExistsException')) {
|
|
601
|
+
_context12.next = 10;
|
|
442
602
|
break;
|
|
443
603
|
}
|
|
444
|
-
throw
|
|
604
|
+
throw _t14;
|
|
445
605
|
case 10:
|
|
446
606
|
_i++;
|
|
447
|
-
|
|
607
|
+
_context12.next = 4;
|
|
448
608
|
break;
|
|
449
609
|
case 11:
|
|
450
610
|
case "end":
|
|
451
|
-
return
|
|
611
|
+
return _context12.stop();
|
|
452
612
|
}
|
|
453
|
-
},
|
|
613
|
+
}, _callee12, this, [[7, 9]]);
|
|
454
614
|
}));
|
|
455
615
|
function release() {
|
|
456
616
|
return _release.apply(this, arguments);
|
|
@@ -460,50 +620,50 @@ var ECRDeployer = exports.ECRDeployer = /*#__PURE__*/function () {
|
|
|
460
620
|
}, {
|
|
461
621
|
key: "getNpmToken",
|
|
462
622
|
value: function () {
|
|
463
|
-
var _getNpmToken = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
623
|
+
var _getNpmToken = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13() {
|
|
464
624
|
var env,
|
|
465
625
|
NPM_TOKEN,
|
|
466
626
|
homedir,
|
|
467
627
|
npmrc,
|
|
468
628
|
match,
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
return _regenerator["default"].wrap(function (
|
|
472
|
-
while (1) switch (
|
|
629
|
+
_args13 = arguments,
|
|
630
|
+
_t15;
|
|
631
|
+
return _regenerator["default"].wrap(function (_context13) {
|
|
632
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
473
633
|
case 0:
|
|
474
|
-
env =
|
|
634
|
+
env = _args13.length > 0 && _args13[0] !== undefined ? _args13[0] : process.env;
|
|
475
635
|
NPM_TOKEN = env.NPM_TOKEN;
|
|
476
636
|
if (!NPM_TOKEN) {
|
|
477
|
-
|
|
637
|
+
_context13.next = 1;
|
|
478
638
|
break;
|
|
479
639
|
}
|
|
480
|
-
return
|
|
640
|
+
return _context13.abrupt("return", NPM_TOKEN);
|
|
481
641
|
case 1:
|
|
482
|
-
|
|
642
|
+
_context13.prev = 1;
|
|
483
643
|
homedir = _os["default"].homedir();
|
|
484
|
-
|
|
644
|
+
_context13.next = 2;
|
|
485
645
|
return _promises["default"].readFile("".concat(homedir, "/.npmrc"), 'utf8');
|
|
486
646
|
case 2:
|
|
487
|
-
npmrc =
|
|
647
|
+
npmrc = _context13.sent;
|
|
488
648
|
match = /registry\.npmjs\.org\/:_authToken=(.+)/.exec(npmrc);
|
|
489
649
|
if (!match) {
|
|
490
|
-
|
|
650
|
+
_context13.next = 3;
|
|
491
651
|
break;
|
|
492
652
|
}
|
|
493
|
-
return
|
|
653
|
+
return _context13.abrupt("return", match[1]);
|
|
494
654
|
case 3:
|
|
495
|
-
|
|
655
|
+
_context13.next = 5;
|
|
496
656
|
break;
|
|
497
657
|
case 4:
|
|
498
|
-
|
|
499
|
-
|
|
658
|
+
_context13.prev = 4;
|
|
659
|
+
_t15 = _context13["catch"](1);
|
|
500
660
|
case 5:
|
|
501
661
|
throw new Error('Missing process.env.NPM_TOKEN or entry in ~/.npmrc');
|
|
502
662
|
case 6:
|
|
503
663
|
case "end":
|
|
504
|
-
return
|
|
664
|
+
return _context13.stop();
|
|
505
665
|
}
|
|
506
|
-
},
|
|
666
|
+
}, _callee13, null, [[1, 4]]);
|
|
507
667
|
}));
|
|
508
668
|
function getNpmToken() {
|
|
509
669
|
return _getNpmToken.apply(this, arguments);
|
package/ECRDeployer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECRDeployer.js","names":["_clientEcr","require","_promisifyChildProcess","_promises","_interopRequireDefault","_path","_clientSts","_once","_loginToECR","_os","ECRDeployer","exports","options","_this","_classCallCheck2","_defineProperty2","once","_asyncToGenerator2","_regenerator","mark","_callee","sts","_yield$sts$send","Account","wrap","_context","prev","next","STSClient","awsConfig","send","GetCallerIdentityCommand","sent","Error","abrupt","stop","_createClass2","key","value","_getBranch","_callee2","_t","_context2","process","env","OVERRIDE_ECR_BRANCH_TAG","spawn","encoding","stdout","trim","getBranch","apply","arguments","_getCommitHash","_callee3","_context3","getCommitHash","_getRegion","_callee4","ecr","region","_context4","ECRClient","config","getRegion","_getECRHost","_callee5","_t2","_t3","_context5","getAWSAccountId","concat","call","getECRHost","_getProjectPackageJson","_callee7","_yield$import","findUp","file","_t6","_t7","_t8","_context7","_ref2","_callee6","dir","_t4","_t5","_context6","test","path","posix","normalize","fs","stat","join","then","s","isFile","undefined","_x","JSON","readFile","parse","contents","getProjectPackageJson","_getDockerTags","_callee8","_yield$Promise$all","_yield$Promise$all2","commitHash","branch","packageJson","base","result","_this$options$release","releaseBranches","version","_context8","Promise","all","_slicedToArray2","repositoryName","latest","includes","OVERRIDE_ECR_VERSION_TAG","relative","cwd","getDockerTags","_push","_callee9","_yield$Promise$all3","_yield$Promise$all4","ecrHost","_t9","_context9","loginToECR","stdio","push","_release","_callee0","_yield$Promise$all5","_yield$Promise$all6","tags","_yield$ecr$send","_yield$ecr$send$image","_yield$ecr$send$image2","_yield$ecr$send$image3","image","imageManifest","_i","_arr","_tags$key","tag","_t0","_context0","BatchGetImageCommand","imageIds","imageTag","images","Object","keys","length","replace","console","error","PutImageCommand","substring","indexOf","code","release","_getNpmToken","_callee1","NPM_TOKEN","homedir","npmrc","match","_args1","_t1","_context1","os","exec","getNpmToken"],"sources":["src/ECRDeployer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ECRDeployer.js","names":["_clientEcr","require","_promisifyChildProcess","_promises","_interopRequireDefault","_path","_clientSts","_once","_loginToECR","_os","_ecrImageExists","ECRDeployer","exports","options","_this","_classCallCheck2","_defineProperty2","once","_asyncToGenerator2","_regenerator","mark","_callee","sts","_yield$sts$send","Account","wrap","_context","prev","next","STSClient","awsConfig","send","GetCallerIdentityCommand","sent","Error","abrupt","stop","_createClass2","key","value","_getBranch","_callee2","_t","_context2","process","env","OVERRIDE_ECR_BRANCH_TAG","spawn","encoding","stdout","trim","getBranch","apply","arguments","_getCommitHash","_callee3","_context3","getCommitHash","_getRegion","_callee4","ecr","region","_context4","ECRClient","config","getRegion","_getECRHost","_callee5","_t2","_t3","_context5","getAWSAccountId","concat","call","getECRHost","_getProjectPackageJson","_callee7","_yield$import","findUp","file","_t6","_t7","_t8","_context7","_ref2","_callee6","dir","_t4","_t5","_context6","test","path","posix","normalize","fs","stat","join","then","s","isFile","undefined","_x","JSON","readFile","parse","contents","getProjectPackageJson","_getLocalDockerTag","_callee8","_context8","getDockerTags","commitHash","getLocalDockerTag","_build","_callee9","args","_options$noNpmTokenAr","_options","_ref3","_options$path","_options2","buildOptions","_yield$Promise$all","_yield$Promise$all2","npmToken","tag","_t9","_t0","_t1","_t10","_t11","_t12","_context9","Array","isArray","build","Promise","all","noNpmTokenArg","getNpmToken","_slicedToArray2","_toConsumableArray2","stdio","_x2","_x3","_isPushed","_callee0","_yield$Promise$all3","_yield$Promise$all4","ecrHost","tags","_context0","ecrImageExists","imageUri","isPushed","_buildAndPushIfNecessary","_callee1","_context1","push","buildAndPushIfNecessary","_getDockerTags","_callee10","_yield$Promise$all5","_yield$Promise$all6","branch","packageJson","base","result","_this$options$release","releaseBranches","version","_context10","repositoryName","latest","includes","OVERRIDE_ECR_VERSION_TAG","relative","cwd","_push","_callee11","_yield$Promise$all7","_yield$Promise$all8","_t13","_context11","loginToECR","_release","_callee12","_yield$Promise$all9","_yield$Promise$all0","_yield$ecr$send","_yield$ecr$send$image","_yield$ecr$send$image2","_yield$ecr$send$image3","image","imageManifest","_i","_arr","_tags$key","_t14","_context12","BatchGetImageCommand","imageIds","imageTag","images","Object","keys","length","replace","console","error","PutImageCommand","substring","indexOf","code","release","_getNpmToken","_callee13","NPM_TOKEN","homedir","npmrc","match","_args13","_t15","_context13","os","exec"],"sources":["src/ECRDeployer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/ECRDeployer.mjs
CHANGED
|
@@ -6,12 +6,20 @@ import { GetCallerIdentityCommand, STSClient } from '@aws-sdk/client-sts';
|
|
|
6
6
|
import { once } from "./once.mjs";
|
|
7
7
|
import loginToECR from "./loginToECR.mjs";
|
|
8
8
|
import os from 'os';
|
|
9
|
+
import ecrImageExists from "./ecrImageExists.mjs";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Options for {@link ECRDeployer#build}
|
|
13
|
+
*/
|
|
14
|
+
|
|
9
15
|
/**
|
|
10
16
|
* Class that implements our conventional process for deploying docker images to ECR.
|
|
11
17
|
*
|
|
12
|
-
* The CI build step should build the docker image
|
|
13
|
-
*
|
|
14
|
-
*
|
|
18
|
+
* The CI build step should build and push the docker image if necessary; you can use
|
|
19
|
+
* {@link buildAndPushIfNecessary}. If you need to customize the build you can pass
|
|
20
|
+
* options or even a custom function in {@link ECRDeployerOptions.build}, or you can
|
|
21
|
+
* even call {@link isPushed}, {@link build}, {@link push}, and {@link getNpmToken}
|
|
22
|
+
* yourself.
|
|
15
23
|
*
|
|
16
24
|
* The CI release step should call {@link release} to add tags for the git branch and
|
|
17
25
|
* the `version` in your `package.json`.
|
|
@@ -69,6 +77,42 @@ export class ECRDeployer {
|
|
|
69
77
|
contents: JSON.parse(await fs.readFile(file, 'utf8'))
|
|
70
78
|
};
|
|
71
79
|
}
|
|
80
|
+
async getLocalDockerTag() {
|
|
81
|
+
return (await this.getDockerTags()).commitHash;
|
|
82
|
+
}
|
|
83
|
+
async build(args, options) {
|
|
84
|
+
var _options, _options2;
|
|
85
|
+
if (!Array.isArray(args)) {
|
|
86
|
+
options = args;
|
|
87
|
+
args = [];
|
|
88
|
+
}
|
|
89
|
+
const buildOptions = this.options.build;
|
|
90
|
+
const [npmToken, tag] = await Promise.all([((_options = options) === null || _options === void 0 ? void 0 : _options.noNpmTokenArg) ?? (typeof buildOptions === 'function' ? undefined : buildOptions === null || buildOptions === void 0 ? void 0 : buildOptions.noNpmTokenArg) ? undefined : this.getNpmToken(), this.getLocalDockerTag()]);
|
|
91
|
+
if (typeof buildOptions === 'function') {
|
|
92
|
+
await buildOptions({
|
|
93
|
+
tag
|
|
94
|
+
});
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
await spawn('docker', ['build', ((_options2 = options) === null || _options2 === void 0 ? void 0 : _options2.path) ?? (buildOptions === null || buildOptions === void 0 ? void 0 : buildOptions.path) ?? '.', ...(npmToken ? ['--build-arg', `NPM_TOKEN=${await this.getNpmToken()}`] : []), '--tag', tag, ...((buildOptions === null || buildOptions === void 0 ? void 0 : buildOptions.args) || []), ...args], {
|
|
98
|
+
stdio: 'inherit'
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async isPushed() {
|
|
102
|
+
const [ecrHost, tags] = await Promise.all([this.getECRHost(), this.getDockerTags()]);
|
|
103
|
+
const {
|
|
104
|
+
awsConfig
|
|
105
|
+
} = this.options;
|
|
106
|
+
return await ecrImageExists({
|
|
107
|
+
awsConfig,
|
|
108
|
+
imageUri: `${ecrHost}/${tags.commitHash}`
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
async buildAndPushIfNecessary() {
|
|
112
|
+
if (await this.isPushed()) return;
|
|
113
|
+
await this.build();
|
|
114
|
+
await this.push();
|
|
115
|
+
}
|
|
72
116
|
async getDockerTags() {
|
|
73
117
|
const [commitHash, branch, packageJson] = await Promise.all([this.getCommitHash(), this.getBranch(), this.getProjectPackageJson()]);
|
|
74
118
|
const base = this.options.repositoryName;
|
package/ECRDeployer.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECRDeployer.mjs","names":["BatchGetImageCommand","ECRClient","PutImageCommand","spawn","fs","path","GetCallerIdentityCommand","STSClient","once","loginToECR","os","ECRDeployer","options","constructor","getBranch","process","env","OVERRIDE_ECR_BRANCH_TAG","encoding","stdout","trim","getCommitHash","getAWSAccountId","sts","awsConfig","Account","send","Error","getRegion","ecr","region","config","getECRHost","getProjectPackageJson","findUp","file","dir","test","posix","normalize","stat","join","then","s","isFile","undefined","contents","JSON","parse","readFile","getDockerTags","commitHash","
|
|
1
|
+
{"version":3,"file":"ECRDeployer.mjs","names":["BatchGetImageCommand","ECRClient","PutImageCommand","spawn","fs","path","GetCallerIdentityCommand","STSClient","once","loginToECR","os","ecrImageExists","ECRDeployer","options","constructor","getBranch","process","env","OVERRIDE_ECR_BRANCH_TAG","encoding","stdout","trim","getCommitHash","getAWSAccountId","sts","awsConfig","Account","send","Error","getRegion","ecr","region","config","getECRHost","getProjectPackageJson","findUp","file","dir","test","posix","normalize","stat","join","then","s","isFile","undefined","contents","JSON","parse","readFile","getLocalDockerTag","getDockerTags","commitHash","build","args","_options","_options2","Array","isArray","buildOptions","npmToken","tag","Promise","all","noNpmTokenArg","getNpmToken","stdio","isPushed","ecrHost","tags","imageUri","buildAndPushIfNecessary","push","branch","packageJson","base","repositoryName","result","latest","releaseBranches","includes","version","OVERRIDE_ECR_VERSION_TAG","relative","cwd","release","images","image","imageIds","imageTag","imageManifest","key","Object","keys","_tags$key","replace","console","error","substring","indexOf","code","NPM_TOKEN","homedir","npmrc","match","exec"],"sources":["src/ECRDeployer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/ECRDeployer.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { GetCallerIdentityCommand, STSClient } from '@aws-sdk/client-sts'
|
|
|
11
11
|
import { once } from './once.ts'
|
|
12
12
|
import loginToECR from './loginToECR.ts'
|
|
13
13
|
import os from 'os'
|
|
14
|
+
import ecrImageExists from './ecrImageExists.ts'
|
|
14
15
|
|
|
15
16
|
export interface ECRDeployerOptions {
|
|
16
17
|
awsConfig?: ECRClientConfig
|
|
@@ -23,14 +24,42 @@ export interface ECRDeployerOptions {
|
|
|
23
24
|
* The name of the ECR repository
|
|
24
25
|
*/
|
|
25
26
|
repositoryName: string
|
|
27
|
+
/**
|
|
28
|
+
* Options for {@link ECRDeployer#build}. If a custom function is given,
|
|
29
|
+
* it will be called instead of running `docker build`.
|
|
30
|
+
*/
|
|
31
|
+
build?:
|
|
32
|
+
| (BuildOptions & { args?: string[] })
|
|
33
|
+
| ((options: {
|
|
34
|
+
/**
|
|
35
|
+
* The tag to apply to the local docker image
|
|
36
|
+
*/
|
|
37
|
+
tag: string
|
|
38
|
+
}) => Promise<void>)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Options for {@link ECRDeployer#build}
|
|
43
|
+
*/
|
|
44
|
+
export interface BuildOptions {
|
|
45
|
+
/**
|
|
46
|
+
* the path to build (defaults to `.`)
|
|
47
|
+
*/
|
|
48
|
+
path?: string
|
|
49
|
+
/**
|
|
50
|
+
* If `true`, doesn't pass `--build-arg NPM_TOKEN=...`
|
|
51
|
+
*/
|
|
52
|
+
noNpmTokenArg?: boolean
|
|
26
53
|
}
|
|
27
54
|
|
|
28
55
|
/**
|
|
29
56
|
* Class that implements our conventional process for deploying docker images to ECR.
|
|
30
57
|
*
|
|
31
|
-
* The CI build step should build the docker image
|
|
32
|
-
*
|
|
33
|
-
*
|
|
58
|
+
* The CI build step should build and push the docker image if necessary; you can use
|
|
59
|
+
* {@link buildAndPushIfNecessary}. If you need to customize the build you can pass
|
|
60
|
+
* options or even a custom function in {@link ECRDeployerOptions.build}, or you can
|
|
61
|
+
* even call {@link isPushed}, {@link build}, {@link push}, and {@link getNpmToken}
|
|
62
|
+
* yourself.
|
|
34
63
|
*
|
|
35
64
|
* The CI release step should call {@link release} to add tags for the git branch and
|
|
36
65
|
* the `version` in your `package.json`.
|
|
@@ -105,6 +134,74 @@ export class ECRDeployer {
|
|
|
105
134
|
return { file, contents: JSON.parse(await fs.readFile(file, 'utf8')) }
|
|
106
135
|
}
|
|
107
136
|
|
|
137
|
+
async getLocalDockerTag() {
|
|
138
|
+
return (await this.getDockerTags()).commitHash
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
async build(options?: BuildOptions): Promise<void>
|
|
142
|
+
async build(args: string[], options?: BuildOptions): Promise<void>
|
|
143
|
+
async build(
|
|
144
|
+
args?: string[] | BuildOptions,
|
|
145
|
+
options?: BuildOptions
|
|
146
|
+
): Promise<void> {
|
|
147
|
+
if (!Array.isArray(args)) {
|
|
148
|
+
options = args
|
|
149
|
+
args = []
|
|
150
|
+
}
|
|
151
|
+
const buildOptions = this.options.build
|
|
152
|
+
|
|
153
|
+
const [npmToken, tag] = await Promise.all([
|
|
154
|
+
(
|
|
155
|
+
(options?.noNpmTokenArg ??
|
|
156
|
+
(typeof buildOptions === 'function' ? undefined : (
|
|
157
|
+
buildOptions?.noNpmTokenArg
|
|
158
|
+
)))
|
|
159
|
+
) ?
|
|
160
|
+
undefined
|
|
161
|
+
: this.getNpmToken(),
|
|
162
|
+
this.getLocalDockerTag(),
|
|
163
|
+
])
|
|
164
|
+
if (typeof buildOptions === 'function') {
|
|
165
|
+
await buildOptions({ tag })
|
|
166
|
+
return
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
await spawn(
|
|
170
|
+
'docker',
|
|
171
|
+
[
|
|
172
|
+
'build',
|
|
173
|
+
options?.path ?? buildOptions?.path ?? '.',
|
|
174
|
+
...(npmToken ?
|
|
175
|
+
['--build-arg', `NPM_TOKEN=${await this.getNpmToken()}`]
|
|
176
|
+
: []),
|
|
177
|
+
'--tag',
|
|
178
|
+
tag,
|
|
179
|
+
...(buildOptions?.args || []),
|
|
180
|
+
...args,
|
|
181
|
+
],
|
|
182
|
+
{ stdio: 'inherit' }
|
|
183
|
+
)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
async isPushed() {
|
|
187
|
+
const [ecrHost, tags] = await Promise.all([
|
|
188
|
+
this.getECRHost(),
|
|
189
|
+
this.getDockerTags(),
|
|
190
|
+
])
|
|
191
|
+
const { awsConfig } = this.options
|
|
192
|
+
|
|
193
|
+
return await ecrImageExists({
|
|
194
|
+
awsConfig,
|
|
195
|
+
imageUri: `${ecrHost}/${tags.commitHash}`,
|
|
196
|
+
})
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
async buildAndPushIfNecessary() {
|
|
200
|
+
if (await this.isPushed()) return
|
|
201
|
+
await this.build()
|
|
202
|
+
await this.push()
|
|
203
|
+
}
|
|
204
|
+
|
|
108
205
|
async getDockerTags(): Promise<{
|
|
109
206
|
latest: string
|
|
110
207
|
branch: string
|