@cloudsnorkel/cdk-github-runners 0.7.2 → 0.7.4

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
@@ -3114,7 +3114,7 @@
3114
3114
  "stability": "experimental"
3115
3115
  },
3116
3116
  "homepage": "https://github.com/CloudSnorkel/cdk-github-runners.git",
3117
- "jsiiVersion": "1.71.0 (build f1f58ae)",
3117
+ "jsiiVersion": "1.72.0 (build 4b8828b)",
3118
3118
  "keywords": [
3119
3119
  "aws",
3120
3120
  "aws-cdk",
@@ -3138,7 +3138,7 @@
3138
3138
  },
3139
3139
  "name": "@cloudsnorkel/cdk-github-runners",
3140
3140
  "readme": {
3141
- "markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)][7]\n[![PyPI](https://img.shields.io/pypi/v/cloudsnorkel.cdk-github-runners?label=pypi&logo=pypi)][6]\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 with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n* Automatically updated build environment with latest runner version\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n| | EC2 | CodeBuild | Fargate | Lambda |\n|------------------|-------------------|----------------------------|----------------|---------------|\n| **Time limit** | Unlimited | 8 hours | Unlimited | 15 minutes |\n| **vCPUs** | Unlimited | 2, 4, 8, or 72 | 0.25 to 4 | 1 to 6 |\n| **RAM** | Unlimited | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | 128mb to 10gb |\n| **Storage** | Unlimited | 50gb to 824gb | 20gb to 200gb | Up to 10gb |\n| **Architecture** | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 |\n| **sudo** | ✔ | ✔ | ✔ | ❌ |\n| **Docker** | ✔ | ✔ (Linux only) | ❌ | ❌ |\n| **Spot pricing** | ✔ | ❌ | ✔ | ❌ |\n| **OS** | Linux, Windows | Linux, Windows | Linux, Windows | Linux |\n\nThe best provider to use mostly depends on your current infrastructure. When in doubt, CodeBuild is always a good choice. Execution history and logs are easy to view, and it has no restrictive limits unless you need to run for more than 8 hours.\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Confirm you're using CDK v2\n2. Install the appropriate package\n 1. [Python][6]\n ```\n pip install cloudsnorkel.cdk-github-runners\n ```\n 2. [TypeScript or JavaScript][7]\n ```\n npm i @cloudsnorkel/cdk-github-runners\n ```\n 3. [Java][8]\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n 4. [Go][11]\n ```\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n 5. [.NET][12]\n ```\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n3. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n4. Deploy your stack\n5. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n6. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n7. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token\n8. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n9. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n10. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[![Demo](demo-thumbnail.jpg)](https://youtu.be/wlyv_3V8lIw)\n\n## Customizing\n\nThe default providers configured by `GitHubRunners` are useful for testing but probably not too much for actual production work. They run in the default VPC or no VPC and have no added IAM permissions. You would usually want to configure the providers yourself.\n\nFor example:\n\n```typescript\nlet vpc: ec2.Vpc;\nlet runnerSg: ec2.SecurityGroup;\nlet dbSg: ec2.SecurityGroup;\nlet bucket: s3.Bucket;\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunner(this, 'codebuild runner', {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\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(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nAnother way to customize runners is by modifying the image used to spin them up. The image contains the [runner][5], any required dependencies, and integration code with the provider. You may choose to customize this image by adding more packages, for example.\n\n```typescript\nconst myBuilder = new CodeBuildImageBuilder(this, 'image builder', {\n dockerfilePath: FargateRunner.LINUX_X64_DOCKERFILE_PATH,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyBuilder.setBuildArg('EXTRA_PACKAGES', 'nginx xz-utils');\n\nconst myProvider = new FargateRunner(this, 'fargate runner', {\n label: 'customized-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuilder: myBuilder,\n});\n\n// create the runner infrastructure\nnew GitHubRunners(stack, 'runners', {\n providers: [myProvider],\n});\n```\n\nYour workflow will then look like:\n\n```yaml\nname: self-hosted example\non: push\njobs:\n self-hosted:\n runs-on: [self-hosted, customized-fargate]\n steps:\n - run: echo hello world\n```\n\nWindows images must be built with AWS Image Builder.\n\n```typescript\nconst myWindowsBuilder = new ContainerImageBuilder(this, 'Windows image builder', {\n architecture: Architecture.X86_64,\n os: Os.WINDOWS,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyWindowsBuilder.addComponent(new ImageBuilderComponent(this, 'Ninja Component',\n {\n displayName: 'Ninja',\n description: 'Download and install Ninja build system',\n platform: 'Windows',\n commands: [\n 'Invoke-WebRequest -UseBasicParsing -Uri \"https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip\" -OutFile ninja.zip',\n 'Expand-Archive ninja.zip -DestinationPath C:\\\\actions',\n 'del ninja.zip',\n ],\n }\n));\n\nconst myProvider = new FargateRunner(this, 'fargate runner', {\n label: 'customized-windows-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuiler: myWindowsBuilder,\n});\n\n// create the runner infrastructure\nnew GitHubRunners(stack, 'runners', {\n providers: [myProvider],\n});\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. If jobs are stuck on pending:\n 1. Make sure `runs-on` in the workflow matches the expected labels set in the runner provider\n 2. If it happens every time, cancel the job and start it again\n4. 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\n5. When using GitHub app, make sure there are active installation in `github.auth.app.installations`\n6. 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://pypi.org/project/cloudsnorkel.cdk-github-runners\n[7]: https://www.npmjs.com/package/@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\n"
3141
+ "markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)][7]\n[![PyPI](https://img.shields.io/pypi/v/cloudsnorkel.cdk-github-runners?label=pypi&logo=pypi)][6]\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 with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n* Automatically updated build environment with latest runner version\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n| | EC2 | CodeBuild | Fargate | Lambda |\n|------------------|-------------------|----------------------------|----------------|---------------|\n| **Time limit** | Unlimited | 8 hours | Unlimited | 15 minutes |\n| **vCPUs** | Unlimited | 2, 4, 8, or 72 | 0.25 to 4 | 1 to 6 |\n| **RAM** | Unlimited | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | 128mb to 10gb |\n| **Storage** | Unlimited | 50gb to 824gb | 20gb to 200gb | Up to 10gb |\n| **Architecture** | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 |\n| **sudo** | ✔ | ✔ | ✔ | ❌ |\n| **Docker** | ✔ | ✔ (Linux only) | ❌ | ❌ |\n| **Spot pricing** | ✔ | ❌ | ✔ | ❌ |\n| **OS** | Linux, Windows | Linux, Windows | Linux, Windows | Linux |\n\nThe best provider to use mostly depends on your current infrastructure. When in doubt, CodeBuild is always a good choice. Execution history and logs are easy to view, and it has no restrictive limits unless you need to run for more than 8 hours.\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Confirm you're using CDK v2\n2. Install the appropriate package\n 1. [Python][6]\n ```\n pip install cloudsnorkel.cdk-github-runners\n ```\n 2. [TypeScript or JavaScript][7]\n ```\n npm i @cloudsnorkel/cdk-github-runners\n ```\n 3. [Java][8]\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n 4. [Go][11]\n ```\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n 5. [.NET][12]\n ```\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n3. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n4. Deploy your stack\n5. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n6. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n7. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token\n8. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n9. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n10. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[![Demo](demo-thumbnail.jpg)](https://youtu.be/wlyv_3V8lIw)\n\n## Customizing\n\nThe default providers configured by `GitHubRunners` are useful for testing but probably not too much for actual production work. They run in the default VPC or no VPC and have no added IAM permissions. You would usually want to configure the providers yourself.\n\nFor example:\n\n```typescript\nlet vpc: ec2.Vpc;\nlet runnerSg: ec2.SecurityGroup;\nlet dbSg: ec2.SecurityGroup;\nlet bucket: s3.Bucket;\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunner(this, 'codebuild runner', {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\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(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nAnother way to customize runners is by modifying the image used to spin them up. The image contains the [runner][5], any required dependencies, and integration code with the provider. You may choose to customize this image by adding more packages, for example.\n\n```typescript\nconst myBuilder = new CodeBuildImageBuilder(this, 'image builder', {\n dockerfilePath: FargateRunner.LINUX_X64_DOCKERFILE_PATH,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyBuilder.setBuildArg('EXTRA_PACKAGES', 'nginx xz-utils');\n\nconst myProvider = new FargateRunner(this, 'fargate runner', {\n label: 'customized-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuilder: myBuilder,\n});\n\n// create the runner infrastructure\nnew GitHubRunners(stack, 'runners', {\n providers: [myProvider],\n});\n```\n\nYour workflow will then look like:\n\n```yaml\nname: self-hosted example\non: push\njobs:\n self-hosted:\n runs-on: [self-hosted, customized-fargate]\n steps:\n - run: echo hello world\n```\n\nWindows images must be built with AWS Image Builder.\n\n```typescript\nconst myWindowsBuilder = new ContainerImageBuilder(this, 'Windows image builder', {\n architecture: Architecture.X86_64,\n os: Os.WINDOWS,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyWindowsBuilder.addComponent(new ImageBuilderComponent(this, 'Ninja Component',\n {\n displayName: 'Ninja',\n description: 'Download and install Ninja build system',\n platform: 'Windows',\n commands: [\n 'Invoke-WebRequest -UseBasicParsing -Uri \"https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip\" -OutFile ninja.zip',\n 'Expand-Archive ninja.zip -DestinationPath C:\\\\actions',\n 'del ninja.zip',\n ],\n }\n));\n\nconst myProvider = new FargateRunner(this, 'fargate runner', {\n label: 'customized-windows-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuiler: myWindowsBuilder,\n});\n\n// create the runner infrastructure\nnew GitHubRunners(stack, 'runners', {\n providers: [myProvider],\n});\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. If jobs are stuck on pending:\n 1. Make sure `runs-on` in the workflow matches the expected labels set in the runner provider\n 2. If it happens every time, cancel the job and start it again\n4. 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\n5. When using GitHub app, make sure there are active installation in `github.auth.app.installations`\n6. 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/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/actions-runner-controller\n[5]: https://github.com/actions/runner\n[6]: https://pypi.org/project/cloudsnorkel.cdk-github-runners\n[7]: https://www.npmjs.com/package/@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\n"
3142
3142
  },
3143
3143
  "repository": {
3144
3144
  "type": "git",
@@ -4434,7 +4434,7 @@
4434
4434
  },
4435
4435
  "locationInModule": {
4436
4436
  "filename": "src/providers/codebuild.ts",
4437
- "line": 162
4437
+ "line": 171
4438
4438
  },
4439
4439
  "parameters": [
4440
4440
  {
@@ -4464,9 +4464,39 @@
4464
4464
  "kind": "class",
4465
4465
  "locationInModule": {
4466
4466
  "filename": "src/providers/codebuild.ts",
4467
- "line": 112
4467
+ "line": 120
4468
4468
  },
4469
4469
  "methods": [
4470
+ {
4471
+ "docs": {
4472
+ "stability": "experimental"
4473
+ },
4474
+ "locationInModule": {
4475
+ "filename": "src/providers/common.ts",
4476
+ "line": 477
4477
+ },
4478
+ "name": "addRetry",
4479
+ "parameters": [
4480
+ {
4481
+ "name": "task",
4482
+ "type": {
4483
+ "fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
4484
+ }
4485
+ },
4486
+ {
4487
+ "name": "errors",
4488
+ "type": {
4489
+ "collection": {
4490
+ "elementtype": {
4491
+ "primitive": "string"
4492
+ },
4493
+ "kind": "array"
4494
+ }
4495
+ }
4496
+ }
4497
+ ],
4498
+ "protected": true
4499
+ },
4470
4500
  {
4471
4501
  "docs": {
4472
4502
  "remarks": "Called by GithubRunners and shouldn't be called manually.",
@@ -4475,7 +4505,7 @@
4475
4505
  },
4476
4506
  "locationInModule": {
4477
4507
  "filename": "src/providers/codebuild.ts",
4478
- "line": 285
4508
+ "line": 296
4479
4509
  },
4480
4510
  "name": "getStepFunctionTask",
4481
4511
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -4504,7 +4534,7 @@
4504
4534
  },
4505
4535
  "locationInModule": {
4506
4536
  "filename": "src/providers/codebuild.ts",
4507
- "line": 322
4537
+ "line": 337
4508
4538
  },
4509
4539
  "name": "grantStateMachine",
4510
4540
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -4523,7 +4553,7 @@
4523
4553
  },
4524
4554
  "locationInModule": {
4525
4555
  "filename": "src/providers/common.ts",
4526
- "line": 416
4556
+ "line": 463
4527
4557
  },
4528
4558
  "name": "labelsFromProperties",
4529
4559
  "parameters": [
@@ -4573,7 +4603,7 @@
4573
4603
  },
4574
4604
  "locationInModule": {
4575
4605
  "filename": "src/providers/codebuild.ts",
4576
- "line": 325
4606
+ "line": 340
4577
4607
  },
4578
4608
  "name": "status",
4579
4609
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -4604,7 +4634,7 @@
4604
4634
  "immutable": true,
4605
4635
  "locationInModule": {
4606
4636
  "filename": "src/providers/codebuild.ts",
4607
- "line": 137
4637
+ "line": 145
4608
4638
  },
4609
4639
  "name": "LINUX_ARM64_DOCKERFILE_PATH",
4610
4640
  "static": true,
@@ -4622,7 +4652,7 @@
4622
4652
  "immutable": true,
4623
4653
  "locationInModule": {
4624
4654
  "filename": "src/providers/codebuild.ts",
4625
- "line": 124
4655
+ "line": 132
4626
4656
  },
4627
4657
  "name": "LINUX_X64_DOCKERFILE_PATH",
4628
4658
  "static": true,
@@ -4638,7 +4668,7 @@
4638
4668
  "immutable": true,
4639
4669
  "locationInModule": {
4640
4670
  "filename": "src/providers/codebuild.ts",
4641
- "line": 345
4671
+ "line": 360
4642
4672
  },
4643
4673
  "name": "connections",
4644
4674
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -4654,7 +4684,7 @@
4654
4684
  "immutable": true,
4655
4685
  "locationInModule": {
4656
4686
  "filename": "src/providers/codebuild.ts",
4657
- "line": 152
4687
+ "line": 160
4658
4688
  },
4659
4689
  "name": "grantPrincipal",
4660
4690
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -4671,7 +4701,7 @@
4671
4701
  "immutable": true,
4672
4702
  "locationInModule": {
4673
4703
  "filename": "src/providers/codebuild.ts",
4674
- "line": 157
4704
+ "line": 165
4675
4705
  },
4676
4706
  "name": "image",
4677
4707
  "type": {
@@ -4686,7 +4716,7 @@
4686
4716
  "immutable": true,
4687
4717
  "locationInModule": {
4688
4718
  "filename": "src/providers/codebuild.ts",
4689
- "line": 147
4719
+ "line": 155
4690
4720
  },
4691
4721
  "name": "labels",
4692
4722
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -4707,7 +4737,7 @@
4707
4737
  "immutable": true,
4708
4738
  "locationInModule": {
4709
4739
  "filename": "src/providers/codebuild.ts",
4710
- "line": 142
4740
+ "line": 150
4711
4741
  },
4712
4742
  "name": "project",
4713
4743
  "type": {
@@ -4753,6 +4783,25 @@
4753
4783
  "fqn": "aws-cdk-lib.aws_codebuild.ComputeType"
4754
4784
  }
4755
4785
  },
4786
+ {
4787
+ "abstract": true,
4788
+ "docs": {
4789
+ "default": "true",
4790
+ "remarks": "Disabling this can\nspeed up provisioning of CodeBuild runners. If you don't intend on running or building Docker images, disable this for faster start-up times.",
4791
+ "stability": "experimental",
4792
+ "summary": "Support building and running Docker images by enabling Docker-in-Docker (dind) and the required CodeBuild privileged mode."
4793
+ },
4794
+ "immutable": true,
4795
+ "locationInModule": {
4796
+ "filename": "src/providers/codebuild.ts",
4797
+ "line": 110
4798
+ },
4799
+ "name": "dockerInDocker",
4800
+ "optional": true,
4801
+ "type": {
4802
+ "primitive": "boolean"
4803
+ }
4804
+ },
4756
4805
  {
4757
4806
  "abstract": true,
4758
4807
  "docs": {
@@ -5618,6 +5667,36 @@
5618
5667
  "line": 218
5619
5668
  },
5620
5669
  "methods": [
5670
+ {
5671
+ "docs": {
5672
+ "stability": "experimental"
5673
+ },
5674
+ "locationInModule": {
5675
+ "filename": "src/providers/common.ts",
5676
+ "line": 477
5677
+ },
5678
+ "name": "addRetry",
5679
+ "parameters": [
5680
+ {
5681
+ "name": "task",
5682
+ "type": {
5683
+ "fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
5684
+ }
5685
+ },
5686
+ {
5687
+ "name": "errors",
5688
+ "type": {
5689
+ "collection": {
5690
+ "elementtype": {
5691
+ "primitive": "string"
5692
+ },
5693
+ "kind": "array"
5694
+ }
5695
+ }
5696
+ }
5697
+ ],
5698
+ "protected": true
5699
+ },
5621
5700
  {
5622
5701
  "docs": {
5623
5702
  "remarks": "Called by GithubRunners and shouldn't be called manually.",
@@ -5655,7 +5734,7 @@
5655
5734
  },
5656
5735
  "locationInModule": {
5657
5736
  "filename": "src/providers/ec2.ts",
5658
- "line": 368
5737
+ "line": 370
5659
5738
  },
5660
5739
  "name": "grantStateMachine",
5661
5740
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -5674,7 +5753,7 @@
5674
5753
  },
5675
5754
  "locationInModule": {
5676
5755
  "filename": "src/providers/common.ts",
5677
- "line": 416
5756
+ "line": 463
5678
5757
  },
5679
5758
  "name": "labelsFromProperties",
5680
5759
  "parameters": [
@@ -5724,7 +5803,7 @@
5724
5803
  },
5725
5804
  "locationInModule": {
5726
5805
  "filename": "src/providers/ec2.ts",
5727
- "line": 388
5806
+ "line": 400
5728
5807
  },
5729
5808
  "name": "status",
5730
5809
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -5753,7 +5832,7 @@
5753
5832
  "immutable": true,
5754
5833
  "locationInModule": {
5755
5834
  "filename": "src/providers/ec2.ts",
5756
- "line": 409
5835
+ "line": 421
5757
5836
  },
5758
5837
  "name": "connections",
5759
5838
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -6085,6 +6164,36 @@
6085
6164
  "line": 205
6086
6165
  },
6087
6166
  "methods": [
6167
+ {
6168
+ "docs": {
6169
+ "stability": "experimental"
6170
+ },
6171
+ "locationInModule": {
6172
+ "filename": "src/providers/common.ts",
6173
+ "line": 477
6174
+ },
6175
+ "name": "addRetry",
6176
+ "parameters": [
6177
+ {
6178
+ "name": "task",
6179
+ "type": {
6180
+ "fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
6181
+ }
6182
+ },
6183
+ {
6184
+ "name": "errors",
6185
+ "type": {
6186
+ "collection": {
6187
+ "elementtype": {
6188
+ "primitive": "string"
6189
+ },
6190
+ "kind": "array"
6191
+ }
6192
+ }
6193
+ }
6194
+ ],
6195
+ "protected": true
6196
+ },
6088
6197
  {
6089
6198
  "docs": {
6090
6199
  "remarks": "Called by GithubRunners and shouldn't be called manually.",
@@ -6122,7 +6231,7 @@
6122
6231
  },
6123
6232
  "locationInModule": {
6124
6233
  "filename": "src/providers/fargate.ts",
6125
- "line": 414
6234
+ "line": 418
6126
6235
  },
6127
6236
  "name": "grantStateMachine",
6128
6237
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -6141,7 +6250,7 @@
6141
6250
  },
6142
6251
  "locationInModule": {
6143
6252
  "filename": "src/providers/common.ts",
6144
- "line": 416
6253
+ "line": 463
6145
6254
  },
6146
6255
  "name": "labelsFromProperties",
6147
6256
  "parameters": [
@@ -6191,7 +6300,7 @@
6191
6300
  },
6192
6301
  "locationInModule": {
6193
6302
  "filename": "src/providers/fargate.ts",
6194
- "line": 417
6303
+ "line": 421
6195
6304
  },
6196
6305
  "name": "status",
6197
6306
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -6716,7 +6825,7 @@
6716
6825
  },
6717
6826
  "locationInModule": {
6718
6827
  "filename": "src/runner.ts",
6719
- "line": 144
6828
+ "line": 187
6720
6829
  },
6721
6830
  "parameters": [
6722
6831
  {
@@ -6743,7 +6852,7 @@
6743
6852
  "kind": "class",
6744
6853
  "locationInModule": {
6745
6854
  "filename": "src/runner.ts",
6746
- "line": 127
6855
+ "line": 169
6747
6856
  },
6748
6857
  "name": "GitHubRunners",
6749
6858
  "properties": [
@@ -6755,7 +6864,7 @@
6755
6864
  "immutable": true,
6756
6865
  "locationInModule": {
6757
6866
  "filename": "src/runner.ts",
6758
- "line": 131
6867
+ "line": 173
6759
6868
  },
6760
6869
  "name": "providers",
6761
6870
  "type": {
@@ -6775,7 +6884,7 @@
6775
6884
  "immutable": true,
6776
6885
  "locationInModule": {
6777
6886
  "filename": "src/runner.ts",
6778
- "line": 136
6887
+ "line": 178
6779
6888
  },
6780
6889
  "name": "secrets",
6781
6890
  "type": {
@@ -6789,7 +6898,7 @@
6789
6898
  "immutable": true,
6790
6899
  "locationInModule": {
6791
6900
  "filename": "src/runner.ts",
6792
- "line": 144
6901
+ "line": 187
6793
6902
  },
6794
6903
  "name": "props",
6795
6904
  "optional": true,
@@ -6811,7 +6920,7 @@
6811
6920
  "kind": "interface",
6812
6921
  "locationInModule": {
6813
6922
  "filename": "src/runner.ts",
6814
- "line": 22
6923
+ "line": 24
6815
6924
  },
6816
6925
  "name": "GitHubRunnersProps",
6817
6926
  "properties": [
@@ -6826,7 +6935,7 @@
6826
6935
  "immutable": true,
6827
6936
  "locationInModule": {
6828
6937
  "filename": "src/runner.ts",
6829
- "line": 45
6938
+ "line": 47
6830
6939
  },
6831
6940
  "name": "allowPublicSubnet",
6832
6941
  "optional": true,
@@ -6844,7 +6953,7 @@
6844
6953
  "immutable": true,
6845
6954
  "locationInModule": {
6846
6955
  "filename": "src/runner.ts",
6847
- "line": 77
6956
+ "line": 79
6848
6957
  },
6849
6958
  "name": "extraCertificates",
6850
6959
  "optional": true,
@@ -6863,7 +6972,7 @@
6863
6972
  "immutable": true,
6864
6973
  "locationInModule": {
6865
6974
  "filename": "src/runner.ts",
6866
- "line": 84
6975
+ "line": 86
6867
6976
  },
6868
6977
  "name": "idleTimeout",
6869
6978
  "optional": true,
@@ -6871,6 +6980,24 @@
6871
6980
  "fqn": "aws-cdk-lib.Duration"
6872
6981
  }
6873
6982
  },
6983
+ {
6984
+ "abstract": true,
6985
+ "docs": {
6986
+ "default": "no logs",
6987
+ "stability": "experimental",
6988
+ "summary": "Logging options for the state machine that manages the runners."
6989
+ },
6990
+ "immutable": true,
6991
+ "locationInModule": {
6992
+ "filename": "src/runner.ts",
6993
+ "line": 93
6994
+ },
6995
+ "name": "logOptions",
6996
+ "optional": true,
6997
+ "type": {
6998
+ "fqn": "@cloudsnorkel/cdk-github-runners.LogOptions"
6999
+ }
7000
+ },
6874
7001
  {
6875
7002
  "abstract": true,
6876
7003
  "docs": {
@@ -6882,7 +7009,7 @@
6882
7009
  "immutable": true,
6883
7010
  "locationInModule": {
6884
7011
  "filename": "src/runner.ts",
6885
- "line": 28
7012
+ "line": 30
6886
7013
  },
6887
7014
  "name": "providers",
6888
7015
  "optional": true,
@@ -6905,7 +7032,7 @@
6905
7032
  "immutable": true,
6906
7033
  "locationInModule": {
6907
7034
  "filename": "src/runner.ts",
6908
- "line": 50
7035
+ "line": 52
6909
7036
  },
6910
7037
  "name": "securityGroup",
6911
7038
  "optional": true,
@@ -6923,7 +7050,7 @@
6923
7050
  "immutable": true,
6924
7051
  "locationInModule": {
6925
7052
  "filename": "src/runner.ts",
6926
- "line": 33
7053
+ "line": 35
6927
7054
  },
6928
7055
  "name": "vpc",
6929
7056
  "optional": true,
@@ -6941,7 +7068,7 @@
6941
7068
  "immutable": true,
6942
7069
  "locationInModule": {
6943
7070
  "filename": "src/runner.ts",
6944
- "line": 38
7071
+ "line": 40
6945
7072
  },
6946
7073
  "name": "vpcSubnets",
6947
7074
  "optional": true,
@@ -7036,7 +7163,7 @@
7036
7163
  "kind": "interface",
7037
7164
  "locationInModule": {
7038
7165
  "filename": "src/providers/common.ts",
7039
- "line": 320
7166
+ "line": 360
7040
7167
  },
7041
7168
  "name": "IRunnerAmiStatus",
7042
7169
  "properties": [
@@ -7049,7 +7176,7 @@
7049
7176
  "immutable": true,
7050
7177
  "locationInModule": {
7051
7178
  "filename": "src/providers/common.ts",
7052
- "line": 324
7179
+ "line": 364
7053
7180
  },
7054
7181
  "name": "launchTemplate",
7055
7182
  "type": {
@@ -7065,7 +7192,7 @@
7065
7192
  "immutable": true,
7066
7193
  "locationInModule": {
7067
7194
  "filename": "src/providers/common.ts",
7068
- "line": 329
7195
+ "line": 369
7069
7196
  },
7070
7197
  "name": "amiBuilderLogGroup",
7071
7198
  "optional": true,
@@ -7086,7 +7213,7 @@
7086
7213
  "kind": "interface",
7087
7214
  "locationInModule": {
7088
7215
  "filename": "src/providers/common.ts",
7089
- "line": 300
7216
+ "line": 340
7090
7217
  },
7091
7218
  "name": "IRunnerImageStatus",
7092
7219
  "properties": [
@@ -7099,7 +7226,7 @@
7099
7226
  "immutable": true,
7100
7227
  "locationInModule": {
7101
7228
  "filename": "src/providers/common.ts",
7102
- "line": 304
7229
+ "line": 344
7103
7230
  },
7104
7231
  "name": "imageRepository",
7105
7232
  "type": {
@@ -7115,7 +7242,7 @@
7115
7242
  "immutable": true,
7116
7243
  "locationInModule": {
7117
7244
  "filename": "src/providers/common.ts",
7118
- "line": 309
7245
+ "line": 349
7119
7246
  },
7120
7247
  "name": "imageTag",
7121
7248
  "type": {
@@ -7131,7 +7258,7 @@
7131
7258
  "immutable": true,
7132
7259
  "locationInModule": {
7133
7260
  "filename": "src/providers/common.ts",
7134
- "line": 314
7261
+ "line": 354
7135
7262
  },
7136
7263
  "name": "imageBuilderLogGroup",
7137
7264
  "optional": true,
@@ -7157,7 +7284,7 @@
7157
7284
  "kind": "interface",
7158
7285
  "locationInModule": {
7159
7286
  "filename": "src/providers/common.ts",
7160
- "line": 375
7287
+ "line": 415
7161
7288
  },
7162
7289
  "methods": [
7163
7290
  {
@@ -7169,7 +7296,7 @@
7169
7296
  },
7170
7297
  "locationInModule": {
7171
7298
  "filename": "src/providers/common.ts",
7172
- "line": 392
7299
+ "line": 432
7173
7300
  },
7174
7301
  "name": "getStepFunctionTask",
7175
7302
  "parameters": [
@@ -7198,7 +7325,7 @@
7198
7325
  },
7199
7326
  "locationInModule": {
7200
7327
  "filename": "src/providers/common.ts",
7201
- "line": 400
7328
+ "line": 440
7202
7329
  },
7203
7330
  "name": "grantStateMachine",
7204
7331
  "parameters": [
@@ -7222,7 +7349,7 @@
7222
7349
  },
7223
7350
  "locationInModule": {
7224
7351
  "filename": "src/providers/common.ts",
7225
- "line": 407
7352
+ "line": 447
7226
7353
  },
7227
7354
  "name": "status",
7228
7355
  "parameters": [
@@ -7255,7 +7382,7 @@
7255
7382
  "immutable": true,
7256
7383
  "locationInModule": {
7257
7384
  "filename": "src/providers/common.ts",
7258
- "line": 383
7385
+ "line": 423
7259
7386
  },
7260
7387
  "name": "labels",
7261
7388
  "type": {
@@ -7280,7 +7407,7 @@
7280
7407
  "kind": "interface",
7281
7408
  "locationInModule": {
7282
7409
  "filename": "src/providers/common.ts",
7283
- "line": 335
7410
+ "line": 375
7284
7411
  },
7285
7412
  "name": "IRunnerProviderStatus",
7286
7413
  "properties": [
@@ -7293,7 +7420,7 @@
7293
7420
  "immutable": true,
7294
7421
  "locationInModule": {
7295
7422
  "filename": "src/providers/common.ts",
7296
- "line": 344
7423
+ "line": 384
7297
7424
  },
7298
7425
  "name": "labels",
7299
7426
  "type": {
@@ -7314,7 +7441,7 @@
7314
7441
  "immutable": true,
7315
7442
  "locationInModule": {
7316
7443
  "filename": "src/providers/common.ts",
7317
- "line": 339
7444
+ "line": 379
7318
7445
  },
7319
7446
  "name": "type",
7320
7447
  "type": {
@@ -7330,7 +7457,7 @@
7330
7457
  "immutable": true,
7331
7458
  "locationInModule": {
7332
7459
  "filename": "src/providers/common.ts",
7333
- "line": 369
7460
+ "line": 409
7334
7461
  },
7335
7462
  "name": "ami",
7336
7463
  "optional": true,
@@ -7347,7 +7474,7 @@
7347
7474
  "immutable": true,
7348
7475
  "locationInModule": {
7349
7476
  "filename": "src/providers/common.ts",
7350
- "line": 364
7477
+ "line": 404
7351
7478
  },
7352
7479
  "name": "image",
7353
7480
  "optional": true,
@@ -7364,7 +7491,7 @@
7364
7491
  "immutable": true,
7365
7492
  "locationInModule": {
7366
7493
  "filename": "src/providers/common.ts",
7367
- "line": 359
7494
+ "line": 399
7368
7495
  },
7369
7496
  "name": "roleArn",
7370
7497
  "optional": true,
@@ -7381,7 +7508,7 @@
7381
7508
  "immutable": true,
7382
7509
  "locationInModule": {
7383
7510
  "filename": "src/providers/common.ts",
7384
- "line": 354
7511
+ "line": 394
7385
7512
  },
7386
7513
  "name": "securityGroups",
7387
7514
  "optional": true,
@@ -7403,7 +7530,7 @@
7403
7530
  "immutable": true,
7404
7531
  "locationInModule": {
7405
7532
  "filename": "src/providers/common.ts",
7406
- "line": 349
7533
+ "line": 389
7407
7534
  },
7408
7535
  "name": "vpcArn",
7409
7536
  "optional": true,
@@ -7758,6 +7885,36 @@
7758
7885
  "line": 123
7759
7886
  },
7760
7887
  "methods": [
7888
+ {
7889
+ "docs": {
7890
+ "stability": "experimental"
7891
+ },
7892
+ "locationInModule": {
7893
+ "filename": "src/providers/common.ts",
7894
+ "line": 477
7895
+ },
7896
+ "name": "addRetry",
7897
+ "parameters": [
7898
+ {
7899
+ "name": "task",
7900
+ "type": {
7901
+ "fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
7902
+ }
7903
+ },
7904
+ {
7905
+ "name": "errors",
7906
+ "type": {
7907
+ "collection": {
7908
+ "elementtype": {
7909
+ "primitive": "string"
7910
+ },
7911
+ "kind": "array"
7912
+ }
7913
+ }
7914
+ }
7915
+ ],
7916
+ "protected": true
7917
+ },
7761
7918
  {
7762
7919
  "docs": {
7763
7920
  "remarks": "Called by GithubRunners and shouldn't be called manually.",
@@ -7795,7 +7952,7 @@
7795
7952
  },
7796
7953
  "locationInModule": {
7797
7954
  "filename": "src/providers/lambda.ts",
7798
- "line": 303
7955
+ "line": 307
7799
7956
  },
7800
7957
  "name": "grantStateMachine",
7801
7958
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -7814,7 +7971,7 @@
7814
7971
  },
7815
7972
  "locationInModule": {
7816
7973
  "filename": "src/providers/common.ts",
7817
- "line": 416
7974
+ "line": 463
7818
7975
  },
7819
7976
  "name": "labelsFromProperties",
7820
7977
  "parameters": [
@@ -7864,7 +8021,7 @@
7864
8021
  },
7865
8022
  "locationInModule": {
7866
8023
  "filename": "src/providers/lambda.ts",
7867
- "line": 306
8024
+ "line": 310
7868
8025
  },
7869
8026
  "name": "status",
7870
8027
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -8542,6 +8699,96 @@
8542
8699
  "name": "LinuxUbuntuComponents",
8543
8700
  "symbolId": "src/providers/image-builders/linux-components:LinuxUbuntuComponents"
8544
8701
  },
8702
+ "@cloudsnorkel/cdk-github-runners.LogOptions": {
8703
+ "assembly": "@cloudsnorkel/cdk-github-runners",
8704
+ "datatype": true,
8705
+ "docs": {
8706
+ "stability": "experimental",
8707
+ "summary": "Defines what execution history events are logged and where they are logged."
8708
+ },
8709
+ "fqn": "@cloudsnorkel/cdk-github-runners.LogOptions",
8710
+ "kind": "interface",
8711
+ "locationInModule": {
8712
+ "filename": "src/runner.ts",
8713
+ "line": 99
8714
+ },
8715
+ "name": "LogOptions",
8716
+ "properties": [
8717
+ {
8718
+ "abstract": true,
8719
+ "docs": {
8720
+ "default": "false",
8721
+ "stability": "experimental",
8722
+ "summary": "Determines whether execution data is included in your log."
8723
+ },
8724
+ "immutable": true,
8725
+ "locationInModule": {
8726
+ "filename": "src/runner.ts",
8727
+ "line": 110
8728
+ },
8729
+ "name": "includeExecutionData",
8730
+ "optional": true,
8731
+ "type": {
8732
+ "primitive": "boolean"
8733
+ }
8734
+ },
8735
+ {
8736
+ "abstract": true,
8737
+ "docs": {
8738
+ "default": "ERROR",
8739
+ "stability": "experimental",
8740
+ "summary": "Defines which category of execution history events are logged."
8741
+ },
8742
+ "immutable": true,
8743
+ "locationInModule": {
8744
+ "filename": "src/runner.ts",
8745
+ "line": 117
8746
+ },
8747
+ "name": "level",
8748
+ "optional": true,
8749
+ "type": {
8750
+ "fqn": "aws-cdk-lib.aws_stepfunctions.LogLevel"
8751
+ }
8752
+ },
8753
+ {
8754
+ "abstract": true,
8755
+ "docs": {
8756
+ "stability": "experimental",
8757
+ "summary": "The log group where the execution history events will be logged."
8758
+ },
8759
+ "immutable": true,
8760
+ "locationInModule": {
8761
+ "filename": "src/runner.ts",
8762
+ "line": 103
8763
+ },
8764
+ "name": "logGroupName",
8765
+ "optional": true,
8766
+ "type": {
8767
+ "primitive": "string"
8768
+ }
8769
+ },
8770
+ {
8771
+ "abstract": true,
8772
+ "docs": {
8773
+ "default": "logs.RetentionDays.ONE_MONTH",
8774
+ "remarks": "When updating\nthis property, unsetting it doesn't remove the log retention policy. To\nremove the retention policy, set the value to `INFINITE`.",
8775
+ "stability": "experimental",
8776
+ "summary": "The number of days log events are kept in CloudWatch Logs."
8777
+ },
8778
+ "immutable": true,
8779
+ "locationInModule": {
8780
+ "filename": "src/runner.ts",
8781
+ "line": 126
8782
+ },
8783
+ "name": "logRetention",
8784
+ "optional": true,
8785
+ "type": {
8786
+ "fqn": "aws-cdk-lib.aws_logs.RetentionDays"
8787
+ }
8788
+ }
8789
+ ],
8790
+ "symbolId": "src/runner:LogOptions"
8791
+ },
8545
8792
  "@cloudsnorkel/cdk-github-runners.Os": {
8546
8793
  "assembly": "@cloudsnorkel/cdk-github-runners",
8547
8794
  "docs": {
@@ -8668,6 +8915,99 @@
8668
8915
  ],
8669
8916
  "symbolId": "src/providers/common:Os"
8670
8917
  },
8918
+ "@cloudsnorkel/cdk-github-runners.ProviderRetryOptions": {
8919
+ "assembly": "@cloudsnorkel/cdk-github-runners",
8920
+ "datatype": true,
8921
+ "docs": {
8922
+ "remarks": "The default is to retry 10 times for about 45 minutes with increasing interval.",
8923
+ "stability": "experimental",
8924
+ "summary": "Retry options for providers."
8925
+ },
8926
+ "fqn": "@cloudsnorkel/cdk-github-runners.ProviderRetryOptions",
8927
+ "kind": "interface",
8928
+ "locationInModule": {
8929
+ "filename": "src/providers/common.ts",
8930
+ "line": 250
8931
+ },
8932
+ "name": "ProviderRetryOptions",
8933
+ "properties": [
8934
+ {
8935
+ "abstract": true,
8936
+ "docs": {
8937
+ "default": "1.3",
8938
+ "stability": "experimental",
8939
+ "summary": "Multiplication for how much longer the wait interval gets on every retry."
8940
+ },
8941
+ "immutable": true,
8942
+ "locationInModule": {
8943
+ "filename": "src/providers/common.ts",
8944
+ "line": 277
8945
+ },
8946
+ "name": "backoffRate",
8947
+ "optional": true,
8948
+ "type": {
8949
+ "primitive": "number"
8950
+ }
8951
+ },
8952
+ {
8953
+ "abstract": true,
8954
+ "docs": {
8955
+ "default": "1 minute",
8956
+ "remarks": "This interval will be multiplied by {@link backoffRate} each retry.",
8957
+ "stability": "experimental",
8958
+ "summary": "How much time to wait after first retryable failure."
8959
+ },
8960
+ "immutable": true,
8961
+ "locationInModule": {
8962
+ "filename": "src/providers/common.ts",
8963
+ "line": 263
8964
+ },
8965
+ "name": "interval",
8966
+ "optional": true,
8967
+ "type": {
8968
+ "fqn": "aws-cdk-lib.Duration"
8969
+ }
8970
+ },
8971
+ {
8972
+ "abstract": true,
8973
+ "docs": {
8974
+ "default": "10",
8975
+ "stability": "experimental",
8976
+ "summary": "How many times to retry."
8977
+ },
8978
+ "immutable": true,
8979
+ "locationInModule": {
8980
+ "filename": "src/providers/common.ts",
8981
+ "line": 270
8982
+ },
8983
+ "name": "maxAttempts",
8984
+ "optional": true,
8985
+ "type": {
8986
+ "primitive": "number"
8987
+ }
8988
+ },
8989
+ {
8990
+ "abstract": true,
8991
+ "docs": {
8992
+ "default": "true",
8993
+ "remarks": "Which failures generate a retry depends on the specific provider.",
8994
+ "stability": "experimental",
8995
+ "summary": "Set to true to retry provider on supported failures."
8996
+ },
8997
+ "immutable": true,
8998
+ "locationInModule": {
8999
+ "filename": "src/providers/common.ts",
9000
+ "line": 256
9001
+ },
9002
+ "name": "retry",
9003
+ "optional": true,
9004
+ "type": {
9005
+ "primitive": "boolean"
9006
+ }
9007
+ }
9008
+ ],
9009
+ "symbolId": "src/providers/common:ProviderRetryOptions"
9010
+ },
8671
9011
  "@cloudsnorkel/cdk-github-runners.RunnerAmi": {
8672
9012
  "assembly": "@cloudsnorkel/cdk-github-runners",
8673
9013
  "datatype": true,
@@ -8893,7 +9233,7 @@
8893
9233
  "kind": "interface",
8894
9234
  "locationInModule": {
8895
9235
  "filename": "src/providers/common.ts",
8896
- "line": 250
9236
+ "line": 283
8897
9237
  },
8898
9238
  "name": "RunnerProviderProps",
8899
9239
  "properties": [
@@ -8908,13 +9248,31 @@
8908
9248
  "immutable": true,
8909
9249
  "locationInModule": {
8910
9250
  "filename": "src/providers/common.ts",
8911
- "line": 258
9251
+ "line": 291
8912
9252
  },
8913
9253
  "name": "logRetention",
8914
9254
  "optional": true,
8915
9255
  "type": {
8916
9256
  "fqn": "aws-cdk-lib.aws_logs.RetentionDays"
8917
9257
  }
9258
+ },
9259
+ {
9260
+ "abstract": true,
9261
+ "docs": {
9262
+ "default": "retry 10 times up to about 45 minutes",
9263
+ "stability": "experimental",
9264
+ "summary": "Options to retry operation in case of failure like missing capacity, or API quota issues."
9265
+ },
9266
+ "immutable": true,
9267
+ "locationInModule": {
9268
+ "filename": "src/providers/common.ts",
9269
+ "line": 298
9270
+ },
9271
+ "name": "retryOptions",
9272
+ "optional": true,
9273
+ "type": {
9274
+ "fqn": "@cloudsnorkel/cdk-github-runners.ProviderRetryOptions"
9275
+ }
8918
9276
  }
8919
9277
  ],
8920
9278
  "symbolId": "src/providers/common:RunnerProviderProps"
@@ -8931,7 +9289,7 @@
8931
9289
  "kind": "interface",
8932
9290
  "locationInModule": {
8933
9291
  "filename": "src/providers/common.ts",
8934
- "line": 270
9292
+ "line": 310
8935
9293
  },
8936
9294
  "name": "RunnerRuntimeParameters",
8937
9295
  "properties": [
@@ -8945,7 +9303,7 @@
8945
9303
  "immutable": true,
8946
9304
  "locationInModule": {
8947
9305
  "filename": "src/providers/common.ts",
8948
- "line": 284
9306
+ "line": 324
8949
9307
  },
8950
9308
  "name": "githubDomainPath",
8951
9309
  "type": {
@@ -8961,7 +9319,7 @@
8961
9319
  "immutable": true,
8962
9320
  "locationInModule": {
8963
9321
  "filename": "src/providers/common.ts",
8964
- "line": 289
9322
+ "line": 329
8965
9323
  },
8966
9324
  "name": "ownerPath",
8967
9325
  "type": {
@@ -8977,7 +9335,7 @@
8977
9335
  "immutable": true,
8978
9336
  "locationInModule": {
8979
9337
  "filename": "src/providers/common.ts",
8980
- "line": 294
9338
+ "line": 334
8981
9339
  },
8982
9340
  "name": "repoPath",
8983
9341
  "type": {
@@ -8994,7 +9352,7 @@
8994
9352
  "immutable": true,
8995
9353
  "locationInModule": {
8996
9354
  "filename": "src/providers/common.ts",
8997
- "line": 279
9355
+ "line": 319
8998
9356
  },
8999
9357
  "name": "runnerNamePath",
9000
9358
  "type": {
@@ -9010,7 +9368,7 @@
9010
9368
  "immutable": true,
9011
9369
  "locationInModule": {
9012
9370
  "filename": "src/providers/common.ts",
9013
- "line": 274
9371
+ "line": 314
9014
9372
  },
9015
9373
  "name": "runnerTokenPath",
9016
9374
  "type": {
@@ -9636,6 +9994,6 @@
9636
9994
  "symbolId": "src/providers/image-builders/windows-components:WindowsComponents"
9637
9995
  }
9638
9996
  },
9639
- "version": "0.7.2",
9640
- "fingerprint": "4HxP5z3vyA+XMrHiQPYYCxZms8CLpqg1YeSfxwpEKtk="
9997
+ "version": "0.7.4",
9998
+ "fingerprint": "3UVhk5ng35wJIwrOZROcnXMz+h05AAzyrjETi7b4/50="
9641
9999
  }