@cloudsnorkel/cdk-github-runners 0.0.9 → 0.0.12
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/.gitattributes +1 -0
- package/.jsii +175 -120
- package/API.md +197 -52
- package/README.md +10 -6
- package/changelog.md +1 -1
- package/lib/providers/codebuild.d.ts +27 -0
- package/lib/providers/codebuild.d.ts.map +1 -1
- package/lib/providers/codebuild.js +14 -2
- package/lib/providers/common.d.ts +45 -0
- package/lib/providers/common.d.ts.map +1 -1
- package/lib/providers/common.js +15 -2
- package/lib/providers/fargate.d.ts +41 -0
- package/lib/providers/fargate.d.ts.map +1 -1
- package/lib/providers/fargate.js +11 -2
- package/lib/providers/lambda.d.ts +27 -0
- package/lib/providers/lambda.d.ts.map +1 -1
- package/lib/providers/lambda.js +14 -2
- package/lib/runner.d.ts +61 -1
- package/lib/runner.d.ts.map +1 -1
- package/lib/runner.js +43 -2
- package/lib/secrets.d.ts +14 -0
- package/lib/secrets.d.ts.map +1 -1
- package/lib/secrets.js +2 -2
- package/lib/utils.d.ts +3 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +4 -2
- package/lib/webhook.d.ts +20 -0
- package/lib/webhook.d.ts.map +1 -1
- package/lib/webhook.js +6 -1
- package/package.json +4 -4
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
package/.jsii
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
"author": {
|
|
3
3
|
"email": "amir@cloudsnorkel.com",
|
|
4
4
|
"name": "Amir Szekely",
|
|
5
|
-
"organization": "CloudSnorkel",
|
|
6
5
|
"roles": [
|
|
7
6
|
"author"
|
|
8
7
|
]
|
|
@@ -2996,7 +2995,7 @@
|
|
|
2996
2995
|
},
|
|
2997
2996
|
"name": "@cloudsnorkel/cdk-github-runners",
|
|
2998
2997
|
"readme": {
|
|
2999
|
-
"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\n* Customizable runners with decent defaults\n* Supports 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 ([aws-actions/configure-aws-credentials][2] has more security controls)\n\n## API\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\n* Customizable runners with decent defaults\n* Supports 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 ([aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral 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\nDocumentation of available constructs and their interface is available on [Constructs Hub][13] 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| Provider | Time limit | vCPUs | RAM | Storage | sudo | Docker |\n|-----------|--------------------------|--------------------------|-----------------------------------|------------------------------|------|--------|\n| CodeBuild | 8 hours (default 1 hour) | 2 (default), 4, 8, or 72 | 3gb (default), 7gb, 15gb or 145gb | 50gb to 824gb (default 64gb) | ✔ | ✔ |\n| Fargate | Unlimited | 0.25 to 4 (default 1) | 512mb to 30gb (default 2gb) | 20gb to 200gb (default 25gb) | ✔ | ❌ |\n| Lambda | 15 minutes | 1 to 6 (default 2) | 128mb to 10gb (default 2gb) | Up to 10gb (default 10gb) | ❌ | ❌ |\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. [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## Customizing\n\nThe default providers configured by [`GitHubRunners`](https://constructs.dev/packages/@cloudsnorkel/cdk-github-runners/v/0.0.11/api/GitHubRunners?lang=typescript) 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 defaultProviderLabel: 'my-codebuild',\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. 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"
|
|
3000
2999
|
},
|
|
3001
3000
|
"repository": {
|
|
3002
3001
|
"type": "git",
|
|
@@ -3031,7 +3030,7 @@
|
|
|
3031
3030
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
3032
3031
|
"base": "constructs.Construct",
|
|
3033
3032
|
"docs": {
|
|
3034
|
-
"remarks": "Creates a project that gets started for each job.",
|
|
3033
|
+
"remarks": "Creates a project that gets started for each job.\n\nThis construct is not meant to be used by itself. It should be passed in the providers property for GitHubRunners.",
|
|
3035
3034
|
"stability": "experimental",
|
|
3036
3035
|
"summary": "GitHub Actions runner provider using CodeBuild to execute the actions."
|
|
3037
3036
|
},
|
|
@@ -3042,7 +3041,7 @@
|
|
|
3042
3041
|
},
|
|
3043
3042
|
"locationInModule": {
|
|
3044
3043
|
"filename": "src/providers/codebuild.ts",
|
|
3045
|
-
"line":
|
|
3044
|
+
"line": 97
|
|
3046
3045
|
},
|
|
3047
3046
|
"parameters": [
|
|
3048
3047
|
{
|
|
@@ -3071,22 +3070,26 @@
|
|
|
3071
3070
|
"kind": "class",
|
|
3072
3071
|
"locationInModule": {
|
|
3073
3072
|
"filename": "src/providers/codebuild.ts",
|
|
3074
|
-
"line":
|
|
3073
|
+
"line": 71
|
|
3075
3074
|
},
|
|
3076
3075
|
"methods": [
|
|
3077
3076
|
{
|
|
3078
3077
|
"docs": {
|
|
3078
|
+
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
3079
3079
|
"stability": "experimental",
|
|
3080
|
-
"summary": "Generate step function
|
|
3080
|
+
"summary": "Generate step function task(s) to start a new runner."
|
|
3081
3081
|
},
|
|
3082
3082
|
"locationInModule": {
|
|
3083
3083
|
"filename": "src/providers/codebuild.ts",
|
|
3084
|
-
"line":
|
|
3084
|
+
"line": 175
|
|
3085
3085
|
},
|
|
3086
3086
|
"name": "getStepFunctionTask",
|
|
3087
3087
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
3088
3088
|
"parameters": [
|
|
3089
3089
|
{
|
|
3090
|
+
"docs": {
|
|
3091
|
+
"summary": "workflow job details."
|
|
3092
|
+
},
|
|
3090
3093
|
"name": "parameters",
|
|
3091
3094
|
"type": {
|
|
3092
3095
|
"fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters"
|
|
@@ -3110,7 +3113,7 @@
|
|
|
3110
3113
|
"immutable": true,
|
|
3111
3114
|
"locationInModule": {
|
|
3112
3115
|
"filename": "src/providers/codebuild.ts",
|
|
3113
|
-
"line":
|
|
3116
|
+
"line": 215
|
|
3114
3117
|
},
|
|
3115
3118
|
"name": "connections",
|
|
3116
3119
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -3121,12 +3124,12 @@
|
|
|
3121
3124
|
{
|
|
3122
3125
|
"docs": {
|
|
3123
3126
|
"stability": "experimental",
|
|
3124
|
-
"summary": "
|
|
3127
|
+
"summary": "Grant principal used to add permissions to the runner role."
|
|
3125
3128
|
},
|
|
3126
3129
|
"immutable": true,
|
|
3127
3130
|
"locationInModule": {
|
|
3128
3131
|
"filename": "src/providers/codebuild.ts",
|
|
3129
|
-
"line":
|
|
3132
|
+
"line": 95
|
|
3130
3133
|
},
|
|
3131
3134
|
"name": "grantPrincipal",
|
|
3132
3135
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -3137,12 +3140,12 @@
|
|
|
3137
3140
|
{
|
|
3138
3141
|
"docs": {
|
|
3139
3142
|
"stability": "experimental",
|
|
3140
|
-
"summary": "
|
|
3143
|
+
"summary": "Label associated with this provider."
|
|
3141
3144
|
},
|
|
3142
3145
|
"immutable": true,
|
|
3143
3146
|
"locationInModule": {
|
|
3144
3147
|
"filename": "src/providers/codebuild.ts",
|
|
3145
|
-
"line":
|
|
3148
|
+
"line": 80
|
|
3146
3149
|
},
|
|
3147
3150
|
"name": "label",
|
|
3148
3151
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -3152,12 +3155,13 @@
|
|
|
3152
3155
|
},
|
|
3153
3156
|
{
|
|
3154
3157
|
"docs": {
|
|
3155
|
-
"stability": "experimental"
|
|
3158
|
+
"stability": "experimental",
|
|
3159
|
+
"summary": "CodeBuild project hosting the runner."
|
|
3156
3160
|
},
|
|
3157
3161
|
"immutable": true,
|
|
3158
3162
|
"locationInModule": {
|
|
3159
3163
|
"filename": "src/providers/codebuild.ts",
|
|
3160
|
-
"line":
|
|
3164
|
+
"line": 75
|
|
3161
3165
|
},
|
|
3162
3166
|
"name": "project",
|
|
3163
3167
|
"type": {
|
|
@@ -3167,12 +3171,12 @@
|
|
|
3167
3171
|
{
|
|
3168
3172
|
"docs": {
|
|
3169
3173
|
"stability": "experimental",
|
|
3170
|
-
"summary": "Security group
|
|
3174
|
+
"summary": "Security group attached to the task."
|
|
3171
3175
|
},
|
|
3172
3176
|
"immutable": true,
|
|
3173
3177
|
"locationInModule": {
|
|
3174
3178
|
"filename": "src/providers/codebuild.ts",
|
|
3175
|
-
"line":
|
|
3179
|
+
"line": 90
|
|
3176
3180
|
},
|
|
3177
3181
|
"name": "securityGroup",
|
|
3178
3182
|
"optional": true,
|
|
@@ -3184,12 +3188,12 @@
|
|
|
3184
3188
|
{
|
|
3185
3189
|
"docs": {
|
|
3186
3190
|
"stability": "experimental",
|
|
3187
|
-
"summary": "VPC
|
|
3191
|
+
"summary": "VPC used for hosting the project."
|
|
3188
3192
|
},
|
|
3189
3193
|
"immutable": true,
|
|
3190
3194
|
"locationInModule": {
|
|
3191
3195
|
"filename": "src/providers/codebuild.ts",
|
|
3192
|
-
"line":
|
|
3196
|
+
"line": 85
|
|
3193
3197
|
},
|
|
3194
3198
|
"name": "vpc",
|
|
3195
3199
|
"optional": true,
|
|
@@ -3335,7 +3339,7 @@
|
|
|
3335
3339
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
3336
3340
|
"base": "constructs.Construct",
|
|
3337
3341
|
"docs": {
|
|
3338
|
-
"remarks": "Creates a task definition with a single container that gets started for each job.",
|
|
3342
|
+
"remarks": "Creates a task definition with a single container that gets started for each job.\n\nThis construct is not meant to be used by itself. It should be passed in the providers property for GitHubRunners.",
|
|
3339
3343
|
"stability": "experimental",
|
|
3340
3344
|
"summary": "GitHub Actions runner provider using Fargate to execute the actions."
|
|
3341
3345
|
},
|
|
@@ -3346,7 +3350,7 @@
|
|
|
3346
3350
|
},
|
|
3347
3351
|
"locationInModule": {
|
|
3348
3352
|
"filename": "src/providers/fargate.ts",
|
|
3349
|
-
"line":
|
|
3353
|
+
"line": 155
|
|
3350
3354
|
},
|
|
3351
3355
|
"parameters": [
|
|
3352
3356
|
{
|
|
@@ -3375,22 +3379,26 @@
|
|
|
3375
3379
|
"kind": "class",
|
|
3376
3380
|
"locationInModule": {
|
|
3377
3381
|
"filename": "src/providers/fargate.ts",
|
|
3378
|
-
"line":
|
|
3382
|
+
"line": 109
|
|
3379
3383
|
},
|
|
3380
3384
|
"methods": [
|
|
3381
3385
|
{
|
|
3382
3386
|
"docs": {
|
|
3387
|
+
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
3383
3388
|
"stability": "experimental",
|
|
3384
|
-
"summary": "Generate step function
|
|
3389
|
+
"summary": "Generate step function task(s) to start a new runner."
|
|
3385
3390
|
},
|
|
3386
3391
|
"locationInModule": {
|
|
3387
3392
|
"filename": "src/providers/fargate.ts",
|
|
3388
|
-
"line":
|
|
3393
|
+
"line": 209
|
|
3389
3394
|
},
|
|
3390
3395
|
"name": "getStepFunctionTask",
|
|
3391
3396
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
3392
3397
|
"parameters": [
|
|
3393
3398
|
{
|
|
3399
|
+
"docs": {
|
|
3400
|
+
"summary": "workflow job details."
|
|
3401
|
+
},
|
|
3394
3402
|
"name": "parameters",
|
|
3395
3403
|
"type": {
|
|
3396
3404
|
"fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters"
|
|
@@ -3408,12 +3416,13 @@
|
|
|
3408
3416
|
"properties": [
|
|
3409
3417
|
{
|
|
3410
3418
|
"docs": {
|
|
3411
|
-
"stability": "experimental"
|
|
3419
|
+
"stability": "experimental",
|
|
3420
|
+
"summary": "Whether task will have a public IP."
|
|
3412
3421
|
},
|
|
3413
3422
|
"immutable": true,
|
|
3414
3423
|
"locationInModule": {
|
|
3415
3424
|
"filename": "src/providers/fargate.ts",
|
|
3416
|
-
"line":
|
|
3425
|
+
"line": 143
|
|
3417
3426
|
},
|
|
3418
3427
|
"name": "assignPublicIp",
|
|
3419
3428
|
"type": {
|
|
@@ -3422,12 +3431,13 @@
|
|
|
3422
3431
|
},
|
|
3423
3432
|
{
|
|
3424
3433
|
"docs": {
|
|
3425
|
-
"stability": "experimental"
|
|
3434
|
+
"stability": "experimental",
|
|
3435
|
+
"summary": "Cluster hosting the task hosting the runner."
|
|
3426
3436
|
},
|
|
3427
3437
|
"immutable": true,
|
|
3428
3438
|
"locationInModule": {
|
|
3429
3439
|
"filename": "src/providers/fargate.ts",
|
|
3430
|
-
"line":
|
|
3440
|
+
"line": 113
|
|
3431
3441
|
},
|
|
3432
3442
|
"name": "cluster",
|
|
3433
3443
|
"type": {
|
|
@@ -3442,7 +3452,7 @@
|
|
|
3442
3452
|
"immutable": true,
|
|
3443
3453
|
"locationInModule": {
|
|
3444
3454
|
"filename": "src/providers/fargate.ts",
|
|
3445
|
-
"line":
|
|
3455
|
+
"line": 153
|
|
3446
3456
|
},
|
|
3447
3457
|
"name": "connections",
|
|
3448
3458
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -3452,12 +3462,13 @@
|
|
|
3452
3462
|
},
|
|
3453
3463
|
{
|
|
3454
3464
|
"docs": {
|
|
3455
|
-
"stability": "experimental"
|
|
3465
|
+
"stability": "experimental",
|
|
3466
|
+
"summary": "Container definition hosting the runner."
|
|
3456
3467
|
},
|
|
3457
3468
|
"immutable": true,
|
|
3458
3469
|
"locationInModule": {
|
|
3459
3470
|
"filename": "src/providers/fargate.ts",
|
|
3460
|
-
"line":
|
|
3471
|
+
"line": 123
|
|
3461
3472
|
},
|
|
3462
3473
|
"name": "container",
|
|
3463
3474
|
"type": {
|
|
@@ -3467,12 +3478,12 @@
|
|
|
3467
3478
|
{
|
|
3468
3479
|
"docs": {
|
|
3469
3480
|
"stability": "experimental",
|
|
3470
|
-
"summary": "
|
|
3481
|
+
"summary": "Grant principal used to add permissions to the runner role."
|
|
3471
3482
|
},
|
|
3472
3483
|
"immutable": true,
|
|
3473
3484
|
"locationInModule": {
|
|
3474
3485
|
"filename": "src/providers/fargate.ts",
|
|
3475
|
-
"line":
|
|
3486
|
+
"line": 148
|
|
3476
3487
|
},
|
|
3477
3488
|
"name": "grantPrincipal",
|
|
3478
3489
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -3483,12 +3494,12 @@
|
|
|
3483
3494
|
{
|
|
3484
3495
|
"docs": {
|
|
3485
3496
|
"stability": "experimental",
|
|
3486
|
-
"summary": "
|
|
3497
|
+
"summary": "Label associated with this provider."
|
|
3487
3498
|
},
|
|
3488
3499
|
"immutable": true,
|
|
3489
3500
|
"locationInModule": {
|
|
3490
3501
|
"filename": "src/providers/fargate.ts",
|
|
3491
|
-
"line":
|
|
3502
|
+
"line": 128
|
|
3492
3503
|
},
|
|
3493
3504
|
"name": "label",
|
|
3494
3505
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -3498,12 +3509,13 @@
|
|
|
3498
3509
|
},
|
|
3499
3510
|
{
|
|
3500
3511
|
"docs": {
|
|
3501
|
-
"stability": "experimental"
|
|
3512
|
+
"stability": "experimental",
|
|
3513
|
+
"summary": "Fargate task hosting the runner."
|
|
3502
3514
|
},
|
|
3503
3515
|
"immutable": true,
|
|
3504
3516
|
"locationInModule": {
|
|
3505
3517
|
"filename": "src/providers/fargate.ts",
|
|
3506
|
-
"line":
|
|
3518
|
+
"line": 118
|
|
3507
3519
|
},
|
|
3508
3520
|
"name": "task",
|
|
3509
3521
|
"type": {
|
|
@@ -3513,12 +3525,12 @@
|
|
|
3513
3525
|
{
|
|
3514
3526
|
"docs": {
|
|
3515
3527
|
"stability": "experimental",
|
|
3516
|
-
"summary": "Security group
|
|
3528
|
+
"summary": "Security group attached to the task."
|
|
3517
3529
|
},
|
|
3518
3530
|
"immutable": true,
|
|
3519
3531
|
"locationInModule": {
|
|
3520
3532
|
"filename": "src/providers/fargate.ts",
|
|
3521
|
-
"line":
|
|
3533
|
+
"line": 138
|
|
3522
3534
|
},
|
|
3523
3535
|
"name": "securityGroup",
|
|
3524
3536
|
"optional": true,
|
|
@@ -3530,12 +3542,12 @@
|
|
|
3530
3542
|
{
|
|
3531
3543
|
"docs": {
|
|
3532
3544
|
"stability": "experimental",
|
|
3533
|
-
"summary": "VPC
|
|
3545
|
+
"summary": "VPC used for hosting the task."
|
|
3534
3546
|
},
|
|
3535
3547
|
"immutable": true,
|
|
3536
3548
|
"locationInModule": {
|
|
3537
3549
|
"filename": "src/providers/fargate.ts",
|
|
3538
|
-
"line":
|
|
3550
|
+
"line": 133
|
|
3539
3551
|
},
|
|
3540
3552
|
"name": "vpc",
|
|
3541
3553
|
"optional": true,
|
|
@@ -3551,7 +3563,8 @@
|
|
|
3551
3563
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
3552
3564
|
"datatype": true,
|
|
3553
3565
|
"docs": {
|
|
3554
|
-
"stability": "experimental"
|
|
3566
|
+
"stability": "experimental",
|
|
3567
|
+
"summary": "Properties for FargateRunner."
|
|
3555
3568
|
},
|
|
3556
3569
|
"fqn": "@cloudsnorkel/cdk-github-runners.FargateRunnerProps",
|
|
3557
3570
|
"interfaces": [
|
|
@@ -3560,7 +3573,7 @@
|
|
|
3560
3573
|
"kind": "interface",
|
|
3561
3574
|
"locationInModule": {
|
|
3562
3575
|
"filename": "src/providers/fargate.ts",
|
|
3563
|
-
"line":
|
|
3576
|
+
"line": 17
|
|
3564
3577
|
},
|
|
3565
3578
|
"name": "FargateRunnerProps",
|
|
3566
3579
|
"properties": [
|
|
@@ -3568,13 +3581,14 @@
|
|
|
3568
3581
|
"abstract": true,
|
|
3569
3582
|
"docs": {
|
|
3570
3583
|
"default": "true",
|
|
3584
|
+
"remarks": "Make sure the task will have access to GitHub. A public IP might be required unless you have NAT gateway.",
|
|
3571
3585
|
"stability": "experimental",
|
|
3572
3586
|
"summary": "Assign public IP to the runner task."
|
|
3573
3587
|
},
|
|
3574
3588
|
"immutable": true,
|
|
3575
3589
|
"locationInModule": {
|
|
3576
3590
|
"filename": "src/providers/fargate.ts",
|
|
3577
|
-
"line":
|
|
3591
|
+
"line": 53
|
|
3578
3592
|
},
|
|
3579
3593
|
"name": "assignPublicIp",
|
|
3580
3594
|
"optional": true,
|
|
@@ -3592,7 +3606,7 @@
|
|
|
3592
3606
|
"immutable": true,
|
|
3593
3607
|
"locationInModule": {
|
|
3594
3608
|
"filename": "src/providers/fargate.ts",
|
|
3595
|
-
"line":
|
|
3609
|
+
"line": 44
|
|
3596
3610
|
},
|
|
3597
3611
|
"name": "cluster",
|
|
3598
3612
|
"optional": true,
|
|
@@ -3611,7 +3625,7 @@
|
|
|
3611
3625
|
"immutable": true,
|
|
3612
3626
|
"locationInModule": {
|
|
3613
3627
|
"filename": "src/providers/fargate.ts",
|
|
3614
|
-
"line":
|
|
3628
|
+
"line": 72
|
|
3615
3629
|
},
|
|
3616
3630
|
"name": "cpu",
|
|
3617
3631
|
"optional": true,
|
|
@@ -3630,7 +3644,7 @@
|
|
|
3630
3644
|
"immutable": true,
|
|
3631
3645
|
"locationInModule": {
|
|
3632
3646
|
"filename": "src/providers/fargate.ts",
|
|
3633
|
-
"line":
|
|
3647
|
+
"line": 99
|
|
3634
3648
|
},
|
|
3635
3649
|
"name": "ephemeralStorageGiB",
|
|
3636
3650
|
"optional": true,
|
|
@@ -3648,7 +3662,7 @@
|
|
|
3648
3662
|
"immutable": true,
|
|
3649
3663
|
"locationInModule": {
|
|
3650
3664
|
"filename": "src/providers/fargate.ts",
|
|
3651
|
-
"line":
|
|
3665
|
+
"line": 23
|
|
3652
3666
|
},
|
|
3653
3667
|
"name": "label",
|
|
3654
3668
|
"optional": true,
|
|
@@ -3667,7 +3681,7 @@
|
|
|
3667
3681
|
"immutable": true,
|
|
3668
3682
|
"locationInModule": {
|
|
3669
3683
|
"filename": "src/providers/fargate.ts",
|
|
3670
|
-
"line":
|
|
3684
|
+
"line": 90
|
|
3671
3685
|
},
|
|
3672
3686
|
"name": "memoryLimitMiB",
|
|
3673
3687
|
"optional": true,
|
|
@@ -3685,7 +3699,7 @@
|
|
|
3685
3699
|
"immutable": true,
|
|
3686
3700
|
"locationInModule": {
|
|
3687
3701
|
"filename": "src/providers/fargate.ts",
|
|
3688
|
-
"line":
|
|
3702
|
+
"line": 37
|
|
3689
3703
|
},
|
|
3690
3704
|
"name": "securityGroup",
|
|
3691
3705
|
"optional": true,
|
|
@@ -3703,7 +3717,7 @@
|
|
|
3703
3717
|
"immutable": true,
|
|
3704
3718
|
"locationInModule": {
|
|
3705
3719
|
"filename": "src/providers/fargate.ts",
|
|
3706
|
-
"line":
|
|
3720
|
+
"line": 30
|
|
3707
3721
|
},
|
|
3708
3722
|
"name": "vpc",
|
|
3709
3723
|
"optional": true,
|
|
@@ -3718,7 +3732,9 @@
|
|
|
3718
3732
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
3719
3733
|
"base": "constructs.Construct",
|
|
3720
3734
|
"docs": {
|
|
3721
|
-
"
|
|
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 defaultProviderLabel: 'my-codebuild',\n }\n);\n```",
|
|
3736
|
+
"stability": "experimental",
|
|
3737
|
+
"summary": "Create all the required infrastructure to provide self-hosted GitHub runners."
|
|
3722
3738
|
},
|
|
3723
3739
|
"fqn": "@cloudsnorkel/cdk-github-runners.GitHubRunners",
|
|
3724
3740
|
"initializer": {
|
|
@@ -3727,7 +3743,7 @@
|
|
|
3727
3743
|
},
|
|
3728
3744
|
"locationInModule": {
|
|
3729
3745
|
"filename": "src/runner.ts",
|
|
3730
|
-
"line":
|
|
3746
|
+
"line": 93
|
|
3731
3747
|
},
|
|
3732
3748
|
"parameters": [
|
|
3733
3749
|
{
|
|
@@ -3753,18 +3769,19 @@
|
|
|
3753
3769
|
"kind": "class",
|
|
3754
3770
|
"locationInModule": {
|
|
3755
3771
|
"filename": "src/runner.ts",
|
|
3756
|
-
"line":
|
|
3772
|
+
"line": 73
|
|
3757
3773
|
},
|
|
3758
3774
|
"name": "GitHubRunners",
|
|
3759
3775
|
"properties": [
|
|
3760
3776
|
{
|
|
3761
3777
|
"docs": {
|
|
3762
|
-
"stability": "experimental"
|
|
3778
|
+
"stability": "experimental",
|
|
3779
|
+
"summary": "Default provider as set by {@link GitHubRunnersProps.defaultProviderLabel}."
|
|
3763
3780
|
},
|
|
3764
3781
|
"immutable": true,
|
|
3765
3782
|
"locationInModule": {
|
|
3766
3783
|
"filename": "src/runner.ts",
|
|
3767
|
-
"line":
|
|
3784
|
+
"line": 83
|
|
3768
3785
|
},
|
|
3769
3786
|
"name": "defaultProvider",
|
|
3770
3787
|
"type": {
|
|
@@ -3778,7 +3795,7 @@
|
|
|
3778
3795
|
"immutable": true,
|
|
3779
3796
|
"locationInModule": {
|
|
3780
3797
|
"filename": "src/runner.ts",
|
|
3781
|
-
"line":
|
|
3798
|
+
"line": 93
|
|
3782
3799
|
},
|
|
3783
3800
|
"name": "props",
|
|
3784
3801
|
"type": {
|
|
@@ -3787,12 +3804,13 @@
|
|
|
3787
3804
|
},
|
|
3788
3805
|
{
|
|
3789
3806
|
"docs": {
|
|
3790
|
-
"stability": "experimental"
|
|
3807
|
+
"stability": "experimental",
|
|
3808
|
+
"summary": "Configured runner providers."
|
|
3791
3809
|
},
|
|
3792
3810
|
"immutable": true,
|
|
3793
3811
|
"locationInModule": {
|
|
3794
3812
|
"filename": "src/runner.ts",
|
|
3795
|
-
"line":
|
|
3813
|
+
"line": 78
|
|
3796
3814
|
},
|
|
3797
3815
|
"name": "providers",
|
|
3798
3816
|
"type": {
|
|
@@ -3806,12 +3824,13 @@
|
|
|
3806
3824
|
},
|
|
3807
3825
|
{
|
|
3808
3826
|
"docs": {
|
|
3809
|
-
"stability": "experimental"
|
|
3827
|
+
"stability": "experimental",
|
|
3828
|
+
"summary": "Secrets for GitHub communication including webhook secret and runner authentication."
|
|
3810
3829
|
},
|
|
3811
3830
|
"immutable": true,
|
|
3812
3831
|
"locationInModule": {
|
|
3813
3832
|
"filename": "src/runner.ts",
|
|
3814
|
-
"line":
|
|
3833
|
+
"line": 88
|
|
3815
3834
|
},
|
|
3816
3835
|
"name": "secrets",
|
|
3817
3836
|
"type": {
|
|
@@ -3826,7 +3845,7 @@
|
|
|
3826
3845
|
"datatype": true,
|
|
3827
3846
|
"docs": {
|
|
3828
3847
|
"stability": "experimental",
|
|
3829
|
-
"summary": "Properties
|
|
3848
|
+
"summary": "Properties for GitHubRunners."
|
|
3830
3849
|
},
|
|
3831
3850
|
"fqn": "@cloudsnorkel/cdk-github-runners.GitHubRunnersProps",
|
|
3832
3851
|
"kind": "interface",
|
|
@@ -3839,12 +3858,15 @@
|
|
|
3839
3858
|
{
|
|
3840
3859
|
"abstract": true,
|
|
3841
3860
|
"docs": {
|
|
3842
|
-
"
|
|
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."
|
|
3843
3865
|
},
|
|
3844
3866
|
"immutable": true,
|
|
3845
3867
|
"locationInModule": {
|
|
3846
3868
|
"filename": "src/runner.ts",
|
|
3847
|
-
"line":
|
|
3869
|
+
"line": 22
|
|
3848
3870
|
},
|
|
3849
3871
|
"name": "defaultProviderLabel",
|
|
3850
3872
|
"optional": true,
|
|
@@ -3855,12 +3877,15 @@
|
|
|
3855
3877
|
{
|
|
3856
3878
|
"abstract": true,
|
|
3857
3879
|
"docs": {
|
|
3858
|
-
"
|
|
3880
|
+
"default": "CodeBuild, Lambda and Fargate runners with all the defaults (no VPC or default account VPC)",
|
|
3881
|
+
"remarks": "At least one provider is required. Provider will be selected when its label matches the labels requested by the workflow job.",
|
|
3882
|
+
"stability": "experimental",
|
|
3883
|
+
"summary": "List of runner providers to use."
|
|
3859
3884
|
},
|
|
3860
3885
|
"immutable": true,
|
|
3861
3886
|
"locationInModule": {
|
|
3862
3887
|
"filename": "src/runner.ts",
|
|
3863
|
-
"line":
|
|
3888
|
+
"line": 29
|
|
3864
3889
|
},
|
|
3865
3890
|
"name": "providers",
|
|
3866
3891
|
"optional": true,
|
|
@@ -3879,7 +3904,9 @@
|
|
|
3879
3904
|
"@cloudsnorkel/cdk-github-runners.IRunnerProvider": {
|
|
3880
3905
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
3881
3906
|
"docs": {
|
|
3882
|
-
"
|
|
3907
|
+
"remarks": "Implementations create all required resources and return a step function task that starts those resources from {@link getStepFunctionTask}.",
|
|
3908
|
+
"stability": "experimental",
|
|
3909
|
+
"summary": "Interface for all runner providers."
|
|
3883
3910
|
},
|
|
3884
3911
|
"fqn": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
3885
3912
|
"interfaces": [
|
|
@@ -3889,18 +3916,19 @@
|
|
|
3889
3916
|
"kind": "interface",
|
|
3890
3917
|
"locationInModule": {
|
|
3891
3918
|
"filename": "src/providers/common.ts",
|
|
3892
|
-
"line":
|
|
3919
|
+
"line": 89
|
|
3893
3920
|
},
|
|
3894
3921
|
"methods": [
|
|
3895
3922
|
{
|
|
3896
3923
|
"abstract": true,
|
|
3897
3924
|
"docs": {
|
|
3925
|
+
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
3898
3926
|
"stability": "experimental",
|
|
3899
3927
|
"summary": "Generate step function tasks that execute the runner."
|
|
3900
3928
|
},
|
|
3901
3929
|
"locationInModule": {
|
|
3902
3930
|
"filename": "src/providers/common.ts",
|
|
3903
|
-
"line":
|
|
3931
|
+
"line": 112
|
|
3904
3932
|
},
|
|
3905
3933
|
"name": "getStepFunctionTask",
|
|
3906
3934
|
"parameters": [
|
|
@@ -3932,7 +3960,7 @@
|
|
|
3932
3960
|
"immutable": true,
|
|
3933
3961
|
"locationInModule": {
|
|
3934
3962
|
"filename": "src/providers/common.ts",
|
|
3935
|
-
"line":
|
|
3963
|
+
"line": 93
|
|
3936
3964
|
},
|
|
3937
3965
|
"name": "label",
|
|
3938
3966
|
"type": {
|
|
@@ -3948,7 +3976,7 @@
|
|
|
3948
3976
|
"immutable": true,
|
|
3949
3977
|
"locationInModule": {
|
|
3950
3978
|
"filename": "src/providers/common.ts",
|
|
3951
|
-
"line":
|
|
3979
|
+
"line": 103
|
|
3952
3980
|
},
|
|
3953
3981
|
"name": "securityGroup",
|
|
3954
3982
|
"optional": true,
|
|
@@ -3965,7 +3993,7 @@
|
|
|
3965
3993
|
"immutable": true,
|
|
3966
3994
|
"locationInModule": {
|
|
3967
3995
|
"filename": "src/providers/common.ts",
|
|
3968
|
-
"line":
|
|
3996
|
+
"line": 98
|
|
3969
3997
|
},
|
|
3970
3998
|
"name": "vpc",
|
|
3971
3999
|
"optional": true,
|
|
@@ -3980,7 +4008,7 @@
|
|
|
3980
4008
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
3981
4009
|
"base": "constructs.Construct",
|
|
3982
4010
|
"docs": {
|
|
3983
|
-
"remarks": "Creates a Docker-based function that gets executed for each job.",
|
|
4011
|
+
"remarks": "Creates a Docker-based function that gets executed for each job.\n\nThis construct is not meant to be used by itself. It should be passed in the providers property for GitHubRunners.",
|
|
3984
4012
|
"stability": "experimental",
|
|
3985
4013
|
"summary": "GitHub Actions runner provider using Lambda to execute the actions."
|
|
3986
4014
|
},
|
|
@@ -3991,7 +4019,7 @@
|
|
|
3991
4019
|
},
|
|
3992
4020
|
"locationInModule": {
|
|
3993
4021
|
"filename": "src/providers/lambda.ts",
|
|
3994
|
-
"line":
|
|
4022
|
+
"line": 103
|
|
3995
4023
|
},
|
|
3996
4024
|
"parameters": [
|
|
3997
4025
|
{
|
|
@@ -4020,22 +4048,26 @@
|
|
|
4020
4048
|
"kind": "class",
|
|
4021
4049
|
"locationInModule": {
|
|
4022
4050
|
"filename": "src/providers/lambda.ts",
|
|
4023
|
-
"line":
|
|
4051
|
+
"line": 77
|
|
4024
4052
|
},
|
|
4025
4053
|
"methods": [
|
|
4026
4054
|
{
|
|
4027
4055
|
"docs": {
|
|
4056
|
+
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
4028
4057
|
"stability": "experimental",
|
|
4029
|
-
"summary": "Generate step function
|
|
4058
|
+
"summary": "Generate step function task(s) to start a new runner."
|
|
4030
4059
|
},
|
|
4031
4060
|
"locationInModule": {
|
|
4032
4061
|
"filename": "src/providers/lambda.ts",
|
|
4033
|
-
"line":
|
|
4062
|
+
"line": 150
|
|
4034
4063
|
},
|
|
4035
4064
|
"name": "getStepFunctionTask",
|
|
4036
4065
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
4037
4066
|
"parameters": [
|
|
4038
4067
|
{
|
|
4068
|
+
"docs": {
|
|
4069
|
+
"summary": "workflow job details."
|
|
4070
|
+
},
|
|
4039
4071
|
"name": "parameters",
|
|
4040
4072
|
"type": {
|
|
4041
4073
|
"fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters"
|
|
@@ -4059,7 +4091,7 @@
|
|
|
4059
4091
|
"immutable": true,
|
|
4060
4092
|
"locationInModule": {
|
|
4061
4093
|
"filename": "src/providers/lambda.ts",
|
|
4062
|
-
"line":
|
|
4094
|
+
"line": 139
|
|
4063
4095
|
},
|
|
4064
4096
|
"name": "connections",
|
|
4065
4097
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -4069,12 +4101,13 @@
|
|
|
4069
4101
|
},
|
|
4070
4102
|
{
|
|
4071
4103
|
"docs": {
|
|
4072
|
-
"stability": "experimental"
|
|
4104
|
+
"stability": "experimental",
|
|
4105
|
+
"summary": "The function hosting the GitHub runner."
|
|
4073
4106
|
},
|
|
4074
4107
|
"immutable": true,
|
|
4075
4108
|
"locationInModule": {
|
|
4076
4109
|
"filename": "src/providers/lambda.ts",
|
|
4077
|
-
"line":
|
|
4110
|
+
"line": 81
|
|
4078
4111
|
},
|
|
4079
4112
|
"name": "function",
|
|
4080
4113
|
"type": {
|
|
@@ -4084,12 +4117,12 @@
|
|
|
4084
4117
|
{
|
|
4085
4118
|
"docs": {
|
|
4086
4119
|
"stability": "experimental",
|
|
4087
|
-
"summary": "
|
|
4120
|
+
"summary": "Grant principal used to add permissions to the runner role."
|
|
4088
4121
|
},
|
|
4089
4122
|
"immutable": true,
|
|
4090
4123
|
"locationInModule": {
|
|
4091
4124
|
"filename": "src/providers/lambda.ts",
|
|
4092
|
-
"line":
|
|
4125
|
+
"line": 101
|
|
4093
4126
|
},
|
|
4094
4127
|
"name": "grantPrincipal",
|
|
4095
4128
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -4100,12 +4133,12 @@
|
|
|
4100
4133
|
{
|
|
4101
4134
|
"docs": {
|
|
4102
4135
|
"stability": "experimental",
|
|
4103
|
-
"summary": "
|
|
4136
|
+
"summary": "Label associated with this provider."
|
|
4104
4137
|
},
|
|
4105
4138
|
"immutable": true,
|
|
4106
4139
|
"locationInModule": {
|
|
4107
4140
|
"filename": "src/providers/lambda.ts",
|
|
4108
|
-
"line":
|
|
4141
|
+
"line": 86
|
|
4109
4142
|
},
|
|
4110
4143
|
"name": "label",
|
|
4111
4144
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -4116,12 +4149,12 @@
|
|
|
4116
4149
|
{
|
|
4117
4150
|
"docs": {
|
|
4118
4151
|
"stability": "experimental",
|
|
4119
|
-
"summary": "Security group
|
|
4152
|
+
"summary": "Security group attached to the function."
|
|
4120
4153
|
},
|
|
4121
4154
|
"immutable": true,
|
|
4122
4155
|
"locationInModule": {
|
|
4123
4156
|
"filename": "src/providers/lambda.ts",
|
|
4124
|
-
"line":
|
|
4157
|
+
"line": 96
|
|
4125
4158
|
},
|
|
4126
4159
|
"name": "securityGroup",
|
|
4127
4160
|
"optional": true,
|
|
@@ -4133,12 +4166,12 @@
|
|
|
4133
4166
|
{
|
|
4134
4167
|
"docs": {
|
|
4135
4168
|
"stability": "experimental",
|
|
4136
|
-
"summary": "VPC
|
|
4169
|
+
"summary": "VPC used for hosting the function."
|
|
4137
4170
|
},
|
|
4138
4171
|
"immutable": true,
|
|
4139
4172
|
"locationInModule": {
|
|
4140
4173
|
"filename": "src/providers/lambda.ts",
|
|
4141
|
-
"line":
|
|
4174
|
+
"line": 91
|
|
4142
4175
|
},
|
|
4143
4176
|
"name": "vpc",
|
|
4144
4177
|
"optional": true,
|
|
@@ -4302,13 +4335,14 @@
|
|
|
4302
4335
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
4303
4336
|
"datatype": true,
|
|
4304
4337
|
"docs": {
|
|
4305
|
-
"stability": "experimental"
|
|
4338
|
+
"stability": "experimental",
|
|
4339
|
+
"summary": "Common properties for all runner providers."
|
|
4306
4340
|
},
|
|
4307
4341
|
"fqn": "@cloudsnorkel/cdk-github-runners.RunnerProviderProps",
|
|
4308
4342
|
"kind": "interface",
|
|
4309
4343
|
"locationInModule": {
|
|
4310
4344
|
"filename": "src/providers/common.ts",
|
|
4311
|
-
"line":
|
|
4345
|
+
"line": 32
|
|
4312
4346
|
},
|
|
4313
4347
|
"name": "RunnerProviderProps",
|
|
4314
4348
|
"properties": [
|
|
@@ -4323,7 +4357,7 @@
|
|
|
4323
4357
|
"immutable": true,
|
|
4324
4358
|
"locationInModule": {
|
|
4325
4359
|
"filename": "src/providers/common.ts",
|
|
4326
|
-
"line":
|
|
4360
|
+
"line": 47
|
|
4327
4361
|
},
|
|
4328
4362
|
"name": "logRetention",
|
|
4329
4363
|
"optional": true,
|
|
@@ -4341,7 +4375,7 @@
|
|
|
4341
4375
|
"immutable": true,
|
|
4342
4376
|
"locationInModule": {
|
|
4343
4377
|
"filename": "src/providers/common.ts",
|
|
4344
|
-
"line":
|
|
4378
|
+
"line": 38
|
|
4345
4379
|
},
|
|
4346
4380
|
"name": "runnerVersion",
|
|
4347
4381
|
"optional": true,
|
|
@@ -4356,25 +4390,29 @@
|
|
|
4356
4390
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
4357
4391
|
"datatype": true,
|
|
4358
4392
|
"docs": {
|
|
4359
|
-
"
|
|
4393
|
+
"remarks": "```sh\n./config.sh --unattended --url \"https://${GITHUB_DOMAIN}/${OWNER}/${REPO}\" --token \"${RUNNER_TOKEN}\" --ephemeral --work _work --labels \"${RUNNER_LABEL}\" --name \"${RUNNER_NAME}\" --disableupdate\n```\n\nAll parameters are specified as step function paths and therefore must be used only in step function task parameters.",
|
|
4394
|
+
"stability": "experimental",
|
|
4395
|
+
"summary": "Workflow job parameters as parsed from the webhook event. Pass these into your runner executor and run something like:."
|
|
4360
4396
|
},
|
|
4361
4397
|
"fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters",
|
|
4362
4398
|
"kind": "interface",
|
|
4363
4399
|
"locationInModule": {
|
|
4364
4400
|
"filename": "src/providers/common.ts",
|
|
4365
|
-
"line":
|
|
4401
|
+
"line": 59
|
|
4366
4402
|
},
|
|
4367
4403
|
"name": "RunnerRuntimeParameters",
|
|
4368
4404
|
"properties": [
|
|
4369
4405
|
{
|
|
4370
4406
|
"abstract": true,
|
|
4371
4407
|
"docs": {
|
|
4372
|
-
"
|
|
4408
|
+
"remarks": "Most of the time this will be github.com but for self-hosted GitHub instances, this will be different.",
|
|
4409
|
+
"stability": "experimental",
|
|
4410
|
+
"summary": "Path to GitHub domain."
|
|
4373
4411
|
},
|
|
4374
4412
|
"immutable": true,
|
|
4375
4413
|
"locationInModule": {
|
|
4376
4414
|
"filename": "src/providers/common.ts",
|
|
4377
|
-
"line":
|
|
4415
|
+
"line": 73
|
|
4378
4416
|
},
|
|
4379
4417
|
"name": "githubDomainPath",
|
|
4380
4418
|
"type": {
|
|
@@ -4384,12 +4422,13 @@
|
|
|
4384
4422
|
{
|
|
4385
4423
|
"abstract": true,
|
|
4386
4424
|
"docs": {
|
|
4387
|
-
"stability": "experimental"
|
|
4425
|
+
"stability": "experimental",
|
|
4426
|
+
"summary": "Path to repostiroy owner name."
|
|
4388
4427
|
},
|
|
4389
4428
|
"immutable": true,
|
|
4390
4429
|
"locationInModule": {
|
|
4391
4430
|
"filename": "src/providers/common.ts",
|
|
4392
|
-
"line":
|
|
4431
|
+
"line": 78
|
|
4393
4432
|
},
|
|
4394
4433
|
"name": "ownerPath",
|
|
4395
4434
|
"type": {
|
|
@@ -4399,12 +4438,13 @@
|
|
|
4399
4438
|
{
|
|
4400
4439
|
"abstract": true,
|
|
4401
4440
|
"docs": {
|
|
4402
|
-
"stability": "experimental"
|
|
4441
|
+
"stability": "experimental",
|
|
4442
|
+
"summary": "Path to repository name."
|
|
4403
4443
|
},
|
|
4404
4444
|
"immutable": true,
|
|
4405
4445
|
"locationInModule": {
|
|
4406
4446
|
"filename": "src/providers/common.ts",
|
|
4407
|
-
"line":
|
|
4447
|
+
"line": 83
|
|
4408
4448
|
},
|
|
4409
4449
|
"name": "repoPath",
|
|
4410
4450
|
"type": {
|
|
@@ -4414,12 +4454,14 @@
|
|
|
4414
4454
|
{
|
|
4415
4455
|
"abstract": true,
|
|
4416
4456
|
"docs": {
|
|
4417
|
-
"
|
|
4457
|
+
"remarks": "We specifically set the name to make troubleshooting easier.",
|
|
4458
|
+
"stability": "experimental",
|
|
4459
|
+
"summary": "Path to desired runner name."
|
|
4418
4460
|
},
|
|
4419
4461
|
"immutable": true,
|
|
4420
4462
|
"locationInModule": {
|
|
4421
4463
|
"filename": "src/providers/common.ts",
|
|
4422
|
-
"line":
|
|
4464
|
+
"line": 68
|
|
4423
4465
|
},
|
|
4424
4466
|
"name": "runnerNamePath",
|
|
4425
4467
|
"type": {
|
|
@@ -4429,12 +4471,13 @@
|
|
|
4429
4471
|
{
|
|
4430
4472
|
"abstract": true,
|
|
4431
4473
|
"docs": {
|
|
4432
|
-
"stability": "experimental"
|
|
4474
|
+
"stability": "experimental",
|
|
4475
|
+
"summary": "Path to runner token used to register token."
|
|
4433
4476
|
},
|
|
4434
4477
|
"immutable": true,
|
|
4435
4478
|
"locationInModule": {
|
|
4436
4479
|
"filename": "src/providers/common.ts",
|
|
4437
|
-
"line":
|
|
4480
|
+
"line": 63
|
|
4438
4481
|
},
|
|
4439
4482
|
"name": "runnerTokenPath",
|
|
4440
4483
|
"type": {
|
|
@@ -4447,7 +4490,8 @@
|
|
|
4447
4490
|
"@cloudsnorkel/cdk-github-runners.RunnerVersion": {
|
|
4448
4491
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
4449
4492
|
"docs": {
|
|
4450
|
-
"stability": "experimental"
|
|
4493
|
+
"stability": "experimental",
|
|
4494
|
+
"summary": "Defines desired GitHub Actions runner version."
|
|
4451
4495
|
},
|
|
4452
4496
|
"fqn": "@cloudsnorkel/cdk-github-runners.RunnerVersion",
|
|
4453
4497
|
"initializer": {
|
|
@@ -4456,7 +4500,7 @@
|
|
|
4456
4500
|
},
|
|
4457
4501
|
"locationInModule": {
|
|
4458
4502
|
"filename": "src/providers/common.ts",
|
|
4459
|
-
"line":
|
|
4503
|
+
"line": 25
|
|
4460
4504
|
},
|
|
4461
4505
|
"parameters": [
|
|
4462
4506
|
{
|
|
@@ -4471,16 +4515,17 @@
|
|
|
4471
4515
|
"kind": "class",
|
|
4472
4516
|
"locationInModule": {
|
|
4473
4517
|
"filename": "src/providers/common.ts",
|
|
4474
|
-
"line":
|
|
4518
|
+
"line": 6
|
|
4475
4519
|
},
|
|
4476
4520
|
"methods": [
|
|
4477
4521
|
{
|
|
4478
4522
|
"docs": {
|
|
4479
|
-
"stability": "experimental"
|
|
4523
|
+
"stability": "experimental",
|
|
4524
|
+
"summary": "Use the latest version available at the time the runner provider image is built."
|
|
4480
4525
|
},
|
|
4481
4526
|
"locationInModule": {
|
|
4482
4527
|
"filename": "src/providers/common.ts",
|
|
4483
|
-
"line":
|
|
4528
|
+
"line": 10
|
|
4484
4529
|
},
|
|
4485
4530
|
"name": "latest",
|
|
4486
4531
|
"returns": {
|
|
@@ -4492,15 +4537,20 @@
|
|
|
4492
4537
|
},
|
|
4493
4538
|
{
|
|
4494
4539
|
"docs": {
|
|
4495
|
-
"
|
|
4540
|
+
"see": "https://github.com/actions/runner/releases",
|
|
4541
|
+
"stability": "experimental",
|
|
4542
|
+
"summary": "Use a specific version."
|
|
4496
4543
|
},
|
|
4497
4544
|
"locationInModule": {
|
|
4498
4545
|
"filename": "src/providers/common.ts",
|
|
4499
|
-
"line":
|
|
4546
|
+
"line": 21
|
|
4500
4547
|
},
|
|
4501
4548
|
"name": "specific",
|
|
4502
4549
|
"parameters": [
|
|
4503
4550
|
{
|
|
4551
|
+
"docs": {
|
|
4552
|
+
"summary": "GitHub Runner version."
|
|
4553
|
+
},
|
|
4504
4554
|
"name": "version",
|
|
4505
4555
|
"type": {
|
|
4506
4556
|
"primitive": "string"
|
|
@@ -4524,7 +4574,7 @@
|
|
|
4524
4574
|
"immutable": true,
|
|
4525
4575
|
"locationInModule": {
|
|
4526
4576
|
"filename": "src/providers/common.ts",
|
|
4527
|
-
"line":
|
|
4577
|
+
"line": 25
|
|
4528
4578
|
},
|
|
4529
4579
|
"name": "version",
|
|
4530
4580
|
"type": {
|
|
@@ -4548,7 +4598,7 @@
|
|
|
4548
4598
|
},
|
|
4549
4599
|
"locationInModule": {
|
|
4550
4600
|
"filename": "src/secrets.ts",
|
|
4551
|
-
"line":
|
|
4601
|
+
"line": 29
|
|
4552
4602
|
},
|
|
4553
4603
|
"parameters": [
|
|
4554
4604
|
{
|
|
@@ -4574,12 +4624,14 @@
|
|
|
4574
4624
|
"properties": [
|
|
4575
4625
|
{
|
|
4576
4626
|
"docs": {
|
|
4577
|
-
"
|
|
4627
|
+
"remarks": "This secret is used to register runners and\ncancel jobs when the runner fails to start.\n\nThis secret is meant to be edited by the user after being created.",
|
|
4628
|
+
"stability": "experimental",
|
|
4629
|
+
"summary": "Authentication secret for GitHub containing either app details or personal authentication token."
|
|
4578
4630
|
},
|
|
4579
4631
|
"immutable": true,
|
|
4580
4632
|
"locationInModule": {
|
|
4581
4633
|
"filename": "src/secrets.ts",
|
|
4582
|
-
"line":
|
|
4634
|
+
"line": 20
|
|
4583
4635
|
},
|
|
4584
4636
|
"name": "github",
|
|
4585
4637
|
"type": {
|
|
@@ -4588,12 +4640,14 @@
|
|
|
4588
4640
|
},
|
|
4589
4641
|
{
|
|
4590
4642
|
"docs": {
|
|
4591
|
-
"
|
|
4643
|
+
"remarks": "This secret is meant to be edited by the user after being created.",
|
|
4644
|
+
"stability": "experimental",
|
|
4645
|
+
"summary": "GitHub app private key. Not needed when using personal authentication tokens."
|
|
4592
4646
|
},
|
|
4593
4647
|
"immutable": true,
|
|
4594
4648
|
"locationInModule": {
|
|
4595
4649
|
"filename": "src/secrets.ts",
|
|
4596
|
-
"line":
|
|
4650
|
+
"line": 27
|
|
4597
4651
|
},
|
|
4598
4652
|
"name": "githubPrivateKey",
|
|
4599
4653
|
"type": {
|
|
@@ -4602,12 +4656,13 @@
|
|
|
4602
4656
|
},
|
|
4603
4657
|
{
|
|
4604
4658
|
"docs": {
|
|
4605
|
-
"stability": "experimental"
|
|
4659
|
+
"stability": "experimental",
|
|
4660
|
+
"summary": "Webhook secret used to confirm events are coming from GitHub and nowhere else."
|
|
4606
4661
|
},
|
|
4607
4662
|
"immutable": true,
|
|
4608
4663
|
"locationInModule": {
|
|
4609
4664
|
"filename": "src/secrets.ts",
|
|
4610
|
-
"line":
|
|
4665
|
+
"line": 12
|
|
4611
4666
|
},
|
|
4612
4667
|
"name": "webhook",
|
|
4613
4668
|
"type": {
|
|
@@ -4618,6 +4673,6 @@
|
|
|
4618
4673
|
"symbolId": "src/secrets:Secrets"
|
|
4619
4674
|
}
|
|
4620
4675
|
},
|
|
4621
|
-
"version": "0.0.
|
|
4622
|
-
"fingerprint": "
|
|
4676
|
+
"version": "0.0.12",
|
|
4677
|
+
"fingerprint": "MUMnZhHPeAm9OvQoxoctrTRoDKE7vywznQ1B7UsKVVg="
|
|
4623
4678
|
}
|