@pwrdrvr/microapps-publish 0.0.16 → 0.0.17

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.
@@ -1,14 +1,15 @@
1
1
  import * as lambda from '@aws-sdk/client-lambda';
2
2
  import { IDeployVersionPreflightResponse } from '@pwrdrvr/microapps-deployer';
3
3
  import { IConfig } from './config/Config';
4
+ export interface IDeployVersionPreflightResult {
5
+ exists: boolean;
6
+ response: IDeployVersionPreflightResponse;
7
+ }
4
8
  export default class DeployClient {
5
9
  static readonly _client: lambda.LambdaClient;
6
10
  static readonly _decoder: TextDecoder;
7
11
  static CreateApp(config: IConfig): Promise<void>;
8
- static DeployVersionPreflight(config: IConfig): Promise<{
9
- exists: boolean;
10
- response: IDeployVersionPreflightResponse;
11
- }>;
12
+ static DeployVersionPreflight(config: IConfig): Promise<IDeployVersionPreflightResult>;
12
13
  static DeployVersion(config: IConfig): Promise<void>;
13
14
  }
14
15
  //# sourceMappingURL=DeployClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployClient.d.ts","sourceRoot":"","sources":["../src/DeployClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAEL,+BAA+B,EAIhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,sBAA+B;IACtD,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAA4B;WAEhC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;WAyBzC,sBAAsB,CACxC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,+BAA+B,CAAA;KAAE,CAAC;WA4BtD,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BlE"}
1
+ {"version":3,"file":"DeployClient.d.ts","sourceRoot":"","sources":["../src/DeployClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAEL,+BAA+B,EAIhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,+BAA+B,CAAC;CAC3C;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,sBAEpB;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAA4B;WAEhC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;WAyBzC,sBAAsB,CACxC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,6BAA6B,CAAC;WA4BrB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BlE"}
@@ -74,6 +74,8 @@ class DeployClient {
74
74
  }
75
75
  }
76
76
  exports.default = DeployClient;
77
- DeployClient._client = new lambda.LambdaClient({});
77
+ DeployClient._client = new lambda.LambdaClient({
78
+ maxAttempts: 8,
79
+ });
78
80
  DeployClient._decoder = new TextDecoder('utf-8');
79
81
  //# sourceMappingURL=DeployClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployClient.js","sourceRoot":"","sources":["../src/DeployClient.ts"],"names":[],"mappings":";;;AAAA,uEAAiD;AAYjD,MAAqB,YAAY;IAIxB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAe;QAC3C,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YACxB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;SACA,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CACtC,IAAI,MAAM,CAAC,aAAa,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;YACxC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC9C,CAAC,CACH,CAAC;QAEF,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE;YAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC3B,CAAC;YACvB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,KAAK,GAAG,IAAI,SAAS,CAAC,UAAU,KAAK,GAAG,CAAC,EAAE;gBACnE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;aACpE;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACnF;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACxC,MAAe;QAEf,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YACxB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM;SACQ,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CACtC,IAAI,MAAM,CAAC,aAAa,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;YACxC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC9C,CAAC,CACH,CAAC;QAEF,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE;YAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACb,CAAC;YACrC,IAAI,SAAS,CAAC,UAAU,KAAK,GAAG,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;aAC/C;iBAAM;gBACL,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;aAC9C;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC9F;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAe;QAC/C,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YACxB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM;YACzB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW;YACnC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;SACP,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CACtC,IAAI,MAAM,CAAC,aAAa,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;YACxC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC9C,CAAC,CACH,CAAC;QAEF,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE;YAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC3B,CAAC;YACvB,IAAI,SAAS,CAAC,UAAU,KAAK,GAAG,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;aAC1E;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;aAC5D;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACrF;IACH,CAAC;;AAtFH,+BAuFC;AAtFiB,oBAAO,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACtC,qBAAQ,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"DeployClient.js","sourceRoot":"","sources":["../src/DeployClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"S3TransferUtility.d.ts","sourceRoot":"","sources":["../src/S3TransferUtility.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAI9E,MAAM,CAAC,OAAO,OAAO,iBAAiB;WAChB,SAAS,CAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,+BAA+B,GACjD,OAAO,CAAC,IAAI,CAAC;mBAoDK,QAAQ;CAU9B"}
1
+ {"version":3,"file":"S3TransferUtility.d.ts","sourceRoot":"","sources":["../src/S3TransferUtility.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAI9E,MAAM,CAAC,OAAO,OAAO,iBAAiB;WAChB,SAAS,CAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,+BAA+B,GACjD,OAAO,CAAC,IAAI,CAAC;mBAqDK,QAAQ;CAU9B"}
@@ -14,6 +14,7 @@ class S3TransferUtility {
14
14
  static async UploadDir(s3Path, destPrefixPath, bucketName, preflightResponse) {
15
15
  // Use temp credentials for S3
16
16
  const s3Client = new s3.S3Client({
17
+ maxAttempts: 16,
17
18
  credentials: {
18
19
  accessKeyId: preflightResponse.awsCredentials.accessKeyId,
19
20
  secretAccessKey: preflightResponse.awsCredentials.secretAccessKey,
@@ -1 +1 @@
1
- {"version":3,"file":"S3TransferUtility.js","sourceRoot":"","sources":["../src/S3TransferUtility.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,oDAAoD;AACpD,EAAE;;;AAEF,2BAAsD;AACtD,mDAA6B;AAC7B,+DAAyC;AACzC,sDAA8C;AAG9C,2CAAyC;AACzC,0DAAyB;AAEzB,MAAqB,iBAAiB;IAC7B,MAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,MAAc,EACd,cAAsB,EACtB,UAAkB,EAClB,iBAAkD;QAElD,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE;gBACX,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,WAAW;gBACzD,eAAe,EAAE,iBAAiB,CAAC,cAAc,CAAC,eAAe;gBACjE,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAAC,YAAY;aAC5D;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa,CAAC;QACrE,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/D,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;SACjC;QAED,wCAAwC;QACxC,MAAM,eAAI,CACR,KAAK,EACL,KAAK,EAAE,QAAQ,EAAE,EAAE;YACjB,qDAAqD;YACrD,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC;gBACxB,MAAM,EAAE,QAAQ;gBAChB,iBAAiB,EAAE,KAAK;gBACxB,MAAM,EAAE;oBACN,MAAM,EAAE,UAAU;oBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE,qBAAgB,CAAC,QAAQ,CAAC;oBAChC,WAAW,EAAE,wBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B;oBAC/E,YAAY,EAAE,uBAAuB;iBACtC;aACF,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,EACD;YACE,WAAW,EAAE,EAAE;SAChB,CASF,CAAC;IACJ,CAAC;IACD,0BAA0B;IAC1B,8CAA8C;IAEtC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAW;QACvC,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,CAAC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AApED,oCAoEC"}
1
+ {"version":3,"file":"S3TransferUtility.js","sourceRoot":"","sources":["../src/S3TransferUtility.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,oDAAoD;AACpD,EAAE;;;AAEF,2BAAsD;AACtD,mDAA6B;AAC7B,+DAAyC;AACzC,sDAA8C;AAG9C,2CAAyC;AACzC,0DAAyB;AAEzB,MAAqB,iBAAiB;IAC7B,MAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,MAAc,EACd,cAAsB,EACtB,UAAkB,EAClB,iBAAkD;QAElD,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,EAAE;YACf,WAAW,EAAE;gBACX,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,WAAW;gBACzD,eAAe,EAAE,iBAAiB,CAAC,cAAc,CAAC,eAAe;gBACjE,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAAC,YAAY;aAC5D;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa,CAAC;QACrE,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/D,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;SACjC;QAED,wCAAwC;QACxC,MAAM,eAAI,CACR,KAAK,EACL,KAAK,EAAE,QAAQ,EAAE,EAAE;YACjB,qDAAqD;YACrD,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC;gBACxB,MAAM,EAAE,QAAQ;gBAChB,iBAAiB,EAAE,KAAK;gBACxB,MAAM,EAAE;oBACN,MAAM,EAAE,UAAU;oBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE,qBAAgB,CAAC,QAAQ,CAAC;oBAChC,WAAW,EAAE,wBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B;oBAC/E,YAAY,EAAE,uBAAuB;iBACtC;aACF,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,EACD;YACE,WAAW,EAAE,EAAE;SAChB,CASF,CAAC;IACJ,CAAC;IACD,0BAA0B;IAC1B,8CAA8C;IAEtC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAW;QACvC,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,CAAC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AArED,oCAqEC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
  import 'source-map-support/register';
3
3
  import 'reflect-metadata';
4
+ import { Command, flags as flagsParser } from '@oclif/command';
5
+ import { IConfig as OCLIFIConfig } from '@oclif/config';
6
+ declare class PublishTool extends Command {
7
+ static flags: {
8
+ version: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
9
+ help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
10
+ deployerLambdaName: flagsParser.IOptionFlag<string>;
11
+ newVersion: flagsParser.IOptionFlag<string>;
12
+ repoName: flagsParser.IOptionFlag<string>;
13
+ leaveCopy: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
14
+ };
15
+ private static escapeRegExp;
16
+ private VersionAndAlias;
17
+ private IMAGE_TAG;
18
+ private IMAGE_URI;
19
+ private FILES_TO_MODIFY;
20
+ private _restoreFilesStarted;
21
+ constructor(argv: string[], config: OCLIFIConfig);
22
+ run(): Promise<void>;
23
+ restoreFiles(): Promise<void>;
24
+ private createVersions;
25
+ private writeNewVersions;
26
+ private loginToECR;
27
+ private publishToECR;
28
+ private deployToLambda;
29
+ }
30
+ export default PublishTool;
4
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,6BAA6B,CAAC;AAErC,OAAO,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,6BAA6B,CAAC;AAErC,OAAO,kBAAkB,CAAC;AAK1B,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AA2BxD,cAAM,WAAY,SAAQ,OAAO;IAC/B,MAAM,CAAC,KAAK;;;;;;;MA6BV;IAGF,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,eAAe,CAGnB;IACJ,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY;IAK1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAgOb,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB1C,OAAO,CAAC,cAAc;YAIR,gBAAgB;YA0ChB,UAAU;YAeV,YAAY;YAQZ,cAAc;CAgD7B;AAKD,eAAe,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -7,30 +7,27 @@ require("source-map-support/register");
7
7
  // Used by ts-convict
8
8
  require("reflect-metadata");
9
9
  const child_process_1 = require("child_process");
10
- const path_1 = require("path");
11
10
  const util = tslib_1.__importStar(require("util"));
12
11
  const lambda = tslib_1.__importStar(require("@aws-sdk/client-lambda"));
13
12
  const sts = tslib_1.__importStar(require("@aws-sdk/client-sts"));
14
- const commander_1 = tslib_1.__importDefault(require("commander"));
13
+ const command_1 = require("@oclif/command");
14
+ const errors_1 = require("@oclif/errors");
15
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
15
16
  const fs_extra_1 = require("fs-extra");
17
+ const listr2_1 = require("listr2");
16
18
  const Config_1 = require("./config/Config");
17
19
  const DeployClient_1 = tslib_1.__importDefault(require("./DeployClient"));
18
20
  const S3Uploader_1 = tslib_1.__importDefault(require("./S3Uploader"));
19
21
  const asyncSetTimeout = util.promisify(setTimeout);
20
22
  const asyncExec = util.promisify(child_process_1.exec);
21
- const program = new commander_1.default.Command();
22
- const pkg = fs_extra_1.readJsonSync(path_1.join(__dirname, '..', 'package.json'));
23
- program
24
- .version(pkg.version)
25
- .option('-n, --new-version [version]', 'New version to apply')
26
- .option('-l, --leave', 'Leave a copy of the modifed files as .modified')
27
- .option('--deployer-lambda-name [name]', 'Name of the deployer lambda function')
28
- .option('--staging-bucket-name [name]', 'Name (not URI) of the S3 staging bucket')
29
- .option('--repo-name [name]', 'Name (not URI) of the Docker repo for the app')
30
- .parse(process.argv);
31
- const lambdaClient = new lambda.LambdaClient({});
32
- class PublishTool {
33
- constructor() {
23
+ const RUNNING_TEXT = ' RUNS ';
24
+ const RUNNING = chalk_1.default.reset.inverse.yellow.bold(RUNNING_TEXT) + ' ';
25
+ const lambdaClient = new lambda.LambdaClient({
26
+ maxAttempts: 8,
27
+ });
28
+ class PublishTool extends command_1.Command {
29
+ constructor(argv, config) {
30
+ super(argv, config);
34
31
  this.IMAGE_TAG = '';
35
32
  this.IMAGE_URI = '';
36
33
  this._restoreFilesStarted = false;
@@ -40,20 +37,12 @@ class PublishTool {
40
37
  static escapeRegExp(value) {
41
38
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
42
39
  }
43
- async UpdateVersion() {
44
- const options = program.opts();
45
- const version = options.newVersion;
46
- const leaveFiles = options.leave;
47
- const lambdaName = options.deployerLambdaName;
48
- const ecrRepo = options.repoName;
49
- if (lambdaName === undefined) {
50
- console.log('--deployer-lambda-name [lambdaName] is a required parameter');
51
- process.exit(1);
52
- }
53
- if (version === undefined) {
54
- console.log('--new-version [version] is a required parameter');
55
- process.exit(1);
56
- }
40
+ async run() {
41
+ const { flags: parsedFlags } = this.parse(PublishTool);
42
+ const version = parsedFlags.newVersion;
43
+ const leaveFiles = parsedFlags.leaveCopy;
44
+ const lambdaName = parsedFlags.deployerLambdaName;
45
+ const ecrRepo = parsedFlags.repoName;
57
46
  // Override the config value
58
47
  const config = Config_1.Config.instance;
59
48
  config.deployer.lambdaName = lambdaName;
@@ -61,7 +50,9 @@ class PublishTool {
61
50
  // Get the account ID and region from STS
62
51
  // TODO: Move this to the right place
63
52
  if (config.app.awsAccountID === 0 || config.app.awsRegion === '') {
64
- const stsClient = new sts.STSClient({});
53
+ const stsClient = new sts.STSClient({
54
+ maxAttempts: 8,
55
+ });
65
56
  const stsResponse = await stsClient.send(new sts.GetCallerIdentityCommand({}));
66
57
  if (config.app.awsAccountID === 0) {
67
58
  config.app.awsAccountID = parseInt(stsResponse.Account, 10);
@@ -98,61 +89,135 @@ class PublishTool {
98
89
  await S3Uploader_1.default.removeTempDirIfExists();
99
90
  await this.restoreFiles();
100
91
  });
92
+ if (config === undefined) {
93
+ this.error('Failed to load the config file');
94
+ }
95
+ if (config.app.staticAssetsPath === undefined) {
96
+ this.error('StaticAssetsPath must be specified in the config file');
97
+ }
98
+ //
99
+ // TODO: Setup Tasks
100
+ //
101
+ const tasks = new listr2_1.Listr([
102
+ {
103
+ title: 'Logging into ECR',
104
+ task: async (ctx, task) => {
105
+ const origTitle = task.title;
106
+ task.title = RUNNING + origTitle;
107
+ await this.loginToECR(config);
108
+ task.title = origTitle;
109
+ },
110
+ },
111
+ {
112
+ title: 'Modifying Config Files',
113
+ task: async (ctx, task) => {
114
+ const origTitle = task.title;
115
+ task.title = RUNNING + origTitle;
116
+ // Modify the existing files with the new version
117
+ for (const fileToModify of this.FILES_TO_MODIFY) {
118
+ task.output = `Patching version (${this.VersionAndAlias.version}) into ${fileToModify.path}`;
119
+ if (!(await this.writeNewVersions(fileToModify.path, fileToModify.versions, leaveFiles))) {
120
+ task.output = `Failed modifying file: ${fileToModify.path}`;
121
+ }
122
+ }
123
+ task.title = origTitle;
124
+ },
125
+ },
126
+ {
127
+ title: 'Preflight Version Check',
128
+ task: async (ctx, task) => {
129
+ const origTitle = task.title;
130
+ task.title = RUNNING + origTitle;
131
+ // Confirm the Version Does Not Exist in Published State
132
+ task.output = `Checking if deployed app/version already exists for ${config.app.name}/${version}`;
133
+ ctx.preflightResult = await DeployClient_1.default.DeployVersionPreflight(config);
134
+ if (ctx.preflightResult.exists) {
135
+ task.output = `Warning: App/Version already exists: ${config.app.name}/${config.app.semVer}`;
136
+ }
137
+ task.title = origTitle;
138
+ },
139
+ },
140
+ {
141
+ title: 'Serverless Next.js Build',
142
+ task: async (ctx, task) => {
143
+ const origTitle = task.title;
144
+ task.title = RUNNING + origTitle;
145
+ task.output = `Invoking serverless next.js build for ${config.app.name}/${version}`;
146
+ // Run the serverless next.js build
147
+ await asyncExec('serverless');
148
+ if (config.app.serverlessNextRouterPath !== undefined) {
149
+ task.output = 'Copying Serverless Next.js router to build output directory';
150
+ await fs_extra_1.promises.copyFile(config.app.serverlessNextRouterPath, './.serverless_nextjs/index.js');
151
+ }
152
+ task.title = origTitle;
153
+ },
154
+ },
155
+ {
156
+ title: 'Publish to ECR',
157
+ task: async (ctx, task) => {
158
+ const origTitle = task.title;
159
+ task.title = RUNNING + origTitle;
160
+ // Docker, build, tag, push to ECR
161
+ // Note: Need to already have AWS env vars set
162
+ await this.publishToECR(config);
163
+ task.title = origTitle;
164
+ },
165
+ },
166
+ {
167
+ title: 'Deploy to Lambda',
168
+ task: async (ctx, task) => {
169
+ const origTitle = task.title;
170
+ task.title = RUNNING + origTitle;
171
+ // Update the Lambda function
172
+ await this.deployToLambda(config, this.VersionAndAlias);
173
+ task.title = origTitle;
174
+ },
175
+ },
176
+ {
177
+ title: 'Confirm Static Assets Folder Exists',
178
+ task: async (ctx, task) => {
179
+ const origTitle = task.title;
180
+ task.title = RUNNING + origTitle;
181
+ // Check that Static Assets Folder exists
182
+ if (!(await fs_extra_1.pathExists(config.app.staticAssetsPath))) {
183
+ this.error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
184
+ }
185
+ task.title = origTitle;
186
+ },
187
+ },
188
+ {
189
+ title: 'Upload Files to S3 Staging AppName/Version Prefix',
190
+ task: async (ctx, task) => {
191
+ const origTitle = task.title;
192
+ task.title = RUNNING + origTitle;
193
+ // Upload Files to S3 Staging AppName/Version Prefix
194
+ await S3Uploader_1.default.Upload(config, ctx.preflightResult.response.s3UploadUrl, ctx.preflightResult.response);
195
+ task.title = origTitle;
196
+ },
197
+ },
198
+ {
199
+ title: `Creating MicroApp Application: ${config.app.name}`,
200
+ task: async (ctx, task) => {
201
+ const origTitle = task.title;
202
+ task.title = RUNNING + origTitle;
203
+ // Call Deployer to Create App if Not Exists
204
+ await DeployClient_1.default.CreateApp(config);
205
+ task.title = origTitle;
206
+ },
207
+ },
208
+ {
209
+ title: `Creating MicroApp Version: ${config.app.semVer}`,
210
+ task: async (ctx, task) => {
211
+ const origTitle = task.title;
212
+ task.title = RUNNING + origTitle;
213
+ // Call Deployer to Deploy AppName/Version
214
+ await DeployClient_1.default.DeployVersion(config);
215
+ task.title = origTitle;
216
+ },
217
+ },
218
+ ]);
101
219
  try {
102
- // Modify the existing files with the new version
103
- for (const fileToModify of this.FILES_TO_MODIFY) {
104
- console.log(`Patching version (${this.VersionAndAlias.version}) into ${fileToModify.path}`);
105
- if (!(await this.writeNewVersions(fileToModify.path, fileToModify.versions, leaveFiles))) {
106
- console.log(`Failed modifying file: ${fileToModify.path}`);
107
- }
108
- }
109
- if (config === undefined) {
110
- throw new Error('Failed to load the config file');
111
- }
112
- if (config.app.staticAssetsPath === undefined) {
113
- throw new Error('StaticAssetsPath must be specified in the config file');
114
- }
115
- await this.loginToECR(config);
116
- // Confirm the Version Does Not Exist in Published State
117
- console.log(`Checking if deployed app/version already exists for ${config.app.name}/${version}`);
118
- const preflightResponse = await DeployClient_1.default.DeployVersionPreflight(config);
119
- if (preflightResponse.exists) {
120
- console.log(`Warning: App/Version already exists: ${config.app.name}/${config.app.semVer}`);
121
- }
122
- console.log(`Invoking serverless next.js build for ${config.app.name}/${version}`);
123
- // Run the serverless next.js build
124
- await asyncExec('serverless');
125
- if (config.app.serverlessNextRouterPath !== undefined) {
126
- console.log('Copying Serverless Next.js router to build output directory');
127
- await fs_extra_1.promises.copyFile(config.app.serverlessNextRouterPath, './.serverless_nextjs/index.js');
128
- }
129
- // Docker, build, tag, push to ECR
130
- // Note: Need to already have AWS env vars set
131
- await this.publishToECR(config);
132
- // Update the Lambda function
133
- await this.deployToLambda(config, this.VersionAndAlias);
134
- //
135
- // Tasks that used to be in DeployTool
136
- //
137
- // Check that Static Assets Folder exists
138
- try {
139
- const staticAssetsStats = await fs_extra_1.promises.stat(config.app.staticAssetsPath);
140
- if (!staticAssetsStats.isDirectory()) {
141
- throw new Error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
142
- }
143
- }
144
- catch (_a) {
145
- throw new Error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
146
- }
147
- // Upload Files to S3 Staging AppName/Version Prefix
148
- console.log('Copying S3 assets');
149
- await S3Uploader_1.default.Upload(config, preflightResponse.response.s3UploadUrl, preflightResponse.response);
150
- // Call Deployer to Create App if Not Exists
151
- console.log(`Creating MicroApp Application: ${config.app.name}`);
152
- await DeployClient_1.default.CreateApp(config);
153
- // Call Deployer to Deploy AppName/Version
154
- console.log(`Creating MicroApp Version: ${config.app.semVer}`);
155
- await DeployClient_1.default.DeployVersion(config);
220
+ await tasks.run();
156
221
  console.log(`Published: ${config.app.name}/${config.app.semVer}`);
157
222
  }
158
223
  catch (error) {
@@ -214,7 +279,6 @@ class PublishTool {
214
279
  async loginToECR(config) {
215
280
  this.IMAGE_TAG = `${config.app.ecrRepoName}:${this.VersionAndAlias.version}`;
216
281
  this.IMAGE_URI = `${config.app.ecrHost}/${this.IMAGE_TAG}`;
217
- console.log('Logging into ECR');
218
282
  try {
219
283
  await asyncExec(`aws ecr get-login-password --region ${config.app.awsRegion} | docker login --username AWS --password-stdin ${config.app.ecrHost}`);
220
284
  }
@@ -269,6 +333,37 @@ class PublishTool {
269
333
  console.log(`Lambda alias created, name: ${resultLambdaAlias.Name}`);
270
334
  }
271
335
  }
272
- const publishTool = new PublishTool();
273
- void publishTool.UpdateVersion();
336
+ PublishTool.flags = {
337
+ version: command_1.flags.version({
338
+ char: 'v',
339
+ }),
340
+ help: command_1.flags.help(),
341
+ deployerLambdaName: command_1.flags.string({
342
+ char: 'd',
343
+ multiple: false,
344
+ required: true,
345
+ description: 'Name of the deployer lambda function',
346
+ }),
347
+ newVersion: command_1.flags.string({
348
+ char: 'n',
349
+ multiple: false,
350
+ required: true,
351
+ description: 'New semantic version to apply',
352
+ }),
353
+ repoName: command_1.flags.string({
354
+ char: 'r',
355
+ multiple: false,
356
+ required: true,
357
+ description: 'Name (not URI) of the Docker repo for the app',
358
+ }),
359
+ leaveCopy: command_1.flags.boolean({
360
+ char: 'l',
361
+ default: false,
362
+ required: false,
363
+ description: 'Leave a copy of the modifed files as .modified',
364
+ }),
365
+ };
366
+ // @ts-expect-error catch is actually defined
367
+ PublishTool.run().catch(errors_1.handle);
368
+ exports.default = PublishTool;
274
369
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pwrdrvr/microapps-publish",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "description": "Publish tool for deploying apps and updates",
5
5
  "main": "dist/index.js",
6
6
  "source": "src/index.ts",
@@ -39,11 +39,16 @@
39
39
  "@aws-sdk/client-s3": "^3.20.0",
40
40
  "@aws-sdk/client-sts": "^3.20.0",
41
41
  "@aws-sdk/lib-storage": "^3.20.0",
42
+ "@oclif/command": "^1.8.4",
43
+ "@oclif/config": "^1.17.1",
44
+ "@oclif/errors": "^1.3.5",
45
+ "chalk": "^4.1.2",
42
46
  "commander": "^7.1.0",
43
47
  "convict": "^6.1.0",
44
48
  "convict-format-with-validator": "^6.0.1",
45
49
  "fs-extra": "^9.1.0",
46
50
  "js-yaml": "^4.1.0",
51
+ "listr2": "^3.13.5",
47
52
  "mime-types": "^2.1.30",
48
53
  "p-map": "^4.0.0",
49
54
  "reflect-metadata": "^0.1.13",
@@ -10,8 +10,15 @@ import {
10
10
  } from '@pwrdrvr/microapps-deployer';
11
11
  import { IConfig } from './config/Config';
12
12
 
13
+ export interface IDeployVersionPreflightResult {
14
+ exists: boolean;
15
+ response: IDeployVersionPreflightResponse;
16
+ }
17
+
13
18
  export default class DeployClient {
14
- static readonly _client = new lambda.LambdaClient({});
19
+ static readonly _client = new lambda.LambdaClient({
20
+ maxAttempts: 8,
21
+ });
15
22
  static readonly _decoder = new TextDecoder('utf-8');
16
23
 
17
24
  public static async CreateApp(config: IConfig): Promise<void> {
@@ -41,7 +48,7 @@ export default class DeployClient {
41
48
 
42
49
  public static async DeployVersionPreflight(
43
50
  config: IConfig,
44
- ): Promise<{ exists: boolean; response: IDeployVersionPreflightResponse }> {
51
+ ): Promise<IDeployVersionPreflightResult> {
45
52
  const request = {
46
53
  type: 'deployVersionPreflight',
47
54
  appName: config.app.name,
@@ -20,6 +20,7 @@ export default class S3TransferUtility {
20
20
  ): Promise<void> {
21
21
  // Use temp credentials for S3
22
22
  const s3Client = new s3.S3Client({
23
+ maxAttempts: 16,
23
24
  credentials: {
24
25
  accessKeyId: preflightResponse.awsCredentials.accessKeyId,
25
26
  secretAccessKey: preflightResponse.awsCredentials.secretAccessKey,
package/src/index.ts CHANGED
@@ -5,40 +5,69 @@ import 'source-map-support/register';
5
5
  // Used by ts-convict
6
6
  import 'reflect-metadata';
7
7
  import { exec } from 'child_process';
8
- import { join as pathJoin } from 'path';
9
8
  import * as util from 'util';
10
9
  import * as lambda from '@aws-sdk/client-lambda';
11
10
  import * as sts from '@aws-sdk/client-sts';
12
- import commander from 'commander';
13
- import { promises as fs, readJsonSync } from 'fs-extra';
14
- import type { PackageJson } from 'type-fest';
11
+ import { Command, flags as flagsParser } from '@oclif/command';
12
+ import { IConfig as OCLIFIConfig } from '@oclif/config';
13
+ import { handle as errorHandler } from '@oclif/errors';
14
+ import chalk from 'chalk';
15
+ import { promises as fs, pathExists } from 'fs-extra';
16
+ import { Listr, ListrErrorTypes, ListrTask, ListrTaskObject } from 'listr2';
15
17
  import { Config, IConfig } from './config/Config';
16
- import DeployClient from './DeployClient';
18
+ import DeployClient, { IDeployVersionPreflightResult } from './DeployClient';
17
19
  import S3Uploader from './S3Uploader';
18
20
  const asyncSetTimeout = util.promisify(setTimeout);
19
21
  const asyncExec = util.promisify(exec);
20
22
 
21
- const program = new commander.Command();
23
+ const RUNNING_TEXT = ' RUNS ';
24
+ const RUNNING = chalk.reset.inverse.yellow.bold(RUNNING_TEXT) + ' ';
22
25
 
23
- const pkg: PackageJson = readJsonSync(pathJoin(__dirname, '..', 'package.json'));
24
-
25
- program
26
- .version(pkg.version)
27
- .option('-n, --new-version [version]', 'New version to apply')
28
- .option('-l, --leave', 'Leave a copy of the modifed files as .modified')
29
- .option('--deployer-lambda-name [name]', 'Name of the deployer lambda function')
30
- .option('--staging-bucket-name [name]', 'Name (not URI) of the S3 staging bucket')
31
- .option('--repo-name [name]', 'Name (not URI) of the Docker repo for the app')
32
- .parse(process.argv);
33
-
34
- const lambdaClient = new lambda.LambdaClient({});
26
+ const lambdaClient = new lambda.LambdaClient({
27
+ maxAttempts: 8,
28
+ });
35
29
 
36
30
  interface IVersions {
37
31
  version: string;
38
32
  alias?: string;
39
33
  }
40
34
 
41
- class PublishTool {
35
+ interface IContext {
36
+ preflightResult: IDeployVersionPreflightResult;
37
+ }
38
+
39
+ class PublishTool extends Command {
40
+ static flags = {
41
+ version: flagsParser.version({
42
+ char: 'v',
43
+ }),
44
+ help: flagsParser.help(),
45
+ deployerLambdaName: flagsParser.string({
46
+ char: 'd',
47
+ multiple: false,
48
+ required: true,
49
+ description: 'Name of the deployer lambda function',
50
+ }),
51
+ newVersion: flagsParser.string({
52
+ char: 'n',
53
+ multiple: false,
54
+ required: true,
55
+ description: 'New semantic version to apply',
56
+ }),
57
+ repoName: flagsParser.string({
58
+ char: 'r',
59
+ multiple: false,
60
+ required: true,
61
+ description: 'Name (not URI) of the Docker repo for the app',
62
+ }),
63
+ leaveCopy: flagsParser.boolean({
64
+ char: 'l',
65
+ default: false,
66
+ required: false,
67
+ description: 'Leave a copy of the modifed files as .modified',
68
+ }),
69
+ };
70
+
42
71
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
43
72
  private static escapeRegExp(value: string): string {
44
73
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
@@ -53,26 +82,17 @@ class PublishTool {
53
82
  }[];
54
83
  private _restoreFilesStarted = false;
55
84
 
56
- constructor() {
85
+ constructor(argv: string[], config: OCLIFIConfig) {
86
+ super(argv, config);
57
87
  this.restoreFiles = this.restoreFiles.bind(this);
58
88
  }
59
89
 
60
- public async UpdateVersion(): Promise<void> {
61
- const options = program.opts();
62
- const version = options.newVersion as string;
63
- const leaveFiles = options.leave as boolean;
64
- const lambdaName = options.deployerLambdaName as string;
65
- const ecrRepo = options.repoName as string;
66
-
67
- if (lambdaName === undefined) {
68
- console.log('--deployer-lambda-name [lambdaName] is a required parameter');
69
- process.exit(1);
70
- }
71
-
72
- if (version === undefined) {
73
- console.log('--new-version [version] is a required parameter');
74
- process.exit(1);
75
- }
90
+ async run(): Promise<void> {
91
+ const { flags: parsedFlags } = this.parse(PublishTool);
92
+ const version = parsedFlags.newVersion;
93
+ const leaveFiles = parsedFlags.leaveCopy;
94
+ const lambdaName = parsedFlags.deployerLambdaName;
95
+ const ecrRepo = parsedFlags.repoName;
76
96
 
77
97
  // Override the config value
78
98
  const config = Config.instance;
@@ -82,7 +102,9 @@ class PublishTool {
82
102
  // Get the account ID and region from STS
83
103
  // TODO: Move this to the right place
84
104
  if (config.app.awsAccountID === 0 || config.app.awsRegion === '') {
85
- const stsClient = new sts.STSClient({});
105
+ const stsClient = new sts.STSClient({
106
+ maxAttempts: 8,
107
+ });
86
108
  const stsResponse = await stsClient.send(new sts.GetCallerIdentityCommand({}));
87
109
  if (config.app.awsAccountID === 0) {
88
110
  config.app.awsAccountID = parseInt(stsResponse.Account, 10);
@@ -121,80 +143,166 @@ class PublishTool {
121
143
  await this.restoreFiles();
122
144
  });
123
145
 
124
- try {
125
- // Modify the existing files with the new version
126
- for (const fileToModify of this.FILES_TO_MODIFY) {
127
- console.log(`Patching version (${this.VersionAndAlias.version}) into ${fileToModify.path}`);
128
- if (!(await this.writeNewVersions(fileToModify.path, fileToModify.versions, leaveFiles))) {
129
- console.log(`Failed modifying file: ${fileToModify.path}`);
130
- }
131
- }
132
-
133
- if (config === undefined) {
134
- throw new Error('Failed to load the config file');
135
- }
136
- if (config.app.staticAssetsPath === undefined) {
137
- throw new Error('StaticAssetsPath must be specified in the config file');
138
- }
139
-
140
- await this.loginToECR(config);
141
-
142
- // Confirm the Version Does Not Exist in Published State
143
- console.log(
144
- `Checking if deployed app/version already exists for ${config.app.name}/${version}`,
145
- );
146
- const preflightResponse = await DeployClient.DeployVersionPreflight(config);
147
- if (preflightResponse.exists) {
148
- console.log(`Warning: App/Version already exists: ${config.app.name}/${config.app.semVer}`);
149
- }
150
-
151
- console.log(`Invoking serverless next.js build for ${config.app.name}/${version}`);
152
-
153
- // Run the serverless next.js build
154
- await asyncExec('serverless');
155
-
156
- if (config.app.serverlessNextRouterPath !== undefined) {
157
- console.log('Copying Serverless Next.js router to build output directory');
158
- await fs.copyFile(config.app.serverlessNextRouterPath, './.serverless_nextjs/index.js');
159
- }
160
-
161
- // Docker, build, tag, push to ECR
162
- // Note: Need to already have AWS env vars set
163
- await this.publishToECR(config);
164
-
165
- // Update the Lambda function
166
- await this.deployToLambda(config, this.VersionAndAlias);
167
-
168
- //
169
- // Tasks that used to be in DeployTool
170
- //
171
-
172
- // Check that Static Assets Folder exists
173
- try {
174
- const staticAssetsStats = await fs.stat(config.app.staticAssetsPath);
175
- if (!staticAssetsStats.isDirectory()) {
176
- throw new Error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
177
- }
178
- } catch {
179
- throw new Error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
180
- }
181
-
182
- // Upload Files to S3 Staging AppName/Version Prefix
183
- console.log('Copying S3 assets');
184
- await S3Uploader.Upload(
185
- config,
186
- preflightResponse.response.s3UploadUrl,
187
- preflightResponse.response,
188
- );
189
-
190
- // Call Deployer to Create App if Not Exists
191
- console.log(`Creating MicroApp Application: ${config.app.name}`);
192
- await DeployClient.CreateApp(config);
146
+ if (config === undefined) {
147
+ this.error('Failed to load the config file');
148
+ }
149
+ if (config.app.staticAssetsPath === undefined) {
150
+ this.error('StaticAssetsPath must be specified in the config file');
151
+ }
193
152
 
194
- // Call Deployer to Deploy AppName/Version
195
- console.log(`Creating MicroApp Version: ${config.app.semVer}`);
196
- await DeployClient.DeployVersion(config);
153
+ //
154
+ // TODO: Setup Tasks
155
+ //
156
+
157
+ const tasks = new Listr<IContext>([
158
+ {
159
+ title: 'Logging into ECR',
160
+ task: async (ctx, task) => {
161
+ const origTitle = task.title;
162
+ task.title = RUNNING + origTitle;
163
+
164
+ await this.loginToECR(config);
165
+
166
+ task.title = origTitle;
167
+ },
168
+ },
169
+ {
170
+ title: 'Modifying Config Files',
171
+ task: async (ctx, task) => {
172
+ const origTitle = task.title;
173
+ task.title = RUNNING + origTitle;
174
+
175
+ // Modify the existing files with the new version
176
+ for (const fileToModify of this.FILES_TO_MODIFY) {
177
+ task.output = `Patching version (${this.VersionAndAlias.version}) into ${fileToModify.path}`;
178
+ if (
179
+ !(await this.writeNewVersions(fileToModify.path, fileToModify.versions, leaveFiles))
180
+ ) {
181
+ task.output = `Failed modifying file: ${fileToModify.path}`;
182
+ }
183
+ }
184
+
185
+ task.title = origTitle;
186
+ },
187
+ },
188
+ {
189
+ title: 'Preflight Version Check',
190
+ task: async (ctx, task) => {
191
+ const origTitle = task.title;
192
+ task.title = RUNNING + origTitle;
193
+
194
+ // Confirm the Version Does Not Exist in Published State
195
+ task.output = `Checking if deployed app/version already exists for ${config.app.name}/${version}`;
196
+ ctx.preflightResult = await DeployClient.DeployVersionPreflight(config);
197
+ if (ctx.preflightResult.exists) {
198
+ task.output = `Warning: App/Version already exists: ${config.app.name}/${config.app.semVer}`;
199
+ }
200
+
201
+ task.title = origTitle;
202
+ },
203
+ },
204
+ {
205
+ title: 'Serverless Next.js Build',
206
+ task: async (ctx, task) => {
207
+ const origTitle = task.title;
208
+ task.title = RUNNING + origTitle;
209
+
210
+ task.output = `Invoking serverless next.js build for ${config.app.name}/${version}`;
211
+
212
+ // Run the serverless next.js build
213
+ await asyncExec('serverless');
214
+
215
+ if (config.app.serverlessNextRouterPath !== undefined) {
216
+ task.output = 'Copying Serverless Next.js router to build output directory';
217
+ await fs.copyFile(config.app.serverlessNextRouterPath, './.serverless_nextjs/index.js');
218
+ }
219
+
220
+ task.title = origTitle;
221
+ },
222
+ },
223
+ {
224
+ title: 'Publish to ECR',
225
+ task: async (ctx, task) => {
226
+ const origTitle = task.title;
227
+ task.title = RUNNING + origTitle;
228
+
229
+ // Docker, build, tag, push to ECR
230
+ // Note: Need to already have AWS env vars set
231
+ await this.publishToECR(config);
232
+
233
+ task.title = origTitle;
234
+ },
235
+ },
236
+ {
237
+ title: 'Deploy to Lambda',
238
+ task: async (ctx, task) => {
239
+ const origTitle = task.title;
240
+ task.title = RUNNING + origTitle;
241
+
242
+ // Update the Lambda function
243
+ await this.deployToLambda(config, this.VersionAndAlias);
244
+
245
+ task.title = origTitle;
246
+ },
247
+ },
248
+ {
249
+ title: 'Confirm Static Assets Folder Exists',
250
+ task: async (ctx, task) => {
251
+ const origTitle = task.title;
252
+ task.title = RUNNING + origTitle;
253
+
254
+ // Check that Static Assets Folder exists
255
+ if (!(await pathExists(config.app.staticAssetsPath))) {
256
+ this.error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
257
+ }
258
+
259
+ task.title = origTitle;
260
+ },
261
+ },
262
+ {
263
+ title: 'Upload Files to S3 Staging AppName/Version Prefix',
264
+ task: async (ctx, task) => {
265
+ const origTitle = task.title;
266
+ task.title = RUNNING + origTitle;
267
+
268
+ // Upload Files to S3 Staging AppName/Version Prefix
269
+ await S3Uploader.Upload(
270
+ config,
271
+ ctx.preflightResult.response.s3UploadUrl,
272
+ ctx.preflightResult.response,
273
+ );
274
+
275
+ task.title = origTitle;
276
+ },
277
+ },
278
+ {
279
+ title: `Creating MicroApp Application: ${config.app.name}`,
280
+ task: async (ctx, task) => {
281
+ const origTitle = task.title;
282
+ task.title = RUNNING + origTitle;
283
+
284
+ // Call Deployer to Create App if Not Exists
285
+ await DeployClient.CreateApp(config);
286
+
287
+ task.title = origTitle;
288
+ },
289
+ },
290
+ {
291
+ title: `Creating MicroApp Version: ${config.app.semVer}`,
292
+ task: async (ctx, task) => {
293
+ const origTitle = task.title;
294
+ task.title = RUNNING + origTitle;
295
+
296
+ // Call Deployer to Deploy AppName/Version
297
+ await DeployClient.DeployVersion(config);
298
+
299
+ task.title = origTitle;
300
+ },
301
+ },
302
+ ]);
197
303
 
304
+ try {
305
+ await tasks.run();
198
306
  console.log(`Published: ${config.app.name}/${config.app.semVer}`);
199
307
  } catch (error) {
200
308
  console.log(`Caught exception: ${error.message}`);
@@ -271,7 +379,6 @@ class PublishTool {
271
379
  this.IMAGE_TAG = `${config.app.ecrRepoName}:${this.VersionAndAlias.version}`;
272
380
  this.IMAGE_URI = `${config.app.ecrHost}/${this.IMAGE_TAG}`;
273
381
 
274
- console.log('Logging into ECR');
275
382
  try {
276
383
  await asyncExec(
277
384
  `aws ecr get-login-password --region ${config.app.awsRegion} | docker login --username AWS --password-stdin ${config.app.ecrHost}`,
@@ -341,5 +448,7 @@ class PublishTool {
341
448
  }
342
449
  }
343
450
 
344
- const publishTool = new PublishTool();
345
- void publishTool.UpdateVersion();
451
+ // @ts-expect-error catch is actually defined
452
+ PublishTool.run().catch(errorHandler);
453
+
454
+ export default PublishTool;