@cloudsnorkel/cdk-github-runners 0.14.4 → 0.14.6

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 (50) hide show
  1. package/.jsii +236 -141
  2. package/API.md +105 -0
  3. package/README.md +1 -1
  4. package/assets/providers/lambda-runner.sh +2 -1
  5. package/assets/setup.lambda/index.html +9 -27
  6. package/lib/access.js +1 -1
  7. package/lib/delete-failed-runner.lambda.js +2 -3
  8. package/lib/idle-runner-repear.lambda.js +2 -3
  9. package/lib/image-builders/api.js +1 -1
  10. package/lib/image-builders/aws-image-builder/ami.js +3 -3
  11. package/lib/image-builders/aws-image-builder/builder.js +1 -1
  12. package/lib/image-builders/aws-image-builder/container.js +3 -3
  13. package/lib/image-builders/aws-image-builder/delete-resources.lambda.js +2 -3
  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/aws-image-builder/filter-failed-builds.lambda.js +2 -3
  19. package/lib/image-builders/aws-image-builder/versioner.lambda.js +3 -4
  20. package/lib/image-builders/aws-image-builder/workflow.js +3 -3
  21. package/lib/image-builders/build-image.lambda.js +2 -3
  22. package/lib/image-builders/codebuild-deprecated.js +1 -1
  23. package/lib/image-builders/common.js +3 -3
  24. package/lib/image-builders/components.js +5 -5
  25. package/lib/image-builders/static.js +1 -1
  26. package/lib/lambda-github.d.ts +2 -6
  27. package/lib/lambda-github.js +5 -6
  28. package/lib/lambda-helpers.js +5 -6
  29. package/lib/providers/ami-root-device.lambda.js +2 -3
  30. package/lib/providers/codebuild.d.ts +14 -0
  31. package/lib/providers/codebuild.js +10 -5
  32. package/lib/providers/common.d.ts +1 -1
  33. package/lib/providers/common.js +6 -6
  34. package/lib/providers/ec2.d.ts +14 -0
  35. package/lib/providers/ec2.js +11 -7
  36. package/lib/providers/ecs.d.ts +17 -0
  37. package/lib/providers/ecs.js +7 -2
  38. package/lib/providers/fargate.d.ts +14 -0
  39. package/lib/providers/fargate.js +13 -9
  40. package/lib/providers/lambda.d.ts +14 -0
  41. package/lib/providers/lambda.js +5 -3
  42. package/lib/providers/update-lambda.lambda.js +2 -3
  43. package/lib/runner.js +1 -1
  44. package/lib/secrets.js +1 -1
  45. package/lib/setup.lambda.js +2 -3
  46. package/lib/status.lambda.js +2 -3
  47. package/lib/token-retriever.lambda.js +2 -3
  48. package/lib/utils.js +4 -4
  49. package/lib/webhook-handler.lambda.js +3 -4
  50. package/package.json +27 -27
package/API.md CHANGED
@@ -5472,6 +5472,7 @@ const codeBuildRunnerProviderProps: CodeBuildRunnerProviderProps = { ... }
5472
5472
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
5473
5473
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.computeType">computeType</a></code> | <code>aws-cdk-lib.aws_codebuild.ComputeType</code> | The type of compute to use for this build. |
5474
5474
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.dockerInDocker">dockerInDocker</a></code> | <code>boolean</code> | Support building and running Docker images by enabling Docker-in-Docker (dind) and the required CodeBuild privileged mode. |
5475
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.group">group</a></code> | <code>string</code> | GitHub Actions runner group name. |
5475
5476
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | Runner image builder used to build Docker images containing GitHub Runner and all requirements. |
5476
5477
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.label">label</a></code> | <code>string</code> | GitHub Actions label used for this provider. |
5477
5478
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
@@ -5543,6 +5544,26 @@ speed up provisioning of CodeBuild runners. If you don't intend on running or bu
5543
5544
 
5544
5545
  ---
5545
5546
 
5547
+ ##### `group`<sup>Optional</sup> <a name="group" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.group"></a>
5548
+
5549
+ ```typescript
5550
+ public readonly group: string;
5551
+ ```
5552
+
5553
+ - *Type:* string
5554
+ - *Default:* undefined
5555
+
5556
+ GitHub Actions runner group name.
5557
+
5558
+ If specified, the runner will be registered with this group name. Setting a runner group can help managing access to self-hosted runners. It
5559
+ requires a paid GitHub account.
5560
+
5561
+ The group must exist or the runner will not start.
5562
+
5563
+ Users will still be able to trigger this runner with the correct labels. But the runner will only be able to run jobs from repos allowed to use the group.
5564
+
5565
+ ---
5566
+
5546
5567
  ##### `imageBuilder`<sup>Optional</sup> <a name="imageBuilder" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.imageBuilder"></a>
5547
5568
 
5548
5569
  ```typescript
@@ -5884,6 +5905,7 @@ const ec2RunnerProviderProps: Ec2RunnerProviderProps = { ... }
5884
5905
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
5885
5906
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
5886
5907
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.amiBuilder">amiBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | *No description.* |
5908
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.group">group</a></code> | <code>string</code> | GitHub Actions runner group name. |
5887
5909
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | Runner image builder used to build AMI containing GitHub Runner and all requirements. |
5888
5910
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.instanceType">instanceType</a></code> | <code>aws-cdk-lib.aws_ec2.InstanceType</code> | Instance type for launched runner instances. |
5889
5911
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
@@ -5940,6 +5962,26 @@ public readonly amiBuilder: IRunnerImageBuilder;
5940
5962
 
5941
5963
  ---
5942
5964
 
5965
+ ##### `group`<sup>Optional</sup> <a name="group" id="@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.group"></a>
5966
+
5967
+ ```typescript
5968
+ public readonly group: string;
5969
+ ```
5970
+
5971
+ - *Type:* string
5972
+ - *Default:* undefined
5973
+
5974
+ GitHub Actions runner group name.
5975
+
5976
+ If specified, the runner will be registered with this group name. Setting a runner group can help managing access to self-hosted runners. It
5977
+ requires a paid GitHub account.
5978
+
5979
+ The group must exist or the runner will not start.
5980
+
5981
+ Users will still be able to trigger this runner with the correct labels. But the runner will only be able to run jobs from repos allowed to use the group.
5982
+
5983
+ ---
5984
+
5943
5985
  ##### `imageBuilder`<sup>Optional</sup> <a name="imageBuilder" id="@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.imageBuilder"></a>
5944
5986
 
5945
5987
  ```typescript
@@ -6134,6 +6176,7 @@ const ecsRunnerProviderProps: EcsRunnerProviderProps = { ... }
6134
6176
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.Cluster</code> | Existing ECS cluster to use. |
6135
6177
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.cpu">cpu</a></code> | <code>number</code> | The number of cpu units used by the task. |
6136
6178
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.dockerInDocker">dockerInDocker</a></code> | <code>boolean</code> | Support building and running Docker images by enabling Docker-in-Docker (dind) and the required CodeBuild privileged mode. |
6179
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.group">group</a></code> | <code>string</code> | GitHub Actions runner group name. |
6137
6180
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | Runner image builder used to build Docker images containing GitHub Runner and all requirements. |
6138
6181
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.instanceType">instanceType</a></code> | <code>aws-cdk-lib.aws_ec2.InstanceType</code> | Instance type of ECS cluster instances. |
6139
6182
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
@@ -6254,6 +6297,26 @@ speed up provisioning of CodeBuild runners. If you don't intend on running or bu
6254
6297
 
6255
6298
  ---
6256
6299
 
6300
+ ##### `group`<sup>Optional</sup> <a name="group" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.group"></a>
6301
+
6302
+ ```typescript
6303
+ public readonly group: string;
6304
+ ```
6305
+
6306
+ - *Type:* string
6307
+ - *Default:* undefined
6308
+
6309
+ GitHub Actions runner group name.
6310
+
6311
+ If specified, the runner will be registered with this group name. Setting a runner group can help managing access to self-hosted runners. It
6312
+ requires a paid GitHub account.
6313
+
6314
+ The group must exist or the runner will not start.
6315
+
6316
+ Users will still be able to trigger this runner with the correct labels. But the runner will only be able to run jobs from repos allowed to use the group.
6317
+
6318
+ ---
6319
+
6257
6320
  ##### `imageBuilder`<sup>Optional</sup> <a name="imageBuilder" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.imageBuilder"></a>
6258
6321
 
6259
6322
  ```typescript
@@ -6472,6 +6535,7 @@ const fargateRunnerProviderProps: FargateRunnerProviderProps = { ... }
6472
6535
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.Cluster</code> | Existing Fargate cluster to use. |
6473
6536
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.cpu">cpu</a></code> | <code>number</code> | The number of cpu units used by the task. |
6474
6537
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.ephemeralStorageGiB">ephemeralStorageGiB</a></code> | <code>number</code> | The amount (in GiB) of ephemeral storage to be allocated to the task. |
6538
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.group">group</a></code> | <code>string</code> | GitHub Actions runner group name. |
6475
6539
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | Runner image builder used to build Docker images containing GitHub Runner and all requirements. |
6476
6540
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.label">label</a></code> | <code>string</code> | GitHub Actions label used for this provider. |
6477
6541
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
@@ -6585,6 +6649,26 @@ NOTE: This parameter is only supported for tasks hosted on AWS Fargate using pla
6585
6649
 
6586
6650
  ---
6587
6651
 
6652
+ ##### `group`<sup>Optional</sup> <a name="group" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.group"></a>
6653
+
6654
+ ```typescript
6655
+ public readonly group: string;
6656
+ ```
6657
+
6658
+ - *Type:* string
6659
+ - *Default:* undefined
6660
+
6661
+ GitHub Actions runner group name.
6662
+
6663
+ If specified, the runner will be registered with this group name. Setting a runner group can help managing access to self-hosted runners. It
6664
+ requires a paid GitHub account.
6665
+
6666
+ The group must exist or the runner will not start.
6667
+
6668
+ Users will still be able to trigger this runner with the correct labels. But the runner will only be able to run jobs from repos allowed to use the group.
6669
+
6670
+ ---
6671
+
6588
6672
  ##### `imageBuilder`<sup>Optional</sup> <a name="imageBuilder" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.imageBuilder"></a>
6589
6673
 
6590
6674
  ```typescript
@@ -7230,6 +7314,7 @@ const lambdaRunnerProviderProps: LambdaRunnerProviderProps = { ... }
7230
7314
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
7231
7315
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
7232
7316
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.ephemeralStorageSize">ephemeralStorageSize</a></code> | <code>aws-cdk-lib.Size</code> | The size of the function’s /tmp directory in MiB. |
7317
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.group">group</a></code> | <code>string</code> | GitHub Actions runner group name. |
7233
7318
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | Runner image builder used to build Docker images containing GitHub Runner and all requirements. |
7234
7319
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.label">label</a></code> | <code>string</code> | GitHub Actions label used for this provider. |
7235
7320
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
@@ -7284,6 +7369,26 @@ The size of the function’s /tmp directory in MiB.
7284
7369
 
7285
7370
  ---
7286
7371
 
7372
+ ##### `group`<sup>Optional</sup> <a name="group" id="@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.group"></a>
7373
+
7374
+ ```typescript
7375
+ public readonly group: string;
7376
+ ```
7377
+
7378
+ - *Type:* string
7379
+ - *Default:* undefined
7380
+
7381
+ GitHub Actions runner group name.
7382
+
7383
+ If specified, the runner will be registered with this group name. Setting a runner group can help managing access to self-hosted runners. It
7384
+ requires a paid GitHub account.
7385
+
7386
+ The group must exist or the runner will not start.
7387
+
7388
+ Users will still be able to trigger this runner with the correct labels. But the runner will only be able to run jobs from repos allowed to use the group.
7389
+
7390
+ ---
7391
+
7287
7392
  ##### `imageBuilder`<sup>Optional</sup> <a name="imageBuilder" id="@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.imageBuilder"></a>
7288
7393
 
7289
7394
  ```typescript
package/README.md CHANGED
@@ -188,7 +188,7 @@ You can also create your own provider by implementing `IRunnerProvider`.
188
188
  5. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file
189
189
  6. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token
190
190
  7. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK
191
- 8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar
191
+ 8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, codebuild]` (or non-default labels you set in step 2)
192
192
  9. If the action is not successful, see [troubleshooting](#Troubleshooting)
193
193
 
194
194
  [![Demo](demo-thumbnail.jpg)](https://youtu.be/wlyv_3V8lIw)
@@ -16,6 +16,7 @@ RUNNER_TOKEN=$(echo "$1" | jq -r .token)
16
16
  RUNNER_NAME=$(echo "$1" | jq -r .runnerName)
17
17
  RUNNER_LABEL=$(echo "$1" | jq -r .label)
18
18
  REGISTRATION_URL=$(echo "$1" | jq -r .registrationUrl)
19
+ RUNNER_GROUP=$(echo "$1" | jq -r .group)
19
20
 
20
21
  # copy runner code (it needs a writable directory)
21
22
  cp -r /home/runner /tmp/
@@ -27,7 +28,7 @@ export HOME=/tmp/home
27
28
 
28
29
  # start runner
29
30
  if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_FLAGS=""; else RUNNER_FLAGS="--disableupdate"; fi
30
- ./config.sh --unattended --url "${REGISTRATION_URL}" --token "${RUNNER_TOKEN}" --ephemeral --work _work --labels "${RUNNER_LABEL},cdkghr:started:`date +%s`" --name "${RUNNER_NAME}" ${RUNNER_FLAGS}
31
+ ./config.sh --unattended --url "${REGISTRATION_URL}" --token "${RUNNER_TOKEN}" --ephemeral --work _work --labels "${RUNNER_LABEL},cdkghr:started:`date +%s`" --name "${RUNNER_NAME}" ${RUNNER_FLAGS} ${RUNNER_GROUP}
31
32
  echo Config done
32
33
  ./run.sh
33
34
  echo Run done