@cloudsnorkel/cdk-github-runners 0.0.10 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -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[![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)][6]\n[![PyPI](https://img.shields.io/pypi/v/cloudsnorkel.cdk-github-runners?label=pypi&logo=pypi)][7]\n[![Maven Central](https://img.shields.io/maven-central/v/com.cloudsnorkel/cdk.github.runners.svg?label=Maven%20Central&logo=java)][8]\n[![Go](https://img.shields.io/github/v/tag/CloudSnorkel/cdk-github-runners?color=red&label=go&logo=go)][11]\n[![Nuget](https://img.shields.io/nuget/v/CloudSnorkel.Cdk.Github.Runners?color=red&&logo=nuget)][12]\n[![Release](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml/badge.svg)](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](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\nSee [API.md](API.md) for full interface documentation.\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) | ✔ | TBD |\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`](API.md#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`](API.md#CodeBuildRunner) construct in your code (starting with defaults 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`](API.md#CodeBuildRunner) 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![Architecture diagram](architecture.svg)\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/"
2998
+ "markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)][6]\n[![PyPI](https://img.shields.io/pypi/v/cloudsnorkel.cdk-github-runners?label=pypi&logo=pypi)][7]\n[![Maven Central](https://img.shields.io/maven-central/v/com.cloudsnorkel/cdk.github.runners.svg?label=Maven%20Central&logo=java)][8]\n[![Go](https://img.shields.io/github/v/tag/CloudSnorkel/cdk-github-runners?color=red&label=go&logo=go)][11]\n[![Nuget](https://img.shields.io/nuget/v/CloudSnorkel.Cdk.Github.Runners?color=red&&logo=nuget)][12]\n[![Release](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml/badge.svg)](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](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![Architecture diagram](architecture.svg)\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"
2999
2999
  },
3000
3000
  "repository": {
3001
3001
  "type": "git",
@@ -3030,7 +3030,7 @@
3030
3030
  "assembly": "@cloudsnorkel/cdk-github-runners",
3031
3031
  "base": "constructs.Construct",
3032
3032
  "docs": {
3033
- "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.",
3034
3034
  "stability": "experimental",
3035
3035
  "summary": "GitHub Actions runner provider using CodeBuild to execute the actions."
3036
3036
  },
@@ -3041,7 +3041,7 @@
3041
3041
  },
3042
3042
  "locationInModule": {
3043
3043
  "filename": "src/providers/codebuild.ts",
3044
- "line": 77
3044
+ "line": 97
3045
3045
  },
3046
3046
  "parameters": [
3047
3047
  {
@@ -3070,22 +3070,26 @@
3070
3070
  "kind": "class",
3071
3071
  "locationInModule": {
3072
3072
  "filename": "src/providers/codebuild.ts",
3073
- "line": 69
3073
+ "line": 71
3074
3074
  },
3075
3075
  "methods": [
3076
3076
  {
3077
3077
  "docs": {
3078
+ "remarks": "Called by GithubRunners and shouldn't be called manually.",
3078
3079
  "stability": "experimental",
3079
- "summary": "Generate step function tasks that execute the runner."
3080
+ "summary": "Generate step function task(s) to start a new runner."
3080
3081
  },
3081
3082
  "locationInModule": {
3082
3083
  "filename": "src/providers/codebuild.ts",
3083
- "line": 148
3084
+ "line": 175
3084
3085
  },
3085
3086
  "name": "getStepFunctionTask",
3086
3087
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
3087
3088
  "parameters": [
3088
3089
  {
3090
+ "docs": {
3091
+ "summary": "workflow job details."
3092
+ },
3089
3093
  "name": "parameters",
3090
3094
  "type": {
3091
3095
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters"
@@ -3109,7 +3113,7 @@
3109
3113
  "immutable": true,
3110
3114
  "locationInModule": {
3111
3115
  "filename": "src/providers/codebuild.ts",
3112
- "line": 185
3116
+ "line": 215
3113
3117
  },
3114
3118
  "name": "connections",
3115
3119
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -3120,12 +3124,12 @@
3120
3124
  {
3121
3125
  "docs": {
3122
3126
  "stability": "experimental",
3123
- "summary": "The principal to grant permissions to."
3127
+ "summary": "Grant principal used to add permissions to the runner role."
3124
3128
  },
3125
3129
  "immutable": true,
3126
3130
  "locationInModule": {
3127
3131
  "filename": "src/providers/codebuild.ts",
3128
- "line": 75
3132
+ "line": 95
3129
3133
  },
3130
3134
  "name": "grantPrincipal",
3131
3135
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -3136,12 +3140,12 @@
3136
3140
  {
3137
3141
  "docs": {
3138
3142
  "stability": "experimental",
3139
- "summary": "GitHub Actions label associated with this runner provider."
3143
+ "summary": "Label associated with this provider."
3140
3144
  },
3141
3145
  "immutable": true,
3142
3146
  "locationInModule": {
3143
3147
  "filename": "src/providers/codebuild.ts",
3144
- "line": 72
3148
+ "line": 80
3145
3149
  },
3146
3150
  "name": "label",
3147
3151
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -3151,12 +3155,13 @@
3151
3155
  },
3152
3156
  {
3153
3157
  "docs": {
3154
- "stability": "experimental"
3158
+ "stability": "experimental",
3159
+ "summary": "CodeBuild project hosting the runner."
3155
3160
  },
3156
3161
  "immutable": true,
3157
3162
  "locationInModule": {
3158
3163
  "filename": "src/providers/codebuild.ts",
3159
- "line": 70
3164
+ "line": 75
3160
3165
  },
3161
3166
  "name": "project",
3162
3167
  "type": {
@@ -3166,12 +3171,12 @@
3166
3171
  {
3167
3172
  "docs": {
3168
3173
  "stability": "experimental",
3169
- "summary": "Security group associated with runners."
3174
+ "summary": "Security group attached to the task."
3170
3175
  },
3171
3176
  "immutable": true,
3172
3177
  "locationInModule": {
3173
3178
  "filename": "src/providers/codebuild.ts",
3174
- "line": 74
3179
+ "line": 90
3175
3180
  },
3176
3181
  "name": "securityGroup",
3177
3182
  "optional": true,
@@ -3183,12 +3188,12 @@
3183
3188
  {
3184
3189
  "docs": {
3185
3190
  "stability": "experimental",
3186
- "summary": "VPC network in which runners will be placed."
3191
+ "summary": "VPC used for hosting the project."
3187
3192
  },
3188
3193
  "immutable": true,
3189
3194
  "locationInModule": {
3190
3195
  "filename": "src/providers/codebuild.ts",
3191
- "line": 73
3196
+ "line": 85
3192
3197
  },
3193
3198
  "name": "vpc",
3194
3199
  "optional": true,
@@ -3334,7 +3339,7 @@
3334
3339
  "assembly": "@cloudsnorkel/cdk-github-runners",
3335
3340
  "base": "constructs.Construct",
3336
3341
  "docs": {
3337
- "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.",
3338
3343
  "stability": "experimental",
3339
3344
  "summary": "GitHub Actions runner provider using Fargate to execute the actions."
3340
3345
  },
@@ -3345,7 +3350,7 @@
3345
3350
  },
3346
3351
  "locationInModule": {
3347
3352
  "filename": "src/providers/fargate.ts",
3348
- "line": 114
3353
+ "line": 155
3349
3354
  },
3350
3355
  "parameters": [
3351
3356
  {
@@ -3374,22 +3379,26 @@
3374
3379
  "kind": "class",
3375
3380
  "locationInModule": {
3376
3381
  "filename": "src/providers/fargate.ts",
3377
- "line": 102
3382
+ "line": 109
3378
3383
  },
3379
3384
  "methods": [
3380
3385
  {
3381
3386
  "docs": {
3387
+ "remarks": "Called by GithubRunners and shouldn't be called manually.",
3382
3388
  "stability": "experimental",
3383
- "summary": "Generate step function tasks that execute the runner."
3389
+ "summary": "Generate step function task(s) to start a new runner."
3384
3390
  },
3385
3391
  "locationInModule": {
3386
3392
  "filename": "src/providers/fargate.ts",
3387
- "line": 161
3393
+ "line": 209
3388
3394
  },
3389
3395
  "name": "getStepFunctionTask",
3390
3396
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
3391
3397
  "parameters": [
3392
3398
  {
3399
+ "docs": {
3400
+ "summary": "workflow job details."
3401
+ },
3393
3402
  "name": "parameters",
3394
3403
  "type": {
3395
3404
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters"
@@ -3407,12 +3416,13 @@
3407
3416
  "properties": [
3408
3417
  {
3409
3418
  "docs": {
3410
- "stability": "experimental"
3419
+ "stability": "experimental",
3420
+ "summary": "Whether task will have a public IP."
3411
3421
  },
3412
3422
  "immutable": true,
3413
3423
  "locationInModule": {
3414
3424
  "filename": "src/providers/fargate.ts",
3415
- "line": 110
3425
+ "line": 143
3416
3426
  },
3417
3427
  "name": "assignPublicIp",
3418
3428
  "type": {
@@ -3421,12 +3431,13 @@
3421
3431
  },
3422
3432
  {
3423
3433
  "docs": {
3424
- "stability": "experimental"
3434
+ "stability": "experimental",
3435
+ "summary": "Cluster hosting the task hosting the runner."
3425
3436
  },
3426
3437
  "immutable": true,
3427
3438
  "locationInModule": {
3428
3439
  "filename": "src/providers/fargate.ts",
3429
- "line": 103
3440
+ "line": 113
3430
3441
  },
3431
3442
  "name": "cluster",
3432
3443
  "type": {
@@ -3441,7 +3452,7 @@
3441
3452
  "immutable": true,
3442
3453
  "locationInModule": {
3443
3454
  "filename": "src/providers/fargate.ts",
3444
- "line": 112
3455
+ "line": 153
3445
3456
  },
3446
3457
  "name": "connections",
3447
3458
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -3451,12 +3462,13 @@
3451
3462
  },
3452
3463
  {
3453
3464
  "docs": {
3454
- "stability": "experimental"
3465
+ "stability": "experimental",
3466
+ "summary": "Container definition hosting the runner."
3455
3467
  },
3456
3468
  "immutable": true,
3457
3469
  "locationInModule": {
3458
3470
  "filename": "src/providers/fargate.ts",
3459
- "line": 105
3471
+ "line": 123
3460
3472
  },
3461
3473
  "name": "container",
3462
3474
  "type": {
@@ -3466,12 +3478,12 @@
3466
3478
  {
3467
3479
  "docs": {
3468
3480
  "stability": "experimental",
3469
- "summary": "The principal to grant permissions to."
3481
+ "summary": "Grant principal used to add permissions to the runner role."
3470
3482
  },
3471
3483
  "immutable": true,
3472
3484
  "locationInModule": {
3473
3485
  "filename": "src/providers/fargate.ts",
3474
- "line": 111
3486
+ "line": 148
3475
3487
  },
3476
3488
  "name": "grantPrincipal",
3477
3489
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -3482,12 +3494,12 @@
3482
3494
  {
3483
3495
  "docs": {
3484
3496
  "stability": "experimental",
3485
- "summary": "GitHub Actions label associated with this runner provider."
3497
+ "summary": "Label associated with this provider."
3486
3498
  },
3487
3499
  "immutable": true,
3488
3500
  "locationInModule": {
3489
3501
  "filename": "src/providers/fargate.ts",
3490
- "line": 107
3502
+ "line": 128
3491
3503
  },
3492
3504
  "name": "label",
3493
3505
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -3497,12 +3509,13 @@
3497
3509
  },
3498
3510
  {
3499
3511
  "docs": {
3500
- "stability": "experimental"
3512
+ "stability": "experimental",
3513
+ "summary": "Fargate task hosting the runner."
3501
3514
  },
3502
3515
  "immutable": true,
3503
3516
  "locationInModule": {
3504
3517
  "filename": "src/providers/fargate.ts",
3505
- "line": 104
3518
+ "line": 118
3506
3519
  },
3507
3520
  "name": "task",
3508
3521
  "type": {
@@ -3512,12 +3525,12 @@
3512
3525
  {
3513
3526
  "docs": {
3514
3527
  "stability": "experimental",
3515
- "summary": "Security group associated with runners."
3528
+ "summary": "Security group attached to the task."
3516
3529
  },
3517
3530
  "immutable": true,
3518
3531
  "locationInModule": {
3519
3532
  "filename": "src/providers/fargate.ts",
3520
- "line": 109
3533
+ "line": 138
3521
3534
  },
3522
3535
  "name": "securityGroup",
3523
3536
  "optional": true,
@@ -3529,12 +3542,12 @@
3529
3542
  {
3530
3543
  "docs": {
3531
3544
  "stability": "experimental",
3532
- "summary": "VPC network in which runners will be placed."
3545
+ "summary": "VPC used for hosting the task."
3533
3546
  },
3534
3547
  "immutable": true,
3535
3548
  "locationInModule": {
3536
3549
  "filename": "src/providers/fargate.ts",
3537
- "line": 108
3550
+ "line": 133
3538
3551
  },
3539
3552
  "name": "vpc",
3540
3553
  "optional": true,
@@ -3550,7 +3563,8 @@
3550
3563
  "assembly": "@cloudsnorkel/cdk-github-runners",
3551
3564
  "datatype": true,
3552
3565
  "docs": {
3553
- "stability": "experimental"
3566
+ "stability": "experimental",
3567
+ "summary": "Properties for FargateRunner."
3554
3568
  },
3555
3569
  "fqn": "@cloudsnorkel/cdk-github-runners.FargateRunnerProps",
3556
3570
  "interfaces": [
@@ -3559,7 +3573,7 @@
3559
3573
  "kind": "interface",
3560
3574
  "locationInModule": {
3561
3575
  "filename": "src/providers/fargate.ts",
3562
- "line": 14
3576
+ "line": 17
3563
3577
  },
3564
3578
  "name": "FargateRunnerProps",
3565
3579
  "properties": [
@@ -3567,13 +3581,14 @@
3567
3581
  "abstract": true,
3568
3582
  "docs": {
3569
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.",
3570
3585
  "stability": "experimental",
3571
3586
  "summary": "Assign public IP to the runner task."
3572
3587
  },
3573
3588
  "immutable": true,
3574
3589
  "locationInModule": {
3575
3590
  "filename": "src/providers/fargate.ts",
3576
- "line": 48
3591
+ "line": 53
3577
3592
  },
3578
3593
  "name": "assignPublicIp",
3579
3594
  "optional": true,
@@ -3591,7 +3606,7 @@
3591
3606
  "immutable": true,
3592
3607
  "locationInModule": {
3593
3608
  "filename": "src/providers/fargate.ts",
3594
- "line": 41
3609
+ "line": 44
3595
3610
  },
3596
3611
  "name": "cluster",
3597
3612
  "optional": true,
@@ -3610,7 +3625,7 @@
3610
3625
  "immutable": true,
3611
3626
  "locationInModule": {
3612
3627
  "filename": "src/providers/fargate.ts",
3613
- "line": 67
3628
+ "line": 72
3614
3629
  },
3615
3630
  "name": "cpu",
3616
3631
  "optional": true,
@@ -3629,7 +3644,7 @@
3629
3644
  "immutable": true,
3630
3645
  "locationInModule": {
3631
3646
  "filename": "src/providers/fargate.ts",
3632
- "line": 94
3647
+ "line": 99
3633
3648
  },
3634
3649
  "name": "ephemeralStorageGiB",
3635
3650
  "optional": true,
@@ -3647,7 +3662,7 @@
3647
3662
  "immutable": true,
3648
3663
  "locationInModule": {
3649
3664
  "filename": "src/providers/fargate.ts",
3650
- "line": 20
3665
+ "line": 23
3651
3666
  },
3652
3667
  "name": "label",
3653
3668
  "optional": true,
@@ -3666,7 +3681,7 @@
3666
3681
  "immutable": true,
3667
3682
  "locationInModule": {
3668
3683
  "filename": "src/providers/fargate.ts",
3669
- "line": 85
3684
+ "line": 90
3670
3685
  },
3671
3686
  "name": "memoryLimitMiB",
3672
3687
  "optional": true,
@@ -3684,7 +3699,7 @@
3684
3699
  "immutable": true,
3685
3700
  "locationInModule": {
3686
3701
  "filename": "src/providers/fargate.ts",
3687
- "line": 34
3702
+ "line": 37
3688
3703
  },
3689
3704
  "name": "securityGroup",
3690
3705
  "optional": true,
@@ -3702,7 +3717,7 @@
3702
3717
  "immutable": true,
3703
3718
  "locationInModule": {
3704
3719
  "filename": "src/providers/fargate.ts",
3705
- "line": 27
3720
+ "line": 30
3706
3721
  },
3707
3722
  "name": "vpc",
3708
3723
  "optional": true,
@@ -3717,7 +3732,9 @@
3717
3732
  "assembly": "@cloudsnorkel/cdk-github-runners",
3718
3733
  "base": "constructs.Construct",
3719
3734
  "docs": {
3720
- "stability": "experimental"
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."
3721
3738
  },
3722
3739
  "fqn": "@cloudsnorkel/cdk-github-runners.GitHubRunners",
3723
3740
  "initializer": {
@@ -3726,7 +3743,7 @@
3726
3743
  },
3727
3744
  "locationInModule": {
3728
3745
  "filename": "src/runner.ts",
3729
- "line": 29
3746
+ "line": 93
3730
3747
  },
3731
3748
  "parameters": [
3732
3749
  {
@@ -3752,18 +3769,19 @@
3752
3769
  "kind": "class",
3753
3770
  "locationInModule": {
3754
3771
  "filename": "src/runner.ts",
3755
- "line": 21
3772
+ "line": 73
3756
3773
  },
3757
3774
  "name": "GitHubRunners",
3758
3775
  "properties": [
3759
3776
  {
3760
3777
  "docs": {
3761
- "stability": "experimental"
3778
+ "stability": "experimental",
3779
+ "summary": "Default provider as set by {@link GitHubRunnersProps.defaultProviderLabel}."
3762
3780
  },
3763
3781
  "immutable": true,
3764
3782
  "locationInModule": {
3765
3783
  "filename": "src/runner.ts",
3766
- "line": 24
3784
+ "line": 83
3767
3785
  },
3768
3786
  "name": "defaultProvider",
3769
3787
  "type": {
@@ -3777,7 +3795,7 @@
3777
3795
  "immutable": true,
3778
3796
  "locationInModule": {
3779
3797
  "filename": "src/runner.ts",
3780
- "line": 29
3798
+ "line": 93
3781
3799
  },
3782
3800
  "name": "props",
3783
3801
  "type": {
@@ -3786,12 +3804,13 @@
3786
3804
  },
3787
3805
  {
3788
3806
  "docs": {
3789
- "stability": "experimental"
3807
+ "stability": "experimental",
3808
+ "summary": "Configured runner providers."
3790
3809
  },
3791
3810
  "immutable": true,
3792
3811
  "locationInModule": {
3793
3812
  "filename": "src/runner.ts",
3794
- "line": 23
3813
+ "line": 78
3795
3814
  },
3796
3815
  "name": "providers",
3797
3816
  "type": {
@@ -3805,12 +3824,13 @@
3805
3824
  },
3806
3825
  {
3807
3826
  "docs": {
3808
- "stability": "experimental"
3827
+ "stability": "experimental",
3828
+ "summary": "Secrets for GitHub communication including webhook secret and runner authentication."
3809
3829
  },
3810
3830
  "immutable": true,
3811
3831
  "locationInModule": {
3812
3832
  "filename": "src/runner.ts",
3813
- "line": 25
3833
+ "line": 88
3814
3834
  },
3815
3835
  "name": "secrets",
3816
3836
  "type": {
@@ -3825,7 +3845,7 @@
3825
3845
  "datatype": true,
3826
3846
  "docs": {
3827
3847
  "stability": "experimental",
3828
- "summary": "Properties of the GitHubRunners."
3848
+ "summary": "Properties for GitHubRunners."
3829
3849
  },
3830
3850
  "fqn": "@cloudsnorkel/cdk-github-runners.GitHubRunnersProps",
3831
3851
  "kind": "interface",
@@ -3838,12 +3858,15 @@
3838
3858
  {
3839
3859
  "abstract": true,
3840
3860
  "docs": {
3841
- "stability": "experimental"
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."
3842
3865
  },
3843
3866
  "immutable": true,
3844
3867
  "locationInModule": {
3845
3868
  "filename": "src/runner.ts",
3846
- "line": 16
3869
+ "line": 22
3847
3870
  },
3848
3871
  "name": "defaultProviderLabel",
3849
3872
  "optional": true,
@@ -3854,12 +3877,15 @@
3854
3877
  {
3855
3878
  "abstract": true,
3856
3879
  "docs": {
3857
- "stability": "experimental"
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."
3858
3884
  },
3859
3885
  "immutable": true,
3860
3886
  "locationInModule": {
3861
3887
  "filename": "src/runner.ts",
3862
- "line": 18
3888
+ "line": 29
3863
3889
  },
3864
3890
  "name": "providers",
3865
3891
  "optional": true,
@@ -3878,7 +3904,9 @@
3878
3904
  "@cloudsnorkel/cdk-github-runners.IRunnerProvider": {
3879
3905
  "assembly": "@cloudsnorkel/cdk-github-runners",
3880
3906
  "docs": {
3881
- "stability": "experimental"
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."
3882
3910
  },
3883
3911
  "fqn": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
3884
3912
  "interfaces": [
@@ -3888,18 +3916,19 @@
3888
3916
  "kind": "interface",
3889
3917
  "locationInModule": {
3890
3918
  "filename": "src/providers/common.ts",
3891
- "line": 42
3919
+ "line": 89
3892
3920
  },
3893
3921
  "methods": [
3894
3922
  {
3895
3923
  "abstract": true,
3896
3924
  "docs": {
3925
+ "remarks": "Called by GithubRunners and shouldn't be called manually.",
3897
3926
  "stability": "experimental",
3898
3927
  "summary": "Generate step function tasks that execute the runner."
3899
3928
  },
3900
3929
  "locationInModule": {
3901
3930
  "filename": "src/providers/common.ts",
3902
- "line": 63
3931
+ "line": 112
3903
3932
  },
3904
3933
  "name": "getStepFunctionTask",
3905
3934
  "parameters": [
@@ -3931,7 +3960,7 @@
3931
3960
  "immutable": true,
3932
3961
  "locationInModule": {
3933
3962
  "filename": "src/providers/common.ts",
3934
- "line": 46
3963
+ "line": 93
3935
3964
  },
3936
3965
  "name": "label",
3937
3966
  "type": {
@@ -3947,7 +3976,7 @@
3947
3976
  "immutable": true,
3948
3977
  "locationInModule": {
3949
3978
  "filename": "src/providers/common.ts",
3950
- "line": 56
3979
+ "line": 103
3951
3980
  },
3952
3981
  "name": "securityGroup",
3953
3982
  "optional": true,
@@ -3964,7 +3993,7 @@
3964
3993
  "immutable": true,
3965
3994
  "locationInModule": {
3966
3995
  "filename": "src/providers/common.ts",
3967
- "line": 51
3996
+ "line": 98
3968
3997
  },
3969
3998
  "name": "vpc",
3970
3999
  "optional": true,
@@ -3979,7 +4008,7 @@
3979
4008
  "assembly": "@cloudsnorkel/cdk-github-runners",
3980
4009
  "base": "constructs.Construct",
3981
4010
  "docs": {
3982
- "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.",
3983
4012
  "stability": "experimental",
3984
4013
  "summary": "GitHub Actions runner provider using Lambda to execute the actions."
3985
4014
  },
@@ -3990,7 +4019,7 @@
3990
4019
  },
3991
4020
  "locationInModule": {
3992
4021
  "filename": "src/providers/lambda.ts",
3993
- "line": 83
4022
+ "line": 103
3994
4023
  },
3995
4024
  "parameters": [
3996
4025
  {
@@ -4019,22 +4048,26 @@
4019
4048
  "kind": "class",
4020
4049
  "locationInModule": {
4021
4050
  "filename": "src/providers/lambda.ts",
4022
- "line": 75
4051
+ "line": 77
4023
4052
  },
4024
4053
  "methods": [
4025
4054
  {
4026
4055
  "docs": {
4056
+ "remarks": "Called by GithubRunners and shouldn't be called manually.",
4027
4057
  "stability": "experimental",
4028
- "summary": "Generate step function tasks that execute the runner."
4058
+ "summary": "Generate step function task(s) to start a new runner."
4029
4059
  },
4030
4060
  "locationInModule": {
4031
4061
  "filename": "src/providers/lambda.ts",
4032
- "line": 120
4062
+ "line": 150
4033
4063
  },
4034
4064
  "name": "getStepFunctionTask",
4035
4065
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
4036
4066
  "parameters": [
4037
4067
  {
4068
+ "docs": {
4069
+ "summary": "workflow job details."
4070
+ },
4038
4071
  "name": "parameters",
4039
4072
  "type": {
4040
4073
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters"
@@ -4058,7 +4091,7 @@
4058
4091
  "immutable": true,
4059
4092
  "locationInModule": {
4060
4093
  "filename": "src/providers/lambda.ts",
4061
- "line": 116
4094
+ "line": 139
4062
4095
  },
4063
4096
  "name": "connections",
4064
4097
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -4068,12 +4101,13 @@
4068
4101
  },
4069
4102
  {
4070
4103
  "docs": {
4071
- "stability": "experimental"
4104
+ "stability": "experimental",
4105
+ "summary": "The function hosting the GitHub runner."
4072
4106
  },
4073
4107
  "immutable": true,
4074
4108
  "locationInModule": {
4075
4109
  "filename": "src/providers/lambda.ts",
4076
- "line": 76
4110
+ "line": 81
4077
4111
  },
4078
4112
  "name": "function",
4079
4113
  "type": {
@@ -4083,12 +4117,12 @@
4083
4117
  {
4084
4118
  "docs": {
4085
4119
  "stability": "experimental",
4086
- "summary": "The principal to grant permissions to."
4120
+ "summary": "Grant principal used to add permissions to the runner role."
4087
4121
  },
4088
4122
  "immutable": true,
4089
4123
  "locationInModule": {
4090
4124
  "filename": "src/providers/lambda.ts",
4091
- "line": 81
4125
+ "line": 101
4092
4126
  },
4093
4127
  "name": "grantPrincipal",
4094
4128
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -4099,12 +4133,12 @@
4099
4133
  {
4100
4134
  "docs": {
4101
4135
  "stability": "experimental",
4102
- "summary": "GitHub Actions label associated with this runner provider."
4136
+ "summary": "Label associated with this provider."
4103
4137
  },
4104
4138
  "immutable": true,
4105
4139
  "locationInModule": {
4106
4140
  "filename": "src/providers/lambda.ts",
4107
- "line": 78
4141
+ "line": 86
4108
4142
  },
4109
4143
  "name": "label",
4110
4144
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -4115,12 +4149,12 @@
4115
4149
  {
4116
4150
  "docs": {
4117
4151
  "stability": "experimental",
4118
- "summary": "Security group associated with runners."
4152
+ "summary": "Security group attached to the function."
4119
4153
  },
4120
4154
  "immutable": true,
4121
4155
  "locationInModule": {
4122
4156
  "filename": "src/providers/lambda.ts",
4123
- "line": 80
4157
+ "line": 96
4124
4158
  },
4125
4159
  "name": "securityGroup",
4126
4160
  "optional": true,
@@ -4132,12 +4166,12 @@
4132
4166
  {
4133
4167
  "docs": {
4134
4168
  "stability": "experimental",
4135
- "summary": "VPC network in which runners will be placed."
4169
+ "summary": "VPC used for hosting the function."
4136
4170
  },
4137
4171
  "immutable": true,
4138
4172
  "locationInModule": {
4139
4173
  "filename": "src/providers/lambda.ts",
4140
- "line": 79
4174
+ "line": 91
4141
4175
  },
4142
4176
  "name": "vpc",
4143
4177
  "optional": true,
@@ -4301,13 +4335,14 @@
4301
4335
  "assembly": "@cloudsnorkel/cdk-github-runners",
4302
4336
  "datatype": true,
4303
4337
  "docs": {
4304
- "stability": "experimental"
4338
+ "stability": "experimental",
4339
+ "summary": "Common properties for all runner providers."
4305
4340
  },
4306
4341
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerProviderProps",
4307
4342
  "kind": "interface",
4308
4343
  "locationInModule": {
4309
4344
  "filename": "src/providers/common.ts",
4310
- "line": 16
4345
+ "line": 32
4311
4346
  },
4312
4347
  "name": "RunnerProviderProps",
4313
4348
  "properties": [
@@ -4322,7 +4357,7 @@
4322
4357
  "immutable": true,
4323
4358
  "locationInModule": {
4324
4359
  "filename": "src/providers/common.ts",
4325
- "line": 31
4360
+ "line": 47
4326
4361
  },
4327
4362
  "name": "logRetention",
4328
4363
  "optional": true,
@@ -4340,7 +4375,7 @@
4340
4375
  "immutable": true,
4341
4376
  "locationInModule": {
4342
4377
  "filename": "src/providers/common.ts",
4343
- "line": 22
4378
+ "line": 38
4344
4379
  },
4345
4380
  "name": "runnerVersion",
4346
4381
  "optional": true,
@@ -4355,25 +4390,29 @@
4355
4390
  "assembly": "@cloudsnorkel/cdk-github-runners",
4356
4391
  "datatype": true,
4357
4392
  "docs": {
4358
- "stability": "experimental"
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:."
4359
4396
  },
4360
4397
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters",
4361
4398
  "kind": "interface",
4362
4399
  "locationInModule": {
4363
4400
  "filename": "src/providers/common.ts",
4364
- "line": 34
4401
+ "line": 59
4365
4402
  },
4366
4403
  "name": "RunnerRuntimeParameters",
4367
4404
  "properties": [
4368
4405
  {
4369
4406
  "abstract": true,
4370
4407
  "docs": {
4371
- "stability": "experimental"
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."
4372
4411
  },
4373
4412
  "immutable": true,
4374
4413
  "locationInModule": {
4375
4414
  "filename": "src/providers/common.ts",
4376
- "line": 37
4415
+ "line": 73
4377
4416
  },
4378
4417
  "name": "githubDomainPath",
4379
4418
  "type": {
@@ -4383,12 +4422,13 @@
4383
4422
  {
4384
4423
  "abstract": true,
4385
4424
  "docs": {
4386
- "stability": "experimental"
4425
+ "stability": "experimental",
4426
+ "summary": "Path to repostiroy owner name."
4387
4427
  },
4388
4428
  "immutable": true,
4389
4429
  "locationInModule": {
4390
4430
  "filename": "src/providers/common.ts",
4391
- "line": 38
4431
+ "line": 78
4392
4432
  },
4393
4433
  "name": "ownerPath",
4394
4434
  "type": {
@@ -4398,12 +4438,13 @@
4398
4438
  {
4399
4439
  "abstract": true,
4400
4440
  "docs": {
4401
- "stability": "experimental"
4441
+ "stability": "experimental",
4442
+ "summary": "Path to repository name."
4402
4443
  },
4403
4444
  "immutable": true,
4404
4445
  "locationInModule": {
4405
4446
  "filename": "src/providers/common.ts",
4406
- "line": 39
4447
+ "line": 83
4407
4448
  },
4408
4449
  "name": "repoPath",
4409
4450
  "type": {
@@ -4413,12 +4454,14 @@
4413
4454
  {
4414
4455
  "abstract": true,
4415
4456
  "docs": {
4416
- "stability": "experimental"
4457
+ "remarks": "We specifically set the name to make troubleshooting easier.",
4458
+ "stability": "experimental",
4459
+ "summary": "Path to desired runner name."
4417
4460
  },
4418
4461
  "immutable": true,
4419
4462
  "locationInModule": {
4420
4463
  "filename": "src/providers/common.ts",
4421
- "line": 36
4464
+ "line": 68
4422
4465
  },
4423
4466
  "name": "runnerNamePath",
4424
4467
  "type": {
@@ -4428,12 +4471,13 @@
4428
4471
  {
4429
4472
  "abstract": true,
4430
4473
  "docs": {
4431
- "stability": "experimental"
4474
+ "stability": "experimental",
4475
+ "summary": "Path to runner token used to register token."
4432
4476
  },
4433
4477
  "immutable": true,
4434
4478
  "locationInModule": {
4435
4479
  "filename": "src/providers/common.ts",
4436
- "line": 35
4480
+ "line": 63
4437
4481
  },
4438
4482
  "name": "runnerTokenPath",
4439
4483
  "type": {
@@ -4446,7 +4490,8 @@
4446
4490
  "@cloudsnorkel/cdk-github-runners.RunnerVersion": {
4447
4491
  "assembly": "@cloudsnorkel/cdk-github-runners",
4448
4492
  "docs": {
4449
- "stability": "experimental"
4493
+ "stability": "experimental",
4494
+ "summary": "Defines desired GitHub Actions runner version."
4450
4495
  },
4451
4496
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerVersion",
4452
4497
  "initializer": {
@@ -4455,7 +4500,7 @@
4455
4500
  },
4456
4501
  "locationInModule": {
4457
4502
  "filename": "src/providers/common.ts",
4458
- "line": 12
4503
+ "line": 25
4459
4504
  },
4460
4505
  "parameters": [
4461
4506
  {
@@ -4470,16 +4515,17 @@
4470
4515
  "kind": "class",
4471
4516
  "locationInModule": {
4472
4517
  "filename": "src/providers/common.ts",
4473
- "line": 3
4518
+ "line": 6
4474
4519
  },
4475
4520
  "methods": [
4476
4521
  {
4477
4522
  "docs": {
4478
- "stability": "experimental"
4523
+ "stability": "experimental",
4524
+ "summary": "Use the latest version available at the time the runner provider image is built."
4479
4525
  },
4480
4526
  "locationInModule": {
4481
4527
  "filename": "src/providers/common.ts",
4482
- "line": 4
4528
+ "line": 10
4483
4529
  },
4484
4530
  "name": "latest",
4485
4531
  "returns": {
@@ -4491,15 +4537,20 @@
4491
4537
  },
4492
4538
  {
4493
4539
  "docs": {
4494
- "stability": "experimental"
4540
+ "see": "https://github.com/actions/runner/releases",
4541
+ "stability": "experimental",
4542
+ "summary": "Use a specific version."
4495
4543
  },
4496
4544
  "locationInModule": {
4497
4545
  "filename": "src/providers/common.ts",
4498
- "line": 8
4546
+ "line": 21
4499
4547
  },
4500
4548
  "name": "specific",
4501
4549
  "parameters": [
4502
4550
  {
4551
+ "docs": {
4552
+ "summary": "GitHub Runner version."
4553
+ },
4503
4554
  "name": "version",
4504
4555
  "type": {
4505
4556
  "primitive": "string"
@@ -4523,7 +4574,7 @@
4523
4574
  "immutable": true,
4524
4575
  "locationInModule": {
4525
4576
  "filename": "src/providers/common.ts",
4526
- "line": 12
4577
+ "line": 25
4527
4578
  },
4528
4579
  "name": "version",
4529
4580
  "type": {
@@ -4547,7 +4598,7 @@
4547
4598
  },
4548
4599
  "locationInModule": {
4549
4600
  "filename": "src/secrets.ts",
4550
- "line": 13
4601
+ "line": 29
4551
4602
  },
4552
4603
  "parameters": [
4553
4604
  {
@@ -4573,12 +4624,14 @@
4573
4624
  "properties": [
4574
4625
  {
4575
4626
  "docs": {
4576
- "stability": "experimental"
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."
4577
4630
  },
4578
4631
  "immutable": true,
4579
4632
  "locationInModule": {
4580
4633
  "filename": "src/secrets.ts",
4581
- "line": 10
4634
+ "line": 20
4582
4635
  },
4583
4636
  "name": "github",
4584
4637
  "type": {
@@ -4587,12 +4640,14 @@
4587
4640
  },
4588
4641
  {
4589
4642
  "docs": {
4590
- "stability": "experimental"
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."
4591
4646
  },
4592
4647
  "immutable": true,
4593
4648
  "locationInModule": {
4594
4649
  "filename": "src/secrets.ts",
4595
- "line": 11
4650
+ "line": 27
4596
4651
  },
4597
4652
  "name": "githubPrivateKey",
4598
4653
  "type": {
@@ -4601,12 +4656,13 @@
4601
4656
  },
4602
4657
  {
4603
4658
  "docs": {
4604
- "stability": "experimental"
4659
+ "stability": "experimental",
4660
+ "summary": "Webhook secret used to confirm events are coming from GitHub and nowhere else."
4605
4661
  },
4606
4662
  "immutable": true,
4607
4663
  "locationInModule": {
4608
4664
  "filename": "src/secrets.ts",
4609
- "line": 9
4665
+ "line": 12
4610
4666
  },
4611
4667
  "name": "webhook",
4612
4668
  "type": {
@@ -4617,6 +4673,6 @@
4617
4673
  "symbolId": "src/secrets:Secrets"
4618
4674
  }
4619
4675
  },
4620
- "version": "0.0.10",
4621
- "fingerprint": "bZHmu0Hc1eyiigB7iap5TZsPwVYYnt2qlvJMUOyMGrk="
4676
+ "version": "0.0.13",
4677
+ "fingerprint": "HWkQX0qLnjcLcPlC1yPdvDaoLc3rEPauFhw6KoEa4fg="
4622
4678
  }