@cloudsnorkel/cdk-github-runners 0.9.5 → 0.9.7

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.
Files changed (46) hide show
  1. package/.gitattributes +2 -0
  2. package/.jsii +118 -101
  3. package/API.md +28 -15
  4. package/README.md +120 -63
  5. package/assets/delete-runner.lambda/index.js +69 -63
  6. package/assets/image-builders/aws-image-builder/reaper.lambda/index.js +163 -0
  7. package/assets/image-builders/aws-image-builder/versioner.lambda/index.js +69 -63
  8. package/assets/status.lambda/index.js +69 -63
  9. package/assets/token-retriever.lambda/index.js +69 -63
  10. package/cdk.json +10 -0
  11. package/lib/access.js +1 -1
  12. package/lib/image-builders/api.js +1 -1
  13. package/lib/image-builders/aws-image-builder/builder.d.ts +1 -1
  14. package/lib/image-builders/aws-image-builder/builder.js +62 -26
  15. package/lib/image-builders/aws-image-builder/deprecated/ami.d.ts +2 -2
  16. package/lib/image-builders/aws-image-builder/deprecated/ami.js +4 -4
  17. package/lib/image-builders/aws-image-builder/deprecated/container.d.ts +3 -3
  18. package/lib/image-builders/aws-image-builder/deprecated/container.js +11 -14
  19. package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
  20. package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
  21. package/lib/image-builders/aws-image-builder/reaper-function.d.ts +13 -0
  22. package/lib/image-builders/aws-image-builder/reaper-function.js +23 -0
  23. package/lib/image-builders/aws-image-builder/reaper.lambda.d.ts +1 -0
  24. package/lib/image-builders/aws-image-builder/reaper.lambda.js +149 -0
  25. package/lib/image-builders/codebuild-deprecated.d.ts +4 -4
  26. package/lib/image-builders/codebuild-deprecated.js +18 -22
  27. package/lib/image-builders/codebuild.d.ts +1 -1
  28. package/lib/image-builders/codebuild.js +24 -25
  29. package/lib/image-builders/common.d.ts +2 -2
  30. package/lib/image-builders/common.js +1 -1
  31. package/lib/image-builders/components.js +4 -4
  32. package/lib/image-builders/static.d.ts +1 -1
  33. package/lib/image-builders/static.js +7 -6
  34. package/lib/providers/codebuild.js +2 -2
  35. package/lib/providers/common.d.ts +6 -0
  36. package/lib/providers/common.js +4 -4
  37. package/lib/providers/ec2.d.ts +1 -1
  38. package/lib/providers/ec2.js +3 -3
  39. package/lib/providers/ecs.d.ts +6 -2
  40. package/lib/providers/ecs.js +64 -32
  41. package/lib/providers/fargate.js +2 -2
  42. package/lib/providers/lambda.js +12 -3
  43. package/lib/runner.d.ts +3 -3
  44. package/lib/runner.js +5 -5
  45. package/lib/secrets.js +1 -1
  46. package/package.json +7 -5
@@ -10322,7 +10322,7 @@ var require_semver = __commonJS({
10322
10322
  version = version.version;
10323
10323
  }
10324
10324
  } else if (typeof version !== "string") {
10325
- throw new TypeError(`Invalid Version: ${version}`);
10325
+ throw new TypeError(`Invalid Version: ${require("util").inspect(version)}`);
10326
10326
  }
10327
10327
  if (version.length > MAX_LENGTH) {
10328
10328
  throw new TypeError(
@@ -10495,9 +10495,13 @@ var require_semver = __commonJS({
10495
10495
  }
10496
10496
  this.prerelease = [];
10497
10497
  break;
10498
- case "pre":
10498
+ case "pre": {
10499
+ const base = Number(identifierBase) ? 1 : 0;
10500
+ if (!identifier && identifierBase === false) {
10501
+ throw new Error("invalid increment argument: identifier is empty");
10502
+ }
10499
10503
  if (this.prerelease.length === 0) {
10500
- this.prerelease = [0];
10504
+ this.prerelease = [base];
10501
10505
  } else {
10502
10506
  let i = this.prerelease.length;
10503
10507
  while (--i >= 0) {
@@ -10507,20 +10511,27 @@ var require_semver = __commonJS({
10507
10511
  }
10508
10512
  }
10509
10513
  if (i === -1) {
10510
- this.prerelease.push(0);
10514
+ if (identifier === this.prerelease.join(".") && identifierBase === false) {
10515
+ throw new Error("invalid increment argument: identifier already exists");
10516
+ }
10517
+ this.prerelease.push(base);
10511
10518
  }
10512
10519
  }
10513
10520
  if (identifier) {
10514
- const base = Number(identifierBase) ? 1 : 0;
10521
+ let prerelease = [identifier, base];
10522
+ if (identifierBase === false) {
10523
+ prerelease = [identifier];
10524
+ }
10515
10525
  if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
10516
10526
  if (isNaN(this.prerelease[1])) {
10517
- this.prerelease = [identifier, base];
10527
+ this.prerelease = prerelease;
10518
10528
  }
10519
10529
  } else {
10520
- this.prerelease = [identifier, base];
10530
+ this.prerelease = prerelease;
10521
10531
  }
10522
10532
  }
10523
10533
  break;
10534
+ }
10524
10535
  default:
10525
10536
  throw new Error(`invalid increment argument: ${release}`);
10526
10537
  }
@@ -10536,22 +10547,18 @@ var require_semver = __commonJS({
10536
10547
  // node_modules/semver/functions/parse.js
10537
10548
  var require_parse = __commonJS({
10538
10549
  "node_modules/semver/functions/parse.js"(exports2, module2) {
10539
- var { MAX_LENGTH } = require_constants();
10540
10550
  var SemVer = require_semver();
10541
- var parse = (version, options) => {
10551
+ var parse = (version, options, throwErrors = false) => {
10542
10552
  if (version instanceof SemVer) {
10543
10553
  return version;
10544
10554
  }
10545
- if (typeof version !== "string") {
10546
- return null;
10547
- }
10548
- if (version.length > MAX_LENGTH) {
10549
- return null;
10550
- }
10551
10555
  try {
10552
10556
  return new SemVer(version, options);
10553
10557
  } catch (er) {
10554
- return null;
10558
+ if (!throwErrors) {
10559
+ return null;
10560
+ }
10561
+ throw er;
10555
10562
  }
10556
10563
  };
10557
10564
  module2.exports = parse;
@@ -10605,60 +10612,41 @@ var require_inc = __commonJS({
10605
10612
  }
10606
10613
  });
10607
10614
 
10608
- // node_modules/semver/functions/compare.js
10609
- var require_compare = __commonJS({
10610
- "node_modules/semver/functions/compare.js"(exports2, module2) {
10611
- var SemVer = require_semver();
10612
- var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
10613
- module2.exports = compare;
10614
- }
10615
- });
10616
-
10617
- // node_modules/semver/functions/eq.js
10618
- var require_eq = __commonJS({
10619
- "node_modules/semver/functions/eq.js"(exports2, module2) {
10620
- var compare = require_compare();
10621
- var eq = (a, b, loose) => compare(a, b, loose) === 0;
10622
- module2.exports = eq;
10623
- }
10624
- });
10625
-
10626
10615
  // node_modules/semver/functions/diff.js
10627
10616
  var require_diff = __commonJS({
10628
10617
  "node_modules/semver/functions/diff.js"(exports2, module2) {
10629
10618
  var parse = require_parse();
10630
- var eq = require_eq();
10631
10619
  var diff = (version1, version2) => {
10632
- const v1 = parse(version1);
10633
- const v2 = parse(version2);
10634
- if (eq(v1, v2)) {
10620
+ const v1 = parse(version1, null, true);
10621
+ const v2 = parse(version2, null, true);
10622
+ const comparison = v1.compare(v2);
10623
+ if (comparison === 0) {
10635
10624
  return null;
10636
- } else {
10637
- const hasPre = v1.prerelease.length || v2.prerelease.length;
10638
- const prefix = hasPre ? "pre" : "";
10639
- const defaultResult = hasPre ? "prerelease" : "";
10640
- if (v1.major !== v2.major) {
10641
- return prefix + "major";
10642
- }
10643
- if (v1.minor !== v2.minor) {
10644
- return prefix + "minor";
10645
- }
10646
- if (v1.patch !== v2.patch) {
10647
- return prefix + "patch";
10648
- }
10649
- if (!v1.prerelease.length || !v2.prerelease.length) {
10650
- if (v1.patch) {
10651
- return "patch";
10652
- }
10653
- if (v1.minor) {
10654
- return "minor";
10655
- }
10656
- if (v1.major) {
10657
- return "major";
10658
- }
10659
- }
10660
- return defaultResult;
10661
10625
  }
10626
+ const v1Higher = comparison > 0;
10627
+ const highVersion = v1Higher ? v1 : v2;
10628
+ const lowVersion = v1Higher ? v2 : v1;
10629
+ const highHasPre = !!highVersion.prerelease.length;
10630
+ const prefix = highHasPre ? "pre" : "";
10631
+ if (v1.major !== v2.major) {
10632
+ return prefix + "major";
10633
+ }
10634
+ if (v1.minor !== v2.minor) {
10635
+ return prefix + "minor";
10636
+ }
10637
+ if (v1.patch !== v2.patch) {
10638
+ return prefix + "patch";
10639
+ }
10640
+ if (highHasPre) {
10641
+ return "prerelease";
10642
+ }
10643
+ if (lowVersion.patch) {
10644
+ return "patch";
10645
+ }
10646
+ if (lowVersion.minor) {
10647
+ return "minor";
10648
+ }
10649
+ return "major";
10662
10650
  };
10663
10651
  module2.exports = diff;
10664
10652
  }
@@ -10703,6 +10691,15 @@ var require_prerelease = __commonJS({
10703
10691
  }
10704
10692
  });
10705
10693
 
10694
+ // node_modules/semver/functions/compare.js
10695
+ var require_compare = __commonJS({
10696
+ "node_modules/semver/functions/compare.js"(exports2, module2) {
10697
+ var SemVer = require_semver();
10698
+ var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
10699
+ module2.exports = compare;
10700
+ }
10701
+ });
10702
+
10706
10703
  // node_modules/semver/functions/rcompare.js
10707
10704
  var require_rcompare = __commonJS({
10708
10705
  "node_modules/semver/functions/rcompare.js"(exports2, module2) {
@@ -10770,6 +10767,15 @@ var require_lt = __commonJS({
10770
10767
  }
10771
10768
  });
10772
10769
 
10770
+ // node_modules/semver/functions/eq.js
10771
+ var require_eq = __commonJS({
10772
+ "node_modules/semver/functions/eq.js"(exports2, module2) {
10773
+ var compare = require_compare();
10774
+ var eq = (a, b, loose) => compare(a, b, loose) === 0;
10775
+ module2.exports = eq;
10776
+ }
10777
+ });
10778
+
10773
10779
  // node_modules/semver/functions/neq.js
10774
10780
  var require_neq = __commonJS({
10775
10781
  "node_modules/semver/functions/neq.js"(exports2, module2) {
package/cdk.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "build": "npm run bundle",
3
+ "watch": {
4
+ "include": [
5
+ "src/**/*.ts",
6
+ "test/**/*.integ.ts"
7
+ ]
8
+ },
9
+ "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
10
+ }
package/lib/access.js CHANGED
@@ -56,7 +56,7 @@ class LambdaAccess {
56
56
  }
57
57
  }
58
58
  _a = JSII_RTTI_SYMBOL_1;
59
- LambdaAccess[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.LambdaAccess", version: "0.9.5" };
59
+ LambdaAccess[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.LambdaAccess", version: "0.9.7" };
60
60
  exports.LambdaAccess = LambdaAccess;
61
61
  /**
62
62
  * @internal
@@ -42,6 +42,6 @@ class RunnerImageBuilder extends common_1.RunnerImageBuilderBase {
42
42
  }
43
43
  }
44
44
  _a = JSII_RTTI_SYMBOL_1;
45
- RunnerImageBuilder[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.RunnerImageBuilder", version: "0.9.5" };
45
+ RunnerImageBuilder[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.RunnerImageBuilder", version: "0.9.7" };
46
46
  exports.RunnerImageBuilder = RunnerImageBuilder;
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltYWdlLWJ1aWxkZXJzL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwQztBQUUxQywyREFBd0U7QUFDeEUsMkNBQTBEO0FBQzFELHFDQUFtRztBQUNuRyxnREFBeUM7QUFFekM7Ozs7OztHQU1HO0FBQ0gsTUFBc0Isa0JBQW1CLFNBQVEsK0JBQXNCO0lBQ3JFOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN0RSxJQUFJLEtBQUssRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUM1Qyx5QkFBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsa0hBQWtILENBQUMsQ0FBQztTQUN0SjtRQUVELElBQUksS0FBSyxFQUFFLFdBQVcsS0FBSywrQkFBc0IsQ0FBQyxVQUFVLEVBQUU7WUFDNUQsT0FBTyxJQUFJLHVDQUEyQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDMUQ7YUFBTSxJQUFJLEtBQUssRUFBRSxXQUFXLEtBQUssK0JBQXNCLENBQUMsaUJBQWlCLEVBQUU7WUFDMUUsT0FBTyxJQUFJLHFEQUFpQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEU7UUFFRCxNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLFdBQUUsQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN0RCxPQUFPLElBQUksdUNBQTJCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMxRDthQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFFLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLHFEQUFpQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEU7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGO0lBQ0gsQ0FBQzs7OztBQXZCbUIsZ0RBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEF3c0ltYWdlQnVpbGRlclJ1bm5lckltYWdlQnVpbGRlciB9IGZyb20gJy4vYXdzLWltYWdlLWJ1aWxkZXInO1xuaW1wb3J0IHsgQ29kZUJ1aWxkUnVubmVySW1hZ2VCdWlsZGVyIH0gZnJvbSAnLi9jb2RlYnVpbGQnO1xuaW1wb3J0IHsgUnVubmVySW1hZ2VCdWlsZGVyQmFzZSwgUnVubmVySW1hZ2VCdWlsZGVyUHJvcHMsIFJ1bm5lckltYWdlQnVpbGRlclR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBPcyB9IGZyb20gJy4uL3Byb3ZpZGVycy9jb21tb24nO1xuXG4vKipcbiAqIEdpdEh1YiBSdW5uZXIgaW1hZ2UgYnVpbGRlci4gQnVpbGRzIGEgRG9ja2VyIGltYWdlIG9yIEFNSSB3aXRoIEdpdEh1YiBSdW5uZXIgYW5kIG90aGVyIHJlcXVpcmVtZW50cyBpbnN0YWxsZWQuXG4gKlxuICogSW1hZ2VzIGNhbiBiZSBjdXN0b21pemVkIGJlZm9yZSBwYXNzZWQgaW50byB0aGUgcHJvdmlkZXIgYnkgYWRkaW5nIG9yIHJlbW92aW5nIGNvbXBvbmVudHMgdG8gYmUgaW5zdGFsbGVkLlxuICpcbiAqIEltYWdlcyBhcmUgcmVidWlsdCBldmVyeSB3ZWVrIGJ5IGRlZmF1bHQgdG8gZW5zdXJlIHRoYXQgdGhlIGxhdGVzdCBzZWN1cml0eSBwYXRjaGVzIGFyZSBhcHBsaWVkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUnVubmVySW1hZ2VCdWlsZGVyIGV4dGVuZHMgUnVubmVySW1hZ2VCdWlsZGVyQmFzZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgaW1hZ2UgYnVpbGRlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcHJvcGVydGllcy4gVGhlIGltcGxlbWVudGF0aW9uIHdpbGwgZGlmZmVyIGJhc2VkIG9uIHRoZSBPUywgYXJjaGl0ZWN0dXJlLCBhbmQgcmVxdWVzdGVkIGJ1aWxkZXIgdHlwZS5cbiAgICovXG4gIHN0YXRpYyBuZXcoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBSdW5uZXJJbWFnZUJ1aWxkZXJQcm9wcyk6IFJ1bm5lckltYWdlQnVpbGRlciB7XG4gICAgaWYgKHByb3BzPy5jb21wb25lbnRzICYmIHByb3BzLnJ1bm5lclZlcnNpb24pIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHNjb3BlKS5hZGRXYXJuaW5nKCdydW5uZXJWZXJzaW9uIGlzIGlnbm9yZWQgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIFRoZSBydW5uZXIgdmVyc2lvbiB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIGNvbXBvbmVudHMuJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzPy5idWlsZGVyVHlwZSA9PT0gUnVubmVySW1hZ2VCdWlsZGVyVHlwZS5DT0RFX0JVSUxEKSB7XG4gICAgICByZXR1cm4gbmV3IENvZGVCdWlsZFJ1bm5lckltYWdlQnVpbGRlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB9IGVsc2UgaWYgKHByb3BzPy5idWlsZGVyVHlwZSA9PT0gUnVubmVySW1hZ2VCdWlsZGVyVHlwZS5BV1NfSU1BR0VfQlVJTERFUikge1xuICAgICAgcmV0dXJuIG5ldyBBd3NJbWFnZUJ1aWxkZXJSdW5uZXJJbWFnZUJ1aWxkZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3MgPSBwcm9wcz8ub3MgPz8gT3MuTElOVVhfVUJVTlRVO1xuICAgIGlmIChvcy5pcyhPcy5MSU5VWF9VQlVOVFUpIHx8IG9zLmlzKE9zLkxJTlVYX0FNQVpPTl8yKSkge1xuICAgICAgcmV0dXJuIG5ldyBDb2RlQnVpbGRSdW5uZXJJbWFnZUJ1aWxkZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfSBlbHNlIGlmIChvcy5pcyhPcy5XSU5ET1dTKSkge1xuICAgICAgcmV0dXJuIG5ldyBBd3NJbWFnZUJ1aWxkZXJSdW5uZXJJbWFnZUJ1aWxkZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgcnVubmVyIGltYWdlIGJ1aWxkZXIgaW1wbGVtZW50YXRpb24gZm9yICR7b3MubmFtZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -110,7 +110,6 @@ export declare class AwsImageBuilderRunnerImageBuilder extends RunnerImageBuilde
110
110
  private readonly logRemovalPolicy;
111
111
  private readonly vpc;
112
112
  private readonly securityGroups;
113
- private readonly repository;
114
113
  private readonly subnetSelection;
115
114
  private readonly rebuildInterval;
116
115
  private readonly boundComponents;
@@ -137,6 +136,7 @@ export declare class AwsImageBuilderRunnerImageBuilder extends RunnerImageBuilde
137
136
  bindAmi(): RunnerAmi;
138
137
  private amiCleaner;
139
138
  private bindComponents;
139
+ private reaper;
140
140
  }
141
141
  /**
142
142
  * @internal