@cloudsnorkel/cdk-github-runners 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +82 -82
- package/API.md +30 -30
- package/README.md +12 -7
- package/demo-thumbnail.jpg +0 -0
- package/lib/index.d.ts +0 -1
- package/lib/lambdas/delete-runner/index.js +10 -5
- package/lib/lambdas/setup/index.js +109 -46
- package/lib/lambdas/status/index.js +1 -0
- package/lib/lambdas/token-retriever/index.js +1 -0
- package/lib/lambdas/webhook-handler/index.js +1 -0
- package/lib/providers/codebuild.d.ts +1 -2
- package/lib/providers/codebuild.js +3 -2
- package/lib/providers/common.d.ts +0 -1
- package/lib/providers/common.js +1 -1
- package/lib/providers/fargate.d.ts +13 -1
- package/lib/providers/fargate.js +28 -4
- package/lib/providers/lambda.d.ts +0 -1
- package/lib/providers/lambda.js +1 -1
- package/lib/runner.d.ts +0 -13
- package/lib/runner.js +3 -21
- package/lib/secrets.d.ts +0 -1
- package/lib/secrets.js +1 -1
- package/lib/utils.d.ts +0 -1
- package/lib/webhook.d.ts +0 -1
- package/package.json +8 -8
- package/changelog.md +0 -7
- package/lib/index.d.ts.map +0 -1
- package/lib/providers/codebuild.d.ts.map +0 -1
- package/lib/providers/common.d.ts.map +0 -1
- package/lib/providers/fargate.d.ts.map +0 -1
- package/lib/providers/lambda.d.ts.map +0 -1
- package/lib/runner.d.ts.map +0 -1
- package/lib/secrets.d.ts.map +0 -1
- package/lib/utils.d.ts.map +0 -1
- package/lib/webhook.d.ts.map +0 -1
- package/releasetag.txt +0 -1
- package/version.txt +0 -1
package/.jsii
CHANGED
|
@@ -2971,7 +2971,7 @@
|
|
|
2971
2971
|
"stability": "experimental"
|
|
2972
2972
|
},
|
|
2973
2973
|
"homepage": "https://github.com/CloudSnorkel/cdk-github-runners.git",
|
|
2974
|
-
"jsiiVersion": "1.
|
|
2974
|
+
"jsiiVersion": "1.60.1 (build 2799dc8)",
|
|
2975
2975
|
"keywords": [
|
|
2976
2976
|
"aws",
|
|
2977
2977
|
"aws-cdk",
|
|
@@ -2995,7 +2995,7 @@
|
|
|
2995
2995
|
},
|
|
2996
2996
|
"name": "@cloudsnorkel/cdk-github-runners",
|
|
2997
2997
|
"readme": {
|
|
2998
|
-
"markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[][6]\n[][7]\n[][8]\n[][11]\n[][12]\n[](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[](https://github.com/CloudSnorkel/cdk-github-runners/blob/main/LICENSE)\n\nUse this CDK construct to create ephemeral [self-hosted GitHub runners][1] on-demand inside your AWS account.\n\n* Easy to configure GitHub integration with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n|
|
|
2998
|
+
"markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[][6]\n[][7]\n[][8]\n[][11]\n[][12]\n[](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[](https://github.com/CloudSnorkel/cdk-github-runners/blob/main/LICENSE)\n\nUse this CDK construct to create ephemeral [self-hosted GitHub runners][1] on-demand inside your AWS account.\n\n* Easy to configure GitHub integration with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n| | CodeBuild | Fargate | Lambda |\n|----------------|--------------------------|---------------|---------------|\n| **Time limit** | 8 hours | Unlimited | 15 minutes |\n| **vCPUs** | 2, 4, 8, or 72 | 0.25 to 4 | 1 to 6 |\n| **RAM** | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | 128mb to 10gb |\n| **Storage** | 50gb to 824gb | 20gb to 200gb | Up to 10gb |\n| **sudo** | ✔ | ✔ | ❌ |\n| **Docker** | ✔ | ❌ | ❌ |\n| **Spot** | ❌ | ✔ | ❌ |\n\nThe best provider to use mostly depends on your current infrastructure. When in doubt, CodeBuild is always a good choice. Execution history and logs are easy to view, and it has no restrictive limits unless you need to run for more than 8 hours.\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Confirm you're using CDK v2\n2. Install the appropriate package\n 1. [Python][6]\n ```\n pip install cloudsnorkel.cdk-github-runners\n ```\n 2. [TypeScript or JavaScript][7]\n ```\n npm i @cloudsnorkel/cdk-github-runners\n ```\n 3. [Java][8]\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n 4. [Go][11]\n ```\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n 5. [.NET][12]\n ```\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n3. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n4. Deploy your stack\n5. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n6. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n7. 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\n8. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n9. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n10. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[](https://youtu.be/wlyv_3V8lIw)\n\n## Customizing\n\nThe default providers configured by `GitHubRunners` are useful for testing but probably not too much for actual production work. They run in the default VPC or no VPC and have no added IAM permissions. You would usually want to configure the providers yourself.\n\nFor example:\n\n```typescript\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_ec2 as ec2, aws_s3 as s3 } from 'aws-cdk-lib';\nimport { GitHubRunners, CodeBuildRunner } from '@cloudsnorkel/cdk-github-runners';\n\nconst app = new cdk.App();\nconst stack = new cdk.Stack(\n app,\n 'github-runners-test',\n {\n env: {\n account: process.env.CDK_DEFAULT_ACCOUNT,\n region: process.env.CDK_DEFAULT_REGION,\n },\n },\n);\n\nconst vpc = ec2.Vpc.fromLookup(stack, 'vpc', { vpcId: 'vpc-1234567' });\nconst runnerSg = new ec2.SecurityGroup(stack, 'runner security group', { vpc: vpc });\nconst dbSg = ec2.SecurityGroup.fromSecurityGroupId(stack, 'database security group', 'sg-1234567');\nconst bucket = new s3.Bucket(stack, 'runner bucket');\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunner(\n stack, 'codebuild runner',\n {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\n },\n);\n// grant some permissions to the provider\nbucket.grantReadWrite(myProvider);\ndbSg.connections.allowFrom(runnerSg, ec2.Port.tcp(3306), 'allow runners to connect to MySQL database');\n\n// create the runner infrastructure\nnew GitHubRunners(\n stack,\n 'runners',\n {\n providers: [myProvider],\n }\n);\n\napp.synth();\n```\n\n## Architecture\n\n\n\n## Troubleshooting\n\n1. Always start with the status function, make sure no errors are reported, and confirm all status codes are OK\n2. Confirm the webhook Lambda was called by visiting the URL in `troubleshooting.webhookHandlerUrl` from `status.json`\n 1. If it's not called or logs errors, confirm the webhook settings on the GitHub side\n 2. If you see too many errors, make sure you're only sending `workflow_job` events\n3. When using GitHub app, make sure there are active installation in `github.auth.app.installations`\n4. Check execution details of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`\n 1. Use the details tab to find the specific execution of the provider (Lambda, CodeBuild, Fargate, etc.)\n 2. Every step function execution should be successful, even if the runner action inside it failed\n\n## Other Options\n\n1. [philips-labs/terraform-aws-github-runner][3] if you're using Terraform\n2. [actions-runner-controller/actions-runner-controller][4] if you're using Kubernetes\n\n\n[1]: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners\n[2]: https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions\n[3]: https://github.com/philips-labs/terraform-aws-github-runner\n[4]: https://github.com/actions-runner-controller/actions-runner-controller\n[5]: https://github.com/actions/runner\n[6]: https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners\n[7]: https://pypi.org/project/cloudsnorkel.cdk-github-runners\n[8]: https://search.maven.org/search?q=g:%22com.cloudsnorkel%22%20AND%20a:%22cdk.github.runners%22\n[9]: https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps\n[10]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token\n[11]: https://pkg.go.dev/github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n[12]: https://www.nuget.org/packages/CloudSnorkel.Cdk.Github.Runners/\n[13]: https://constructs.dev/packages/@cloudsnorkel/cdk-github-runners/\n[14]: https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling"
|
|
2999
2999
|
},
|
|
3000
3000
|
"repository": {
|
|
3001
3001
|
"type": "git",
|
|
@@ -3041,7 +3041,7 @@
|
|
|
3041
3041
|
},
|
|
3042
3042
|
"locationInModule": {
|
|
3043
3043
|
"filename": "src/providers/codebuild.ts",
|
|
3044
|
-
"line":
|
|
3044
|
+
"line": 98
|
|
3045
3045
|
},
|
|
3046
3046
|
"parameters": [
|
|
3047
3047
|
{
|
|
@@ -3070,7 +3070,7 @@
|
|
|
3070
3070
|
"kind": "class",
|
|
3071
3071
|
"locationInModule": {
|
|
3072
3072
|
"filename": "src/providers/codebuild.ts",
|
|
3073
|
-
"line":
|
|
3073
|
+
"line": 72
|
|
3074
3074
|
},
|
|
3075
3075
|
"methods": [
|
|
3076
3076
|
{
|
|
@@ -3081,7 +3081,7 @@
|
|
|
3081
3081
|
},
|
|
3082
3082
|
"locationInModule": {
|
|
3083
3083
|
"filename": "src/providers/codebuild.ts",
|
|
3084
|
-
"line":
|
|
3084
|
+
"line": 177
|
|
3085
3085
|
},
|
|
3086
3086
|
"name": "getStepFunctionTask",
|
|
3087
3087
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -3113,7 +3113,7 @@
|
|
|
3113
3113
|
"immutable": true,
|
|
3114
3114
|
"locationInModule": {
|
|
3115
3115
|
"filename": "src/providers/codebuild.ts",
|
|
3116
|
-
"line":
|
|
3116
|
+
"line": 217
|
|
3117
3117
|
},
|
|
3118
3118
|
"name": "connections",
|
|
3119
3119
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -3129,7 +3129,7 @@
|
|
|
3129
3129
|
"immutable": true,
|
|
3130
3130
|
"locationInModule": {
|
|
3131
3131
|
"filename": "src/providers/codebuild.ts",
|
|
3132
|
-
"line":
|
|
3132
|
+
"line": 96
|
|
3133
3133
|
},
|
|
3134
3134
|
"name": "grantPrincipal",
|
|
3135
3135
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -3145,7 +3145,7 @@
|
|
|
3145
3145
|
"immutable": true,
|
|
3146
3146
|
"locationInModule": {
|
|
3147
3147
|
"filename": "src/providers/codebuild.ts",
|
|
3148
|
-
"line":
|
|
3148
|
+
"line": 81
|
|
3149
3149
|
},
|
|
3150
3150
|
"name": "label",
|
|
3151
3151
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -3161,7 +3161,7 @@
|
|
|
3161
3161
|
"immutable": true,
|
|
3162
3162
|
"locationInModule": {
|
|
3163
3163
|
"filename": "src/providers/codebuild.ts",
|
|
3164
|
-
"line":
|
|
3164
|
+
"line": 76
|
|
3165
3165
|
},
|
|
3166
3166
|
"name": "project",
|
|
3167
3167
|
"type": {
|
|
@@ -3176,7 +3176,7 @@
|
|
|
3176
3176
|
"immutable": true,
|
|
3177
3177
|
"locationInModule": {
|
|
3178
3178
|
"filename": "src/providers/codebuild.ts",
|
|
3179
|
-
"line":
|
|
3179
|
+
"line": 91
|
|
3180
3180
|
},
|
|
3181
3181
|
"name": "securityGroup",
|
|
3182
3182
|
"optional": true,
|
|
@@ -3193,7 +3193,7 @@
|
|
|
3193
3193
|
"immutable": true,
|
|
3194
3194
|
"locationInModule": {
|
|
3195
3195
|
"filename": "src/providers/codebuild.ts",
|
|
3196
|
-
"line":
|
|
3196
|
+
"line": 86
|
|
3197
3197
|
},
|
|
3198
3198
|
"name": "vpc",
|
|
3199
3199
|
"optional": true,
|
|
@@ -3218,7 +3218,7 @@
|
|
|
3218
3218
|
"kind": "interface",
|
|
3219
3219
|
"locationInModule": {
|
|
3220
3220
|
"filename": "src/providers/codebuild.ts",
|
|
3221
|
-
"line":
|
|
3221
|
+
"line": 18
|
|
3222
3222
|
},
|
|
3223
3223
|
"name": "CodeBuildRunnerProps",
|
|
3224
3224
|
"properties": [
|
|
@@ -3233,7 +3233,7 @@
|
|
|
3233
3233
|
"immutable": true,
|
|
3234
3234
|
"locationInModule": {
|
|
3235
3235
|
"filename": "src/providers/codebuild.ts",
|
|
3236
|
-
"line":
|
|
3236
|
+
"line": 53
|
|
3237
3237
|
},
|
|
3238
3238
|
"name": "computeType",
|
|
3239
3239
|
"optional": true,
|
|
@@ -3251,7 +3251,7 @@
|
|
|
3251
3251
|
"immutable": true,
|
|
3252
3252
|
"locationInModule": {
|
|
3253
3253
|
"filename": "src/providers/codebuild.ts",
|
|
3254
|
-
"line":
|
|
3254
|
+
"line": 24
|
|
3255
3255
|
},
|
|
3256
3256
|
"name": "label",
|
|
3257
3257
|
"optional": true,
|
|
@@ -3269,7 +3269,7 @@
|
|
|
3269
3269
|
"immutable": true,
|
|
3270
3270
|
"locationInModule": {
|
|
3271
3271
|
"filename": "src/providers/codebuild.ts",
|
|
3272
|
-
"line":
|
|
3272
|
+
"line": 38
|
|
3273
3273
|
},
|
|
3274
3274
|
"name": "securityGroup",
|
|
3275
3275
|
"optional": true,
|
|
@@ -3287,7 +3287,7 @@
|
|
|
3287
3287
|
"immutable": true,
|
|
3288
3288
|
"locationInModule": {
|
|
3289
3289
|
"filename": "src/providers/codebuild.ts",
|
|
3290
|
-
"line":
|
|
3290
|
+
"line": 45
|
|
3291
3291
|
},
|
|
3292
3292
|
"name": "subnetSelection",
|
|
3293
3293
|
"optional": true,
|
|
@@ -3306,7 +3306,7 @@
|
|
|
3306
3306
|
"immutable": true,
|
|
3307
3307
|
"locationInModule": {
|
|
3308
3308
|
"filename": "src/providers/codebuild.ts",
|
|
3309
|
-
"line":
|
|
3309
|
+
"line": 62
|
|
3310
3310
|
},
|
|
3311
3311
|
"name": "timeout",
|
|
3312
3312
|
"optional": true,
|
|
@@ -3324,7 +3324,7 @@
|
|
|
3324
3324
|
"immutable": true,
|
|
3325
3325
|
"locationInModule": {
|
|
3326
3326
|
"filename": "src/providers/codebuild.ts",
|
|
3327
|
-
"line":
|
|
3327
|
+
"line": 31
|
|
3328
3328
|
},
|
|
3329
3329
|
"name": "vpc",
|
|
3330
3330
|
"optional": true,
|
|
@@ -3350,7 +3350,7 @@
|
|
|
3350
3350
|
},
|
|
3351
3351
|
"locationInModule": {
|
|
3352
3352
|
"filename": "src/providers/fargate.ts",
|
|
3353
|
-
"line":
|
|
3353
|
+
"line": 193
|
|
3354
3354
|
},
|
|
3355
3355
|
"parameters": [
|
|
3356
3356
|
{
|
|
@@ -3379,7 +3379,7 @@
|
|
|
3379
3379
|
"kind": "class",
|
|
3380
3380
|
"locationInModule": {
|
|
3381
3381
|
"filename": "src/providers/fargate.ts",
|
|
3382
|
-
"line":
|
|
3382
|
+
"line": 142
|
|
3383
3383
|
},
|
|
3384
3384
|
"methods": [
|
|
3385
3385
|
{
|
|
@@ -3390,7 +3390,7 @@
|
|
|
3390
3390
|
},
|
|
3391
3391
|
"locationInModule": {
|
|
3392
3392
|
"filename": "src/providers/fargate.ts",
|
|
3393
|
-
"line":
|
|
3393
|
+
"line": 251
|
|
3394
3394
|
},
|
|
3395
3395
|
"name": "getStepFunctionTask",
|
|
3396
3396
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -3422,7 +3422,7 @@
|
|
|
3422
3422
|
"immutable": true,
|
|
3423
3423
|
"locationInModule": {
|
|
3424
3424
|
"filename": "src/providers/fargate.ts",
|
|
3425
|
-
"line":
|
|
3425
|
+
"line": 176
|
|
3426
3426
|
},
|
|
3427
3427
|
"name": "assignPublicIp",
|
|
3428
3428
|
"type": {
|
|
@@ -3437,7 +3437,7 @@
|
|
|
3437
3437
|
"immutable": true,
|
|
3438
3438
|
"locationInModule": {
|
|
3439
3439
|
"filename": "src/providers/fargate.ts",
|
|
3440
|
-
"line":
|
|
3440
|
+
"line": 146
|
|
3441
3441
|
},
|
|
3442
3442
|
"name": "cluster",
|
|
3443
3443
|
"type": {
|
|
@@ -3452,7 +3452,7 @@
|
|
|
3452
3452
|
"immutable": true,
|
|
3453
3453
|
"locationInModule": {
|
|
3454
3454
|
"filename": "src/providers/fargate.ts",
|
|
3455
|
-
"line":
|
|
3455
|
+
"line": 186
|
|
3456
3456
|
},
|
|
3457
3457
|
"name": "connections",
|
|
3458
3458
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -3468,7 +3468,7 @@
|
|
|
3468
3468
|
"immutable": true,
|
|
3469
3469
|
"locationInModule": {
|
|
3470
3470
|
"filename": "src/providers/fargate.ts",
|
|
3471
|
-
"line":
|
|
3471
|
+
"line": 156
|
|
3472
3472
|
},
|
|
3473
3473
|
"name": "container",
|
|
3474
3474
|
"type": {
|
|
@@ -3483,7 +3483,7 @@
|
|
|
3483
3483
|
"immutable": true,
|
|
3484
3484
|
"locationInModule": {
|
|
3485
3485
|
"filename": "src/providers/fargate.ts",
|
|
3486
|
-
"line":
|
|
3486
|
+
"line": 181
|
|
3487
3487
|
},
|
|
3488
3488
|
"name": "grantPrincipal",
|
|
3489
3489
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -3499,7 +3499,7 @@
|
|
|
3499
3499
|
"immutable": true,
|
|
3500
3500
|
"locationInModule": {
|
|
3501
3501
|
"filename": "src/providers/fargate.ts",
|
|
3502
|
-
"line":
|
|
3502
|
+
"line": 161
|
|
3503
3503
|
},
|
|
3504
3504
|
"name": "label",
|
|
3505
3505
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -3507,6 +3507,21 @@
|
|
|
3507
3507
|
"primitive": "string"
|
|
3508
3508
|
}
|
|
3509
3509
|
},
|
|
3510
|
+
{
|
|
3511
|
+
"docs": {
|
|
3512
|
+
"stability": "experimental",
|
|
3513
|
+
"summary": "Use spot pricing for Fargate tasks."
|
|
3514
|
+
},
|
|
3515
|
+
"immutable": true,
|
|
3516
|
+
"locationInModule": {
|
|
3517
|
+
"filename": "src/providers/fargate.ts",
|
|
3518
|
+
"line": 191
|
|
3519
|
+
},
|
|
3520
|
+
"name": "spot",
|
|
3521
|
+
"type": {
|
|
3522
|
+
"primitive": "boolean"
|
|
3523
|
+
}
|
|
3524
|
+
},
|
|
3510
3525
|
{
|
|
3511
3526
|
"docs": {
|
|
3512
3527
|
"stability": "experimental",
|
|
@@ -3515,7 +3530,7 @@
|
|
|
3515
3530
|
"immutable": true,
|
|
3516
3531
|
"locationInModule": {
|
|
3517
3532
|
"filename": "src/providers/fargate.ts",
|
|
3518
|
-
"line":
|
|
3533
|
+
"line": 151
|
|
3519
3534
|
},
|
|
3520
3535
|
"name": "task",
|
|
3521
3536
|
"type": {
|
|
@@ -3530,7 +3545,7 @@
|
|
|
3530
3545
|
"immutable": true,
|
|
3531
3546
|
"locationInModule": {
|
|
3532
3547
|
"filename": "src/providers/fargate.ts",
|
|
3533
|
-
"line":
|
|
3548
|
+
"line": 171
|
|
3534
3549
|
},
|
|
3535
3550
|
"name": "securityGroup",
|
|
3536
3551
|
"optional": true,
|
|
@@ -3547,7 +3562,7 @@
|
|
|
3547
3562
|
"immutable": true,
|
|
3548
3563
|
"locationInModule": {
|
|
3549
3564
|
"filename": "src/providers/fargate.ts",
|
|
3550
|
-
"line":
|
|
3565
|
+
"line": 166
|
|
3551
3566
|
},
|
|
3552
3567
|
"name": "vpc",
|
|
3553
3568
|
"optional": true,
|
|
@@ -3573,7 +3588,7 @@
|
|
|
3573
3588
|
"kind": "interface",
|
|
3574
3589
|
"locationInModule": {
|
|
3575
3590
|
"filename": "src/providers/fargate.ts",
|
|
3576
|
-
"line":
|
|
3591
|
+
"line": 18
|
|
3577
3592
|
},
|
|
3578
3593
|
"name": "FargateRunnerProps",
|
|
3579
3594
|
"properties": [
|
|
@@ -3588,7 +3603,7 @@
|
|
|
3588
3603
|
"immutable": true,
|
|
3589
3604
|
"locationInModule": {
|
|
3590
3605
|
"filename": "src/providers/fargate.ts",
|
|
3591
|
-
"line":
|
|
3606
|
+
"line": 54
|
|
3592
3607
|
},
|
|
3593
3608
|
"name": "assignPublicIp",
|
|
3594
3609
|
"optional": true,
|
|
@@ -3606,7 +3621,7 @@
|
|
|
3606
3621
|
"immutable": true,
|
|
3607
3622
|
"locationInModule": {
|
|
3608
3623
|
"filename": "src/providers/fargate.ts",
|
|
3609
|
-
"line":
|
|
3624
|
+
"line": 45
|
|
3610
3625
|
},
|
|
3611
3626
|
"name": "cluster",
|
|
3612
3627
|
"optional": true,
|
|
@@ -3625,7 +3640,7 @@
|
|
|
3625
3640
|
"immutable": true,
|
|
3626
3641
|
"locationInModule": {
|
|
3627
3642
|
"filename": "src/providers/fargate.ts",
|
|
3628
|
-
"line":
|
|
3643
|
+
"line": 73
|
|
3629
3644
|
},
|
|
3630
3645
|
"name": "cpu",
|
|
3631
3646
|
"optional": true,
|
|
@@ -3644,7 +3659,7 @@
|
|
|
3644
3659
|
"immutable": true,
|
|
3645
3660
|
"locationInModule": {
|
|
3646
3661
|
"filename": "src/providers/fargate.ts",
|
|
3647
|
-
"line":
|
|
3662
|
+
"line": 100
|
|
3648
3663
|
},
|
|
3649
3664
|
"name": "ephemeralStorageGiB",
|
|
3650
3665
|
"optional": true,
|
|
@@ -3662,7 +3677,7 @@
|
|
|
3662
3677
|
"immutable": true,
|
|
3663
3678
|
"locationInModule": {
|
|
3664
3679
|
"filename": "src/providers/fargate.ts",
|
|
3665
|
-
"line":
|
|
3680
|
+
"line": 24
|
|
3666
3681
|
},
|
|
3667
3682
|
"name": "label",
|
|
3668
3683
|
"optional": true,
|
|
@@ -3681,7 +3696,7 @@
|
|
|
3681
3696
|
"immutable": true,
|
|
3682
3697
|
"locationInModule": {
|
|
3683
3698
|
"filename": "src/providers/fargate.ts",
|
|
3684
|
-
"line":
|
|
3699
|
+
"line": 91
|
|
3685
3700
|
},
|
|
3686
3701
|
"name": "memoryLimitMiB",
|
|
3687
3702
|
"optional": true,
|
|
@@ -3699,7 +3714,7 @@
|
|
|
3699
3714
|
"immutable": true,
|
|
3700
3715
|
"locationInModule": {
|
|
3701
3716
|
"filename": "src/providers/fargate.ts",
|
|
3702
|
-
"line":
|
|
3717
|
+
"line": 38
|
|
3703
3718
|
},
|
|
3704
3719
|
"name": "securityGroup",
|
|
3705
3720
|
"optional": true,
|
|
@@ -3707,6 +3722,25 @@
|
|
|
3707
3722
|
"fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
|
|
3708
3723
|
}
|
|
3709
3724
|
},
|
|
3725
|
+
{
|
|
3726
|
+
"abstract": true,
|
|
3727
|
+
"docs": {
|
|
3728
|
+
"default": "false",
|
|
3729
|
+
"remarks": "* Runners may fail to start due to missing capacity.\n* Runners might be stopped prematurely with spot pricing.",
|
|
3730
|
+
"stability": "experimental",
|
|
3731
|
+
"summary": "Use Fargate spot capacity provider to save money."
|
|
3732
|
+
},
|
|
3733
|
+
"immutable": true,
|
|
3734
|
+
"locationInModule": {
|
|
3735
|
+
"filename": "src/providers/fargate.ts",
|
|
3736
|
+
"line": 110
|
|
3737
|
+
},
|
|
3738
|
+
"name": "spot",
|
|
3739
|
+
"optional": true,
|
|
3740
|
+
"type": {
|
|
3741
|
+
"primitive": "boolean"
|
|
3742
|
+
}
|
|
3743
|
+
},
|
|
3710
3744
|
{
|
|
3711
3745
|
"abstract": true,
|
|
3712
3746
|
"docs": {
|
|
@@ -3717,7 +3751,7 @@
|
|
|
3717
3751
|
"immutable": true,
|
|
3718
3752
|
"locationInModule": {
|
|
3719
3753
|
"filename": "src/providers/fargate.ts",
|
|
3720
|
-
"line":
|
|
3754
|
+
"line": 31
|
|
3721
3755
|
},
|
|
3722
3756
|
"name": "vpc",
|
|
3723
3757
|
"optional": true,
|
|
@@ -3732,7 +3766,7 @@
|
|
|
3732
3766
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
3733
3767
|
"base": "constructs.Construct",
|
|
3734
3768
|
"docs": {
|
|
3735
|
-
"remarks": "It creates a webhook, secrets, and a step function to orchestrate all runs. Secrets are not automatically filled. See README.md for instructions on how to setup GitHub integration.\n\nBy default, this will create a runner provider of each available type with the defaults. This is good enough for the initial setup stage when you just want to get GitHub integration working.\n\n```typescript\nnew GitHubRunners(stack, 'runners', {});\n```\n\nUsually you'd want to configure the runner providers so the runners can run in a certain VPC or have certain permissions.\n\n```typescript\nconst vpc = ec2.Vpc.fromLookup(stack, 'vpc', { vpcId: 'vpc-1234567' });\nconst runnerSg = new ec2.SecurityGroup(stack, 'runner security group', { vpc: vpc });\nconst dbSg = ec2.SecurityGroup.fromSecurityGroupId(stack, 'database security group', 'sg-1234567');\nconst bucket = new s3.Bucket(stack, 'runner bucket');\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunner(\n stack, 'codebuild runner',\n {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\n },\n);\n// grant some permissions to the provider\nbucket.grantReadWrite(myProvider);\ndbSg.connections.allowFrom(runnerSg, ec2.Port.tcp(3306), 'allow runners to connect to MySQL database');\n\n// create the runner infrastructure\nnew GitHubRunners(\n stack,\n 'runners',\n {\n providers: [myProvider],\n
|
|
3769
|
+
"remarks": "It creates a webhook, secrets, and a step function to orchestrate all runs. Secrets are not automatically filled. See README.md for instructions on how to setup GitHub integration.\n\nBy default, this will create a runner provider of each available type with the defaults. This is good enough for the initial setup stage when you just want to get GitHub integration working.\n\n```typescript\nnew GitHubRunners(stack, 'runners', {});\n```\n\nUsually you'd want to configure the runner providers so the runners can run in a certain VPC or have certain permissions.\n\n```typescript\nconst vpc = ec2.Vpc.fromLookup(stack, 'vpc', { vpcId: 'vpc-1234567' });\nconst runnerSg = new ec2.SecurityGroup(stack, 'runner security group', { vpc: vpc });\nconst dbSg = ec2.SecurityGroup.fromSecurityGroupId(stack, 'database security group', 'sg-1234567');\nconst bucket = new s3.Bucket(stack, 'runner bucket');\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunner(\n stack, 'codebuild runner',\n {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\n },\n);\n// grant some permissions to the provider\nbucket.grantReadWrite(myProvider);\ndbSg.connections.allowFrom(runnerSg, ec2.Port.tcp(3306), 'allow runners to connect to MySQL database');\n\n// create the runner infrastructure\nnew GitHubRunners(\n stack,\n 'runners',\n {\n providers: [myProvider],\n }\n);\n```",
|
|
3736
3770
|
"stability": "experimental",
|
|
3737
3771
|
"summary": "Create all the required infrastructure to provide self-hosted GitHub runners."
|
|
3738
3772
|
},
|
|
@@ -3743,7 +3777,7 @@
|
|
|
3743
3777
|
},
|
|
3744
3778
|
"locationInModule": {
|
|
3745
3779
|
"filename": "src/runner.ts",
|
|
3746
|
-
"line":
|
|
3780
|
+
"line": 81
|
|
3747
3781
|
},
|
|
3748
3782
|
"parameters": [
|
|
3749
3783
|
{
|
|
@@ -3769,25 +3803,10 @@
|
|
|
3769
3803
|
"kind": "class",
|
|
3770
3804
|
"locationInModule": {
|
|
3771
3805
|
"filename": "src/runner.ts",
|
|
3772
|
-
"line":
|
|
3806
|
+
"line": 65
|
|
3773
3807
|
},
|
|
3774
3808
|
"name": "GitHubRunners",
|
|
3775
3809
|
"properties": [
|
|
3776
|
-
{
|
|
3777
|
-
"docs": {
|
|
3778
|
-
"stability": "experimental",
|
|
3779
|
-
"summary": "Default provider as set by {@link GitHubRunnersProps.defaultProviderLabel}."
|
|
3780
|
-
},
|
|
3781
|
-
"immutable": true,
|
|
3782
|
-
"locationInModule": {
|
|
3783
|
-
"filename": "src/runner.ts",
|
|
3784
|
-
"line": 84
|
|
3785
|
-
},
|
|
3786
|
-
"name": "defaultProvider",
|
|
3787
|
-
"type": {
|
|
3788
|
-
"fqn": "@cloudsnorkel/cdk-github-runners.IRunnerProvider"
|
|
3789
|
-
}
|
|
3790
|
-
},
|
|
3791
3810
|
{
|
|
3792
3811
|
"docs": {
|
|
3793
3812
|
"stability": "experimental"
|
|
@@ -3795,7 +3814,7 @@
|
|
|
3795
3814
|
"immutable": true,
|
|
3796
3815
|
"locationInModule": {
|
|
3797
3816
|
"filename": "src/runner.ts",
|
|
3798
|
-
"line":
|
|
3817
|
+
"line": 81
|
|
3799
3818
|
},
|
|
3800
3819
|
"name": "props",
|
|
3801
3820
|
"type": {
|
|
@@ -3810,7 +3829,7 @@
|
|
|
3810
3829
|
"immutable": true,
|
|
3811
3830
|
"locationInModule": {
|
|
3812
3831
|
"filename": "src/runner.ts",
|
|
3813
|
-
"line":
|
|
3832
|
+
"line": 70
|
|
3814
3833
|
},
|
|
3815
3834
|
"name": "providers",
|
|
3816
3835
|
"type": {
|
|
@@ -3830,7 +3849,7 @@
|
|
|
3830
3849
|
"immutable": true,
|
|
3831
3850
|
"locationInModule": {
|
|
3832
3851
|
"filename": "src/runner.ts",
|
|
3833
|
-
"line":
|
|
3852
|
+
"line": 75
|
|
3834
3853
|
},
|
|
3835
3854
|
"name": "secrets",
|
|
3836
3855
|
"type": {
|
|
@@ -3855,25 +3874,6 @@
|
|
|
3855
3874
|
},
|
|
3856
3875
|
"name": "GitHubRunnersProps",
|
|
3857
3876
|
"properties": [
|
|
3858
|
-
{
|
|
3859
|
-
"abstract": true,
|
|
3860
|
-
"docs": {
|
|
3861
|
-
"default": "'codebuild'",
|
|
3862
|
-
"remarks": "A provider with that label must be configured.",
|
|
3863
|
-
"stability": "experimental",
|
|
3864
|
-
"summary": "Label of default provider in case the workflow job doesn't specify any known label."
|
|
3865
|
-
},
|
|
3866
|
-
"immutable": true,
|
|
3867
|
-
"locationInModule": {
|
|
3868
|
-
"filename": "src/runner.ts",
|
|
3869
|
-
"line": 23
|
|
3870
|
-
},
|
|
3871
|
-
"name": "defaultProviderLabel",
|
|
3872
|
-
"optional": true,
|
|
3873
|
-
"type": {
|
|
3874
|
-
"primitive": "string"
|
|
3875
|
-
}
|
|
3876
|
-
},
|
|
3877
3877
|
{
|
|
3878
3878
|
"abstract": true,
|
|
3879
3879
|
"docs": {
|
|
@@ -3885,7 +3885,7 @@
|
|
|
3885
3885
|
"immutable": true,
|
|
3886
3886
|
"locationInModule": {
|
|
3887
3887
|
"filename": "src/runner.ts",
|
|
3888
|
-
"line":
|
|
3888
|
+
"line": 22
|
|
3889
3889
|
},
|
|
3890
3890
|
"name": "providers",
|
|
3891
3891
|
"optional": true,
|
|
@@ -4689,6 +4689,6 @@
|
|
|
4689
4689
|
"symbolId": "src/secrets:Secrets"
|
|
4690
4690
|
}
|
|
4691
4691
|
},
|
|
4692
|
-
"version": "0.
|
|
4693
|
-
"fingerprint": "
|
|
4692
|
+
"version": "0.2.0",
|
|
4693
|
+
"fingerprint": "v+NQ0HXb/MqIb1CabazvNOGWELcQpAjFqi+9xq6QPnU="
|
|
4694
4694
|
}
|
package/API.md
CHANGED
|
@@ -322,6 +322,7 @@ Any object.
|
|
|
322
322
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | Container definition hosting the runner. |
|
|
323
323
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | Grant principal used to add permissions to the runner role. |
|
|
324
324
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.label">label</a></code> | <code>string</code> | Label associated with this provider. |
|
|
325
|
+
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.spot">spot</a></code> | <code>boolean</code> | Use spot pricing for Fargate tasks. |
|
|
325
326
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.task">task</a></code> | <code>aws-cdk-lib.aws_ecs.FargateTaskDefinition</code> | Fargate task hosting the runner. |
|
|
326
327
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup</code> | Security group attached to the task. |
|
|
327
328
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | VPC used for hosting the task. |
|
|
@@ -412,6 +413,18 @@ Label associated with this provider.
|
|
|
412
413
|
|
|
413
414
|
---
|
|
414
415
|
|
|
416
|
+
##### `spot`<sup>Required</sup> <a name="spot" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.spot"></a>
|
|
417
|
+
|
|
418
|
+
```typescript
|
|
419
|
+
public readonly spot: boolean;
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
- *Type:* boolean
|
|
423
|
+
|
|
424
|
+
Use spot pricing for Fargate tasks.
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
415
428
|
##### `task`<sup>Required</sup> <a name="task" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.task"></a>
|
|
416
429
|
|
|
417
430
|
```typescript
|
|
@@ -488,7 +501,6 @@ new GitHubRunners(
|
|
|
488
501
|
'runners',
|
|
489
502
|
{
|
|
490
503
|
providers: [myProvider],
|
|
491
|
-
defaultProviderLabel: 'my-codebuild',
|
|
492
504
|
}
|
|
493
505
|
);
|
|
494
506
|
```
|
|
@@ -574,7 +586,6 @@ Any object.
|
|
|
574
586
|
| **Name** | **Type** | **Description** |
|
|
575
587
|
| --- | --- | --- |
|
|
576
588
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunners.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
577
|
-
| <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunners.property.defaultProvider">defaultProvider</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a></code> | Default provider as set by {@link GitHubRunnersProps.defaultProviderLabel}. |
|
|
578
589
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunners.property.props">props</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps">GitHubRunnersProps</a></code> | *No description.* |
|
|
579
590
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunners.property.providers">providers</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a>[]</code> | Configured runner providers. |
|
|
580
591
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunners.property.secrets">secrets</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Secrets">Secrets</a></code> | Secrets for GitHub communication including webhook secret and runner authentication. |
|
|
@@ -593,18 +604,6 @@ The tree node.
|
|
|
593
604
|
|
|
594
605
|
---
|
|
595
606
|
|
|
596
|
-
##### `defaultProvider`<sup>Required</sup> <a name="defaultProvider" id="@cloudsnorkel/cdk-github-runners.GitHubRunners.property.defaultProvider"></a>
|
|
597
|
-
|
|
598
|
-
```typescript
|
|
599
|
-
public readonly defaultProvider: IRunnerProvider;
|
|
600
|
-
```
|
|
601
|
-
|
|
602
|
-
- *Type:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a>
|
|
603
|
-
|
|
604
|
-
Default provider as set by {@link GitHubRunnersProps.defaultProviderLabel}.
|
|
605
|
-
|
|
606
|
-
---
|
|
607
|
-
|
|
608
607
|
##### `props`<sup>Required</sup> <a name="props" id="@cloudsnorkel/cdk-github-runners.GitHubRunners.property.props"></a>
|
|
609
608
|
|
|
610
609
|
```typescript
|
|
@@ -1164,6 +1163,7 @@ const fargateRunnerProps: FargateRunnerProps = { ... }
|
|
|
1164
1163
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProps.property.label">label</a></code> | <code>string</code> | GitHub Actions label used for this provider. |
|
|
1165
1164
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProps.property.memoryLimitMiB">memoryLimitMiB</a></code> | <code>number</code> | The amount (in MiB) of memory used by the task. |
|
|
1166
1165
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProps.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup</code> | Security Group to assign to the task. |
|
|
1166
|
+
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProps.property.spot">spot</a></code> | <code>boolean</code> | Use Fargate spot capacity provider to save money. |
|
|
1167
1167
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | VPC to launch the runners in. |
|
|
1168
1168
|
|
|
1169
1169
|
---
|
|
@@ -1322,6 +1322,22 @@ Security Group to assign to the task.
|
|
|
1322
1322
|
|
|
1323
1323
|
---
|
|
1324
1324
|
|
|
1325
|
+
##### `spot`<sup>Optional</sup> <a name="spot" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProps.property.spot"></a>
|
|
1326
|
+
|
|
1327
|
+
```typescript
|
|
1328
|
+
public readonly spot: boolean;
|
|
1329
|
+
```
|
|
1330
|
+
|
|
1331
|
+
- *Type:* boolean
|
|
1332
|
+
- *Default:* false
|
|
1333
|
+
|
|
1334
|
+
Use Fargate spot capacity provider to save money.
|
|
1335
|
+
|
|
1336
|
+
* Runners may fail to start due to missing capacity.
|
|
1337
|
+
* Runners might be stopped prematurely with spot pricing.
|
|
1338
|
+
|
|
1339
|
+
---
|
|
1340
|
+
|
|
1325
1341
|
##### `vpc`<sup>Optional</sup> <a name="vpc" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProps.property.vpc"></a>
|
|
1326
1342
|
|
|
1327
1343
|
```typescript
|
|
@@ -1351,26 +1367,10 @@ const gitHubRunnersProps: GitHubRunnersProps = { ... }
|
|
|
1351
1367
|
|
|
1352
1368
|
| **Name** | **Type** | **Description** |
|
|
1353
1369
|
| --- | --- | --- |
|
|
1354
|
-
| <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.defaultProviderLabel">defaultProviderLabel</a></code> | <code>string</code> | Label of default provider in case the workflow job doesn't specify any known label. |
|
|
1355
1370
|
| <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.providers">providers</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a>[]</code> | List of runner providers to use. |
|
|
1356
1371
|
|
|
1357
1372
|
---
|
|
1358
1373
|
|
|
1359
|
-
##### `defaultProviderLabel`<sup>Optional</sup> <a name="defaultProviderLabel" id="@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.defaultProviderLabel"></a>
|
|
1360
|
-
|
|
1361
|
-
```typescript
|
|
1362
|
-
public readonly defaultProviderLabel: string;
|
|
1363
|
-
```
|
|
1364
|
-
|
|
1365
|
-
- *Type:* string
|
|
1366
|
-
- *Default:* 'codebuild'
|
|
1367
|
-
|
|
1368
|
-
Label of default provider in case the workflow job doesn't specify any known label.
|
|
1369
|
-
|
|
1370
|
-
A provider with that label must be configured.
|
|
1371
|
-
|
|
1372
|
-
---
|
|
1373
|
-
|
|
1374
1374
|
##### `providers`<sup>Optional</sup> <a name="providers" id="@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.providers"></a>
|
|
1375
1375
|
|
|
1376
1376
|
```typescript
|