@cloudsnorkel/cdk-github-runners 0.14.12 → 0.14.13

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 (33) hide show
  1. package/.jsii +107 -42
  2. package/API.md +45 -0
  3. package/assets/delete-failed-runner.lambda/index.js +23 -1
  4. package/assets/idle-runner-repear.lambda/index.js +23 -1
  5. package/assets/image-builders/aws-image-builder/versioner.lambda/index.js +23 -1
  6. package/assets/setup.lambda/index.html +8 -8
  7. package/assets/status.lambda/index.js +23 -1
  8. package/assets/token-retriever.lambda/index.js +23 -1
  9. package/assets/webhook-handler.lambda/index.js +23 -1
  10. package/assets/webhook-redelivery.lambda/index.js +23 -1
  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.js +1 -1
  14. package/lib/image-builders/aws-image-builder/deprecated/ami.js +1 -1
  15. package/lib/image-builders/aws-image-builder/deprecated/container.js +1 -1
  16. package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
  17. package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
  18. package/lib/image-builders/codebuild-deprecated.js +3 -3
  19. package/lib/image-builders/codebuild.js +3 -3
  20. package/lib/image-builders/components.d.ts +4 -0
  21. package/lib/image-builders/components.js +40 -9
  22. package/lib/image-builders/static.js +1 -1
  23. package/lib/providers/codebuild.js +4 -4
  24. package/lib/providers/common.js +3 -3
  25. package/lib/providers/ec2.d.ts +1 -0
  26. package/lib/providers/ec2.js +5 -3
  27. package/lib/providers/ecs.d.ts +24 -0
  28. package/lib/providers/ecs.js +19 -7
  29. package/lib/providers/fargate.js +2 -2
  30. package/lib/providers/lambda.js +2 -2
  31. package/lib/runner.js +3 -3
  32. package/lib/secrets.js +1 -1
  33. package/package.json +18 -18
package/.jsii CHANGED
@@ -3834,7 +3834,7 @@
3834
3834
  "stability": "experimental"
3835
3835
  },
3836
3836
  "homepage": "https://github.com/CloudSnorkel/cdk-github-runners.git",
3837
- "jsiiVersion": "5.8.18 (build f5c30fc)",
3837
+ "jsiiVersion": "5.8.21 (build 0b7c0ba)",
3838
3838
  "keywords": [
3839
3839
  "aws",
3840
3840
  "aws-cdk",
@@ -6821,7 +6821,7 @@
6821
6821
  },
6822
6822
  "locationInModule": {
6823
6823
  "filename": "src/providers/ec2.ts",
6824
- "line": 380
6824
+ "line": 382
6825
6825
  },
6826
6826
  "parameters": [
6827
6827
  {
@@ -6848,7 +6848,7 @@
6848
6848
  "kind": "class",
6849
6849
  "locationInModule": {
6850
6850
  "filename": "src/providers/ec2.ts",
6851
- "line": 621
6851
+ "line": 623
6852
6852
  },
6853
6853
  "name": "Ec2Runner",
6854
6854
  "symbolId": "src/providers/ec2:Ec2Runner"
@@ -6868,7 +6868,7 @@
6868
6868
  },
6869
6869
  "locationInModule": {
6870
6870
  "filename": "src/providers/ec2.ts",
6871
- "line": 380
6871
+ "line": 382
6872
6872
  },
6873
6873
  "parameters": [
6874
6874
  {
@@ -6903,13 +6903,13 @@
6903
6903
  "methods": [
6904
6904
  {
6905
6905
  "docs": {
6906
- "remarks": "You can customize the OS, architecture, VPC, subnet, security groups, etc. by passing in props.\n\nYou can add components to the image builder by calling `imageBuilder.addComponent()`.\n\nThe default OS is Ubuntu running on x64 architecture.\n\nIncluded components:\n * `RunnerImageComponent.requiredPackages()`\n * `RunnerImageComponent.runnerUser()`\n * `RunnerImageComponent.git()`\n * `RunnerImageComponent.githubCli()`\n * `RunnerImageComponent.awsCli()`\n * `RunnerImageComponent.docker()`\n * `RunnerImageComponent.githubRunner()`",
6906
+ "remarks": "You can customize the OS, architecture, VPC, subnet, security groups, etc. by passing in props.\n\nYou can add components to the image builder by calling `imageBuilder.addComponent()`.\n\nThe default OS is Ubuntu running on x64 architecture.\n\nIncluded components:\n * `RunnerImageComponent.requiredPackages()`\n * `RunnerImageComponent.cloudWatchAgent()`\n * `RunnerImageComponent.runnerUser()`\n * `RunnerImageComponent.git()`\n * `RunnerImageComponent.githubCli()`\n * `RunnerImageComponent.awsCli()`\n * `RunnerImageComponent.docker()`\n * `RunnerImageComponent.githubRunner()`",
6907
6907
  "stability": "experimental",
6908
6908
  "summary": "Create new image builder that builds EC2 specific runner images."
6909
6909
  },
6910
6910
  "locationInModule": {
6911
6911
  "filename": "src/providers/ec2.ts",
6912
- "line": 327
6912
+ "line": 328
6913
6913
  },
6914
6914
  "name": "imageBuilder",
6915
6915
  "parameters": [
@@ -6948,7 +6948,7 @@
6948
6948
  },
6949
6949
  "locationInModule": {
6950
6950
  "filename": "src/providers/ec2.ts",
6951
- "line": 443
6951
+ "line": 445
6952
6952
  },
6953
6953
  "name": "getStepFunctionTask",
6954
6954
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -6977,7 +6977,7 @@
6977
6977
  },
6978
6978
  "locationInModule": {
6979
6979
  "filename": "src/providers/ec2.ts",
6980
- "line": 561
6980
+ "line": 563
6981
6981
  },
6982
6982
  "name": "grantStateMachine",
6983
6983
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7046,7 +7046,7 @@
7046
7046
  },
7047
7047
  "locationInModule": {
7048
7048
  "filename": "src/providers/ec2.ts",
7049
- "line": 591
7049
+ "line": 593
7050
7050
  },
7051
7051
  "name": "status",
7052
7052
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7075,7 +7075,7 @@
7075
7075
  "immutable": true,
7076
7076
  "locationInModule": {
7077
7077
  "filename": "src/providers/ec2.ts",
7078
- "line": 613
7078
+ "line": 615
7079
7079
  },
7080
7080
  "name": "connections",
7081
7081
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -7091,7 +7091,7 @@
7091
7091
  "immutable": true,
7092
7092
  "locationInModule": {
7093
7093
  "filename": "src/providers/ec2.ts",
7094
- "line": 353
7094
+ "line": 355
7095
7095
  },
7096
7096
  "name": "grantPrincipal",
7097
7097
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -7107,7 +7107,7 @@
7107
7107
  "immutable": true,
7108
7108
  "locationInModule": {
7109
7109
  "filename": "src/providers/ec2.ts",
7110
- "line": 348
7110
+ "line": 350
7111
7111
  },
7112
7112
  "name": "labels",
7113
7113
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7129,7 +7129,7 @@
7129
7129
  "immutable": true,
7130
7130
  "locationInModule": {
7131
7131
  "filename": "src/providers/ec2.ts",
7132
- "line": 360
7132
+ "line": 362
7133
7133
  },
7134
7134
  "name": "logGroup",
7135
7135
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7145,7 +7145,7 @@
7145
7145
  "immutable": true,
7146
7146
  "locationInModule": {
7147
7147
  "filename": "src/providers/ec2.ts",
7148
- "line": 362
7148
+ "line": 364
7149
7149
  },
7150
7150
  "name": "retryableErrors",
7151
7151
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7465,7 +7465,7 @@
7465
7465
  },
7466
7466
  "locationInModule": {
7467
7467
  "filename": "src/providers/ecs.ts",
7468
- "line": 350
7468
+ "line": 389
7469
7469
  },
7470
7470
  "parameters": [
7471
7471
  {
@@ -7495,7 +7495,7 @@
7495
7495
  "kind": "class",
7496
7496
  "locationInModule": {
7497
7497
  "filename": "src/providers/ecs.ts",
7498
- "line": 230
7498
+ "line": 259
7499
7499
  },
7500
7500
  "methods": [
7501
7501
  {
@@ -7506,7 +7506,7 @@
7506
7506
  },
7507
7507
  "locationInModule": {
7508
7508
  "filename": "src/providers/ecs.ts",
7509
- "line": 249
7509
+ "line": 278
7510
7510
  },
7511
7511
  "name": "imageBuilder",
7512
7512
  "parameters": [
@@ -7545,7 +7545,7 @@
7545
7545
  },
7546
7546
  "locationInModule": {
7547
7547
  "filename": "src/providers/ecs.ts",
7548
- "line": 571
7548
+ "line": 612
7549
7549
  },
7550
7550
  "name": "getStepFunctionTask",
7551
7551
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7574,7 +7574,7 @@
7574
7574
  },
7575
7575
  "locationInModule": {
7576
7576
  "filename": "src/providers/ecs.ts",
7577
- "line": 627
7577
+ "line": 670
7578
7578
  },
7579
7579
  "name": "grantStateMachine",
7580
7580
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7643,7 +7643,7 @@
7643
7643
  },
7644
7644
  "locationInModule": {
7645
7645
  "filename": "src/providers/ecs.ts",
7646
- "line": 630
7646
+ "line": 673
7647
7647
  },
7648
7648
  "name": "status",
7649
7649
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7672,7 +7672,7 @@
7672
7672
  "immutable": true,
7673
7673
  "locationInModule": {
7674
7674
  "filename": "src/providers/ecs.ts",
7675
- "line": 314
7675
+ "line": 343
7676
7676
  },
7677
7677
  "name": "connections",
7678
7678
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -7688,7 +7688,7 @@
7688
7688
  "immutable": true,
7689
7689
  "locationInModule": {
7690
7690
  "filename": "src/providers/ecs.ts",
7691
- "line": 309
7691
+ "line": 338
7692
7692
  },
7693
7693
  "name": "grantPrincipal",
7694
7694
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -7704,7 +7704,7 @@
7704
7704
  "immutable": true,
7705
7705
  "locationInModule": {
7706
7706
  "filename": "src/providers/ecs.ts",
7707
- "line": 289
7707
+ "line": 318
7708
7708
  },
7709
7709
  "name": "labels",
7710
7710
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7726,7 +7726,7 @@
7726
7726
  "immutable": true,
7727
7727
  "locationInModule": {
7728
7728
  "filename": "src/providers/ecs.ts",
7729
- "line": 326
7729
+ "line": 355
7730
7730
  },
7731
7731
  "name": "logGroup",
7732
7732
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7742,7 +7742,7 @@
7742
7742
  "immutable": true,
7743
7743
  "locationInModule": {
7744
7744
  "filename": "src/providers/ecs.ts",
7745
- "line": 343
7745
+ "line": 382
7746
7746
  },
7747
7747
  "name": "retryableErrors",
7748
7748
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -8025,6 +8025,54 @@
8025
8025
  "primitive": "number"
8026
8026
  }
8027
8027
  },
8028
+ {
8029
+ "abstract": true,
8030
+ "docs": {
8031
+ "default": "undefined (no placement constraints)",
8032
+ "remarks": "Example: [ecs.PlacementConstraint.memberOf('ecs-placement')]",
8033
+ "stability": "experimental",
8034
+ "summary": "ECS placement constraints to influence task placement."
8035
+ },
8036
+ "immutable": true,
8037
+ "locationInModule": {
8038
+ "filename": "src/providers/ecs.ts",
8039
+ "line": 210
8040
+ },
8041
+ "name": "placementConstraints",
8042
+ "optional": true,
8043
+ "type": {
8044
+ "collection": {
8045
+ "elementtype": {
8046
+ "fqn": "aws-cdk-lib.aws_ecs.PlacementConstraint"
8047
+ },
8048
+ "kind": "array"
8049
+ }
8050
+ }
8051
+ },
8052
+ {
8053
+ "abstract": true,
8054
+ "docs": {
8055
+ "default": "undefined (no placement strategies)",
8056
+ "remarks": "Example: [ecs.PlacementStrategy.packedByCpu()]",
8057
+ "stability": "experimental",
8058
+ "summary": "ECS placement strategies to influence task placement."
8059
+ },
8060
+ "immutable": true,
8061
+ "locationInModule": {
8062
+ "filename": "src/providers/ecs.ts",
8063
+ "line": 201
8064
+ },
8065
+ "name": "placementStrategies",
8066
+ "optional": true,
8067
+ "type": {
8068
+ "collection": {
8069
+ "elementtype": {
8070
+ "fqn": "aws-cdk-lib.aws_ecs.PlacementStrategy"
8071
+ },
8072
+ "kind": "array"
8073
+ }
8074
+ }
8075
+ },
8028
8076
  {
8029
8077
  "abstract": true,
8030
8078
  "docs": {
@@ -12926,7 +12974,7 @@
12926
12974
  },
12927
12975
  "locationInModule": {
12928
12976
  "filename": "src/image-builders/components.ts",
12929
- "line": 153
12977
+ "line": 181
12930
12978
  },
12931
12979
  "name": "awsCli",
12932
12980
  "returns": {
@@ -12936,6 +12984,23 @@
12936
12984
  },
12937
12985
  "static": true
12938
12986
  },
12987
+ {
12988
+ "docs": {
12989
+ "stability": "experimental",
12990
+ "summary": "A component to install CloudWatch Agent for the runner so we can send logs."
12991
+ },
12992
+ "locationInModule": {
12993
+ "filename": "src/image-builders/components.ts",
12994
+ "line": 107
12995
+ },
12996
+ "name": "cloudWatchAgent",
12997
+ "returns": {
12998
+ "type": {
12999
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImageComponent"
13000
+ }
13001
+ },
13002
+ "static": true
13003
+ },
12939
13004
  {
12940
13005
  "docs": {
12941
13006
  "remarks": "The order of operations is (1) assets (2) commands (3) docker commands.\n\nUse this to customize the image for the runner.\n\n**WARNING:** Docker commands are not guaranteed to be included before the next component",
@@ -12970,7 +13035,7 @@
12970
13035
  },
12971
13036
  "locationInModule": {
12972
13037
  "filename": "src/image-builders/components.ts",
12973
- "line": 371
13038
+ "line": 399
12974
13039
  },
12975
13040
  "name": "docker",
12976
13041
  "returns": {
@@ -12988,7 +13053,7 @@
12988
13053
  },
12989
13054
  "locationInModule": {
12990
13055
  "filename": "src/image-builders/components.ts",
12991
- "line": 447
13056
+ "line": 475
12992
13057
  },
12993
13058
  "name": "dockerInDocker",
12994
13059
  "returns": {
@@ -13006,7 +13071,7 @@
13006
13071
  },
13007
13072
  "locationInModule": {
13008
13073
  "filename": "src/image-builders/components.ts",
13009
- "line": 550
13074
+ "line": 578
13010
13075
  },
13011
13076
  "name": "environmentVariables",
13012
13077
  "parameters": [
@@ -13037,7 +13102,7 @@
13037
13102
  },
13038
13103
  "locationInModule": {
13039
13104
  "filename": "src/image-builders/components.ts",
13040
- "line": 457
13105
+ "line": 485
13041
13106
  },
13042
13107
  "name": "extraCertificates",
13043
13108
  "parameters": [
@@ -13074,7 +13139,7 @@
13074
13139
  },
13075
13140
  "locationInModule": {
13076
13141
  "filename": "src/image-builders/components.ts",
13077
- "line": 232
13142
+ "line": 260
13078
13143
  },
13079
13144
  "name": "git",
13080
13145
  "returns": {
@@ -13091,7 +13156,7 @@
13091
13156
  },
13092
13157
  "locationInModule": {
13093
13158
  "filename": "src/image-builders/components.ts",
13094
- "line": 189
13159
+ "line": 217
13095
13160
  },
13096
13161
  "name": "githubCli",
13097
13162
  "returns": {
@@ -13109,7 +13174,7 @@
13109
13174
  },
13110
13175
  "locationInModule": {
13111
13176
  "filename": "src/image-builders/components.ts",
13112
- "line": 276
13177
+ "line": 304
13113
13178
  },
13114
13179
  "name": "githubRunner",
13115
13180
  "parameters": [
@@ -13138,7 +13203,7 @@
13138
13203
  },
13139
13204
  "locationInModule": {
13140
13205
  "filename": "src/image-builders/components.ts",
13141
- "line": 507
13206
+ "line": 535
13142
13207
  },
13143
13208
  "name": "lambdaEntrypoint",
13144
13209
  "returns": {
@@ -13172,7 +13237,7 @@
13172
13237
  },
13173
13238
  "locationInModule": {
13174
13239
  "filename": "src/image-builders/components.ts",
13175
- "line": 122
13240
+ "line": 150
13176
13241
  },
13177
13242
  "name": "runnerUser",
13178
13243
  "returns": {
@@ -13190,7 +13255,7 @@
13190
13255
  },
13191
13256
  "locationInModule": {
13192
13257
  "filename": "src/image-builders/components.ts",
13193
- "line": 587
13258
+ "line": 615
13194
13259
  },
13195
13260
  "name": "getAssets",
13196
13261
  "parameters": [
@@ -13227,7 +13292,7 @@
13227
13292
  },
13228
13293
  "locationInModule": {
13229
13294
  "filename": "src/image-builders/components.ts",
13230
- "line": 582
13295
+ "line": 610
13231
13296
  },
13232
13297
  "name": "getCommands",
13233
13298
  "parameters": [
@@ -13263,7 +13328,7 @@
13263
13328
  },
13264
13329
  "locationInModule": {
13265
13330
  "filename": "src/image-builders/components.ts",
13266
- "line": 596
13331
+ "line": 624
13267
13332
  },
13268
13333
  "name": "getDockerCommands",
13269
13334
  "parameters": [
@@ -13298,7 +13363,7 @@
13298
13363
  },
13299
13364
  "locationInModule": {
13300
13365
  "filename": "src/image-builders/components.ts",
13301
- "line": 603
13366
+ "line": 631
13302
13367
  },
13303
13368
  "name": "shouldReboot",
13304
13369
  "parameters": [
@@ -13334,7 +13399,7 @@
13334
13399
  "immutable": true,
13335
13400
  "locationInModule": {
13336
13401
  "filename": "src/image-builders/components.ts",
13337
- "line": 577
13402
+ "line": 605
13338
13403
  },
13339
13404
  "name": "name",
13340
13405
  "type": {
@@ -14310,6 +14375,6 @@
14310
14375
  "symbolId": "src/image-builders/aws-image-builder/deprecated/windows-components:WindowsComponents"
14311
14376
  }
14312
14377
  },
14313
- "version": "0.14.12",
14314
- "fingerprint": "4Q26K9vmMv/z4Lxfc29HurJ3dtYOJqc2t2uq4/lMoKg="
14378
+ "version": "0.14.13",
14379
+ "fingerprint": "w17P0wg0NASTyXij/rw+r+u5nlJ0XZnmagSv7A1GSGQ="
14315
14380
  }
package/API.md CHANGED
@@ -1618,6 +1618,7 @@ The default OS is Ubuntu running on x64 architecture.
1618
1618
 
1619
1619
  Included components:
1620
1620
  * `RunnerImageComponent.requiredPackages()`
1621
+ * `RunnerImageComponent.cloudWatchAgent()`
1621
1622
  * `RunnerImageComponent.runnerUser()`
1622
1623
  * `RunnerImageComponent.git()`
1623
1624
  * `RunnerImageComponent.githubCli()`
@@ -1900,6 +1901,7 @@ The default OS is Ubuntu running on x64 architecture.
1900
1901
 
1901
1902
  Included components:
1902
1903
  * `RunnerImageComponent.requiredPackages()`
1904
+ * `RunnerImageComponent.cloudWatchAgent()`
1903
1905
  * `RunnerImageComponent.runnerUser()`
1904
1906
  * `RunnerImageComponent.git()`
1905
1907
  * `RunnerImageComponent.githubCli()`
@@ -6184,6 +6186,8 @@ const ecsRunnerProviderProps: EcsRunnerProviderProps = { ... }
6184
6186
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.memoryLimitMiB">memoryLimitMiB</a></code> | <code>number</code> | The amount (in MiB) of memory used by the task. |
6185
6187
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.memoryReservationMiB">memoryReservationMiB</a></code> | <code>number</code> | The soft limit (in MiB) of memory to reserve for the container. |
6186
6188
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.minInstances">minInstances</a></code> | <code>number</code> | The minimum number of instances to run in the cluster. |
6189
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.placementConstraints">placementConstraints</a></code> | <code>aws-cdk-lib.aws_ecs.PlacementConstraint[]</code> | ECS placement constraints to influence task placement. |
6190
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.placementStrategies">placementStrategies</a></code> | <code>aws-cdk-lib.aws_ecs.PlacementStrategy[]</code> | ECS placement strategies to influence task placement. |
6187
6191
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.securityGroups">securityGroups</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup[]</code> | Security groups to assign to the task. |
6188
6192
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.spot">spot</a></code> | <code>boolean</code> | Use spot capacity. |
6189
6193
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.spotMaxPrice">spotMaxPrice</a></code> | <code>string</code> | Maximum price for spot instances. |
@@ -6420,6 +6424,36 @@ Only used when creating a new cluster.
6420
6424
 
6421
6425
  ---
6422
6426
 
6427
+ ##### `placementConstraints`<sup>Optional</sup> <a name="placementConstraints" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.placementConstraints"></a>
6428
+
6429
+ ```typescript
6430
+ public readonly placementConstraints: PlacementConstraint[];
6431
+ ```
6432
+
6433
+ - *Type:* aws-cdk-lib.aws_ecs.PlacementConstraint[]
6434
+ - *Default:* undefined (no placement constraints)
6435
+
6436
+ ECS placement constraints to influence task placement.
6437
+
6438
+ Example: [ecs.PlacementConstraint.memberOf('ecs-placement')]
6439
+
6440
+ ---
6441
+
6442
+ ##### `placementStrategies`<sup>Optional</sup> <a name="placementStrategies" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.placementStrategies"></a>
6443
+
6444
+ ```typescript
6445
+ public readonly placementStrategies: PlacementStrategy[];
6446
+ ```
6447
+
6448
+ - *Type:* aws-cdk-lib.aws_ecs.PlacementStrategy[]
6449
+ - *Default:* undefined (no placement strategies)
6450
+
6451
+ ECS placement strategies to influence task placement.
6452
+
6453
+ Example: [ecs.PlacementStrategy.packedByCpu()]
6454
+
6455
+ ---
6456
+
6423
6457
  ##### `securityGroups`<sup>Optional</sup> <a name="securityGroups" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.securityGroups"></a>
6424
6458
 
6425
6459
  ```typescript
@@ -9286,6 +9320,7 @@ Returns true if the image builder should be rebooted after this component is ins
9286
9320
  | **Name** | **Description** |
9287
9321
  | --- | --- |
9288
9322
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageComponent.awsCli">awsCli</a></code> | A component to install the AWS CLI. |
9323
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageComponent.cloudWatchAgent">cloudWatchAgent</a></code> | A component to install CloudWatch Agent for the runner so we can send logs. |
9289
9324
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageComponent.custom">custom</a></code> | Define a custom component that can run commands in the image, copy files into the image, and run some Docker commands. |
9290
9325
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageComponent.docker">docker</a></code> | A component to install Docker. |
9291
9326
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageComponent.dockerInDocker">dockerInDocker</a></code> | A component to install Docker-in-Docker. |
@@ -9310,6 +9345,16 @@ RunnerImageComponent.awsCli()
9310
9345
 
9311
9346
  A component to install the AWS CLI.
9312
9347
 
9348
+ ##### `cloudWatchAgent` <a name="cloudWatchAgent" id="@cloudsnorkel/cdk-github-runners.RunnerImageComponent.cloudWatchAgent"></a>
9349
+
9350
+ ```typescript
9351
+ import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
9352
+
9353
+ RunnerImageComponent.cloudWatchAgent()
9354
+ ```
9355
+
9356
+ A component to install CloudWatch Agent for the runner so we can send logs.
9357
+
9313
9358
  ##### `custom` <a name="custom" id="@cloudsnorkel/cdk-github-runners.RunnerImageComponent.custom"></a>
9314
9359
 
9315
9360
  ```typescript
@@ -5798,6 +5798,9 @@ var require_identifiers = __commonJS({
5798
5798
  "use strict";
5799
5799
  var numeric = /^[0-9]+$/;
5800
5800
  var compareIdentifiers = (a, b) => {
5801
+ if (typeof a === "number" && typeof b === "number") {
5802
+ return a === b ? 0 : a < b ? -1 : 1;
5803
+ }
5801
5804
  const anum = numeric.test(a);
5802
5805
  const bnum = numeric.test(b);
5803
5806
  if (anum && bnum) {
@@ -5904,7 +5907,25 @@ var require_semver = __commonJS({
5904
5907
  if (!(other instanceof _SemVer)) {
5905
5908
  other = new _SemVer(other, this.options);
5906
5909
  }
5907
- return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
5910
+ if (this.major < other.major) {
5911
+ return -1;
5912
+ }
5913
+ if (this.major > other.major) {
5914
+ return 1;
5915
+ }
5916
+ if (this.minor < other.minor) {
5917
+ return -1;
5918
+ }
5919
+ if (this.minor > other.minor) {
5920
+ return 1;
5921
+ }
5922
+ if (this.patch < other.patch) {
5923
+ return -1;
5924
+ }
5925
+ if (this.patch > other.patch) {
5926
+ return 1;
5927
+ }
5928
+ return 0;
5908
5929
  }
5909
5930
  comparePre(other) {
5910
5931
  if (!(other instanceof _SemVer)) {
@@ -6665,6 +6686,7 @@ var require_range = __commonJS({
6665
6686
  return result;
6666
6687
  };
6667
6688
  var parseComparator = (comp, options) => {
6689
+ comp = comp.replace(re[t.BUILD], "");
6668
6690
  debug("comp", comp, options);
6669
6691
  comp = replaceCarets(comp, options);
6670
6692
  debug("caret", comp);
@@ -5798,6 +5798,9 @@ var require_identifiers = __commonJS({
5798
5798
  "use strict";
5799
5799
  var numeric = /^[0-9]+$/;
5800
5800
  var compareIdentifiers = (a, b) => {
5801
+ if (typeof a === "number" && typeof b === "number") {
5802
+ return a === b ? 0 : a < b ? -1 : 1;
5803
+ }
5801
5804
  const anum = numeric.test(a);
5802
5805
  const bnum = numeric.test(b);
5803
5806
  if (anum && bnum) {
@@ -5904,7 +5907,25 @@ var require_semver = __commonJS({
5904
5907
  if (!(other instanceof _SemVer)) {
5905
5908
  other = new _SemVer(other, this.options);
5906
5909
  }
5907
- return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
5910
+ if (this.major < other.major) {
5911
+ return -1;
5912
+ }
5913
+ if (this.major > other.major) {
5914
+ return 1;
5915
+ }
5916
+ if (this.minor < other.minor) {
5917
+ return -1;
5918
+ }
5919
+ if (this.minor > other.minor) {
5920
+ return 1;
5921
+ }
5922
+ if (this.patch < other.patch) {
5923
+ return -1;
5924
+ }
5925
+ if (this.patch > other.patch) {
5926
+ return 1;
5927
+ }
5928
+ return 0;
5908
5929
  }
5909
5930
  comparePre(other) {
5910
5931
  if (!(other instanceof _SemVer)) {
@@ -6665,6 +6686,7 @@ var require_range = __commonJS({
6665
6686
  return result;
6666
6687
  };
6667
6688
  var parseComparator = (comp, options) => {
6689
+ comp = comp.replace(re[t.BUILD], "");
6668
6690
  debug("comp", comp, options);
6669
6691
  comp = replaceCarets(comp, options);
6670
6692
  debug("caret", comp);
@@ -185,6 +185,9 @@ var require_identifiers = __commonJS({
185
185
  "use strict";
186
186
  var numeric = /^[0-9]+$/;
187
187
  var compareIdentifiers = (a, b) => {
188
+ if (typeof a === "number" && typeof b === "number") {
189
+ return a === b ? 0 : a < b ? -1 : 1;
190
+ }
188
191
  const anum = numeric.test(a);
189
192
  const bnum = numeric.test(b);
190
193
  if (anum && bnum) {
@@ -291,7 +294,25 @@ var require_semver = __commonJS({
291
294
  if (!(other instanceof _SemVer)) {
292
295
  other = new _SemVer(other, this.options);
293
296
  }
294
- return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
297
+ if (this.major < other.major) {
298
+ return -1;
299
+ }
300
+ if (this.major > other.major) {
301
+ return 1;
302
+ }
303
+ if (this.minor < other.minor) {
304
+ return -1;
305
+ }
306
+ if (this.minor > other.minor) {
307
+ return 1;
308
+ }
309
+ if (this.patch < other.patch) {
310
+ return -1;
311
+ }
312
+ if (this.patch > other.patch) {
313
+ return 1;
314
+ }
315
+ return 0;
295
316
  }
296
317
  comparePre(other) {
297
318
  if (!(other instanceof _SemVer)) {
@@ -1052,6 +1073,7 @@ var require_range = __commonJS({
1052
1073
  return result;
1053
1074
  };
1054
1075
  var parseComparator = (comp, options) => {
1076
+ comp = comp.replace(re[t.BUILD], "");
1055
1077
  debug("comp", comp, options);
1056
1078
  comp = replaceCarets(comp, options);
1057
1079
  debug("caret", comp);