@cloudsnorkel/cdk-github-runners 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.gitattributes +6 -1
  2. package/.jsii +1225 -174
  3. package/API.md +1047 -64
  4. package/README.md +54 -44
  5. package/lib/index.d.ts +3 -1
  6. package/lib/index.js +7 -1
  7. package/lib/lambdas/build-image/index.js +121 -0
  8. package/lib/lambdas/setup/index.js +2 -2
  9. package/lib/lambdas/update-lambda/index.js +55 -0
  10. package/lib/providers/codebuild.d.ts +31 -1
  11. package/lib/providers/codebuild.js +57 -13
  12. package/lib/providers/common.d.ts +87 -6
  13. package/lib/providers/common.js +64 -4
  14. package/lib/providers/docker-images/codebuild/linux-arm64/Dockerfile +59 -0
  15. package/lib/providers/docker-images/codebuild/{Dockerfile → linux-x64/Dockerfile} +10 -5
  16. package/lib/providers/docker-images/fargate/linux-arm64/Dockerfile +41 -0
  17. package/lib/providers/docker-images/fargate/{runner.sh → linux-arm64/runner.sh} +0 -0
  18. package/lib/providers/docker-images/fargate/{Dockerfile → linux-x64/Dockerfile} +10 -5
  19. package/lib/providers/docker-images/fargate/linux-x64/runner.sh +5 -0
  20. package/lib/providers/docker-images/lambda/linux-arm64/Dockerfile +32 -0
  21. package/lib/providers/docker-images/lambda/{runner.js → linux-arm64/runner.js} +0 -0
  22. package/lib/providers/docker-images/lambda/{runner.sh → linux-arm64/runner.sh} +0 -0
  23. package/lib/providers/docker-images/lambda/linux-x64/Dockerfile +31 -0
  24. package/lib/providers/docker-images/lambda/linux-x64/runner.js +29 -0
  25. package/lib/providers/docker-images/lambda/linux-x64/runner.sh +12 -0
  26. package/lib/providers/fargate.d.ts +33 -1
  27. package/lib/providers/fargate.js +39 -8
  28. package/lib/providers/image-builders/codebuild.d.ts +170 -0
  29. package/lib/providers/image-builders/codebuild.js +340 -0
  30. package/lib/providers/image-builders/static.d.ts +29 -0
  31. package/lib/providers/image-builders/static.js +58 -0
  32. package/lib/providers/lambda.d.ts +27 -1
  33. package/lib/providers/lambda.js +88 -9
  34. package/lib/runner.d.ts +2 -2
  35. package/lib/runner.js +7 -3
  36. package/lib/secrets.js +1 -1
  37. package/lib/utils.d.ts +2 -1
  38. package/lib/utils.js +14 -3
  39. package/lib/webhook.js +2 -1
  40. package/package.json +8 -7
  41. package/lib/providers/docker-images/lambda/Dockerfile +0 -27
package/.jsii CHANGED
@@ -2971,7 +2971,7 @@
2971
2971
  "stability": "experimental"
2972
2972
  },
2973
2973
  "homepage": "https://github.com/CloudSnorkel/cdk-github-runners.git",
2974
- "jsiiVersion": "1.60.1 (build 2799dc8)",
2974
+ "jsiiVersion": "1.61.0 (build abf4039)",
2975
2975
  "keywords": [
2976
2976
  "aws",
2977
2977
  "aws-cdk",
@@ -2995,7 +2995,7 @@
2995
2995
  },
2996
2996
  "name": "@cloudsnorkel/cdk-github-runners",
2997
2997
  "readme": {
2998
- "markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[![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 with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n| | CodeBuild | Fargate | Lambda |\n|----------------|--------------------------|---------------|---------------|\n| **Time limit** | 8 hours | Unlimited | 15 minutes |\n| **vCPUs** | 2, 4, 8, or 72 | 0.25 to 4 | 1 to 6 |\n| **RAM** | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | 128mb to 10gb |\n| **Storage** | 50gb to 824gb | 20gb to 200gb | Up to 10gb |\n| **sudo** | ✔ | ✔ | ❌ |\n| **Docker** | ✔ | ❌ | ❌ |\n| **Spot** | ❌ | ✔ | ❌ |\n\nThe best provider to use mostly depends on your current infrastructure. When in doubt, CodeBuild is always a good choice. Execution history and logs are easy to view, and it has no restrictive limits unless you need to run for more than 8 hours.\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Confirm you're using CDK v2\n2. Install the appropriate package\n 1. [Python][6]\n ```\n pip install cloudsnorkel.cdk-github-runners\n ```\n 2. [TypeScript or JavaScript][7]\n ```\n npm i @cloudsnorkel/cdk-github-runners\n ```\n 3. [Java][8]\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n 4. [Go][11]\n ```\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n 5. [.NET][12]\n ```\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n3. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n4. Deploy your stack\n5. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n6. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n7. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token\n8. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n9. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n10. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[![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\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_ec2 as ec2, aws_s3 as s3 } from 'aws-cdk-lib';\nimport { GitHubRunners, CodeBuildRunner } from '@cloudsnorkel/cdk-github-runners';\n\nconst app = new cdk.App();\nconst stack = new cdk.Stack(\n app,\n 'github-runners-test',\n {\n env: {\n account: process.env.CDK_DEFAULT_ACCOUNT,\n region: process.env.CDK_DEFAULT_REGION,\n },\n },\n);\n\nconst vpc = ec2.Vpc.fromLookup(stack, 'vpc', { vpcId: 'vpc-1234567' });\nconst runnerSg = new ec2.SecurityGroup(stack, 'runner security group', { vpc: vpc });\nconst dbSg = ec2.SecurityGroup.fromSecurityGroupId(stack, 'database security group', 'sg-1234567');\nconst bucket = new s3.Bucket(stack, 'runner bucket');\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunner(\n stack, 'codebuild runner',\n {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\n },\n);\n// grant some permissions to the provider\nbucket.grantReadWrite(myProvider);\ndbSg.connections.allowFrom(runnerSg, ec2.Port.tcp(3306), 'allow runners to connect to MySQL database');\n\n// create the runner infrastructure\nnew GitHubRunners(\n stack,\n 'runners',\n {\n providers: [myProvider],\n }\n);\n\napp.synth();\n```\n\n## Architecture\n\n![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. When using GitHub app, make sure there are active installation in `github.auth.app.installations`\n4. Check execution details of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`\n 1. Use the details tab to find the specific execution of the provider (Lambda, CodeBuild, Fargate, etc.)\n 2. Every step function execution should be successful, even if the runner action inside it failed\n\n## Other Options\n\n1. [philips-labs/terraform-aws-github-runner][3] if you're using Terraform\n2. [actions-runner-controller/actions-runner-controller][4] if you're using Kubernetes\n\n\n[1]: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners\n[2]: https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions\n[3]: https://github.com/philips-labs/terraform-aws-github-runner\n[4]: https://github.com/actions-runner-controller/actions-runner-controller\n[5]: https://github.com/actions/runner\n[6]: https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners\n[7]: https://pypi.org/project/cloudsnorkel.cdk-github-runners\n[8]: https://search.maven.org/search?q=g:%22com.cloudsnorkel%22%20AND%20a:%22cdk.github.runners%22\n[9]: https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps\n[10]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token\n[11]: https://pkg.go.dev/github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n[12]: https://www.nuget.org/packages/CloudSnorkel.Cdk.Github.Runners/\n[13]: https://constructs.dev/packages/@cloudsnorkel/cdk-github-runners/\n[14]: https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling"
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 with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n| | CodeBuild | Fargate | Lambda |\n|------------------|--------------------------|----------------|----------------|\n| **Time limit** | 8 hours | Unlimited | 15 minutes |\n| **vCPUs** | 2, 4, 8, or 72 | 0.25 to 4 | 1 to 6 |\n| **RAM** | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | 128mb to 10gb |\n| **Storage** | 50gb to 824gb | 20gb to 200gb | Up to 10gb |\n| **Architecture** | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 |\n| **sudo** | ✔ | ✔ | ❌ |\n| **Docker** | ✔ | ❌ | ❌ |\n| **Spot pricing** | ❌ | ✔ | ❌ |\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: FargateProvider.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 FargateProvider(this, 'fargate runner', {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\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, my-codebuild]\n steps:\n - run: echo hello world\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. When using GitHub app, make sure there are active installation in `github.auth.app.installations`\n4. Check execution details of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`\n 1. Use the details tab to find the specific execution of the provider (Lambda, CodeBuild, Fargate, etc.)\n 2. Every step function execution should be successful, even if the runner action inside it failed\n\n## Other Options\n\n1. [philips-labs/terraform-aws-github-runner][3] if you're using Terraform\n2. [actions-runner-controller/actions-runner-controller][4] if you're using Kubernetes\n\n\n[1]: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners\n[2]: https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions\n[3]: https://github.com/philips-labs/terraform-aws-github-runner\n[4]: https://github.com/actions-runner-controller/actions-runner-controller\n[5]: https://github.com/actions/runner\n[6]: https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners\n[7]: https://pypi.org/project/cloudsnorkel.cdk-github-runners\n[8]: https://search.maven.org/search?q=g:%22com.cloudsnorkel%22%20AND%20a:%22cdk.github.runners%22\n[9]: https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps\n[10]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token\n[11]: https://pkg.go.dev/github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n[12]: https://www.nuget.org/packages/CloudSnorkel.Cdk.Github.Runners/\n[13]: https://constructs.dev/packages/@cloudsnorkel/cdk-github-runners/\n[14]: https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling"
2999
2999
  },
3000
3000
  "repository": {
3001
3001
  "type": "git",
@@ -3026,6 +3026,551 @@
3026
3026
  }
3027
3027
  },
3028
3028
  "types": {
3029
+ "@cloudsnorkel/cdk-github-runners.Architecture": {
3030
+ "assembly": "@cloudsnorkel/cdk-github-runners",
3031
+ "docs": {
3032
+ "stability": "experimental",
3033
+ "summary": "CPU architecture enum for an image."
3034
+ },
3035
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture",
3036
+ "kind": "class",
3037
+ "locationInModule": {
3038
+ "filename": "src/providers/common.ts",
3039
+ "line": 32
3040
+ },
3041
+ "methods": [
3042
+ {
3043
+ "docs": {
3044
+ "stability": "experimental",
3045
+ "summary": "Checks if the given architecture is the same as this one."
3046
+ },
3047
+ "locationInModule": {
3048
+ "filename": "src/providers/common.ts",
3049
+ "line": 55
3050
+ },
3051
+ "name": "is",
3052
+ "parameters": [
3053
+ {
3054
+ "docs": {
3055
+ "summary": "architecture to compare."
3056
+ },
3057
+ "name": "arch",
3058
+ "type": {
3059
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
3060
+ }
3061
+ }
3062
+ ],
3063
+ "returns": {
3064
+ "type": {
3065
+ "primitive": "boolean"
3066
+ }
3067
+ }
3068
+ }
3069
+ ],
3070
+ "name": "Architecture",
3071
+ "properties": [
3072
+ {
3073
+ "const": true,
3074
+ "docs": {
3075
+ "stability": "experimental",
3076
+ "summary": "ARM64."
3077
+ },
3078
+ "immutable": true,
3079
+ "locationInModule": {
3080
+ "filename": "src/providers/common.ts",
3081
+ "line": 36
3082
+ },
3083
+ "name": "ARM64",
3084
+ "static": true,
3085
+ "type": {
3086
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
3087
+ }
3088
+ },
3089
+ {
3090
+ "const": true,
3091
+ "docs": {
3092
+ "stability": "experimental",
3093
+ "summary": "X86_64."
3094
+ },
3095
+ "immutable": true,
3096
+ "locationInModule": {
3097
+ "filename": "src/providers/common.ts",
3098
+ "line": 41
3099
+ },
3100
+ "name": "X86_64",
3101
+ "static": true,
3102
+ "type": {
3103
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
3104
+ }
3105
+ },
3106
+ {
3107
+ "docs": {
3108
+ "stability": "experimental"
3109
+ },
3110
+ "immutable": true,
3111
+ "locationInModule": {
3112
+ "filename": "src/providers/common.ts",
3113
+ "line": 47
3114
+ },
3115
+ "name": "name",
3116
+ "type": {
3117
+ "primitive": "string"
3118
+ }
3119
+ }
3120
+ ],
3121
+ "symbolId": "src/providers/common:Architecture"
3122
+ },
3123
+ "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilder": {
3124
+ "assembly": "@cloudsnorkel/cdk-github-runners",
3125
+ "base": "constructs.Construct",
3126
+ "docs": {
3127
+ "remarks": "Builders can be used with runner providers.\n\nEach builder re-runs automatically at a set interval to make sure the images contain the latest versions of everything.\n\nYou can create an instance of this construct to customize the image used to spin-up runners. Each provider has its own requirements for what an image should do. That's why they each provide their own Dockerfile.\n\nFor example, to set a specific runner version, rebuild the image every 2 weeks, and add a few packages for the Fargate provider, use:\n\n```\nconst builder = new CodeBuildImageBuilder(this, 'Builder', {\n dockerfilePath: FargateProvider.LINUX_X64_DOCKERFILE_PATH,\n runnerVersion: RunnerVersion.specific('2.293.0'),\n rebuildInterval: Duration.days(14),\n});\nbuilder.setBuildArg('EXTRA_PACKAGES', 'nginx xz-utils');\nnew FargateProvider(this, 'Fargate provider', {\n label: 'customized-fargate',\n imageBuilder: builder,\n});\n```",
3128
+ "stability": "experimental",
3129
+ "summary": "An image builder that uses CodeBuild to build Docker images pre-baked with all the GitHub Actions runner requirements."
3130
+ },
3131
+ "fqn": "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilder",
3132
+ "initializer": {
3133
+ "docs": {
3134
+ "stability": "experimental"
3135
+ },
3136
+ "locationInModule": {
3137
+ "filename": "src/providers/image-builders/codebuild.ts",
3138
+ "line": 164
3139
+ },
3140
+ "parameters": [
3141
+ {
3142
+ "name": "scope",
3143
+ "type": {
3144
+ "fqn": "constructs.Construct"
3145
+ }
3146
+ },
3147
+ {
3148
+ "name": "id",
3149
+ "type": {
3150
+ "primitive": "string"
3151
+ }
3152
+ },
3153
+ {
3154
+ "name": "props",
3155
+ "type": {
3156
+ "fqn": "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilderProps"
3157
+ }
3158
+ }
3159
+ ]
3160
+ },
3161
+ "interfaces": [
3162
+ "@cloudsnorkel/cdk-github-runners.IImageBuilder"
3163
+ ],
3164
+ "kind": "class",
3165
+ "locationInModule": {
3166
+ "filename": "src/providers/image-builders/codebuild.ts",
3167
+ "line": 149
3168
+ },
3169
+ "methods": [
3170
+ {
3171
+ "docs": {
3172
+ "stability": "experimental",
3173
+ "summary": "Uploads a folder to the build server at a given folder name."
3174
+ },
3175
+ "locationInModule": {
3176
+ "filename": "src/providers/image-builders/codebuild.ts",
3177
+ "line": 205
3178
+ },
3179
+ "name": "addFiles",
3180
+ "parameters": [
3181
+ {
3182
+ "docs": {
3183
+ "summary": "path to source directory."
3184
+ },
3185
+ "name": "sourcePath",
3186
+ "type": {
3187
+ "primitive": "string"
3188
+ }
3189
+ },
3190
+ {
3191
+ "docs": {
3192
+ "summary": "name of destination folder."
3193
+ },
3194
+ "name": "destName",
3195
+ "type": {
3196
+ "primitive": "string"
3197
+ }
3198
+ }
3199
+ ]
3200
+ },
3201
+ {
3202
+ "docs": {
3203
+ "stability": "experimental",
3204
+ "summary": "Add a policy statement to the builder to access resources required to the image build."
3205
+ },
3206
+ "locationInModule": {
3207
+ "filename": "src/providers/image-builders/codebuild.ts",
3208
+ "line": 257
3209
+ },
3210
+ "name": "addPolicyStatement",
3211
+ "parameters": [
3212
+ {
3213
+ "docs": {
3214
+ "summary": "IAM policy statement."
3215
+ },
3216
+ "name": "statement",
3217
+ "type": {
3218
+ "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
3219
+ }
3220
+ }
3221
+ ]
3222
+ },
3223
+ {
3224
+ "docs": {
3225
+ "stability": "experimental",
3226
+ "summary": "Adds a command that runs after `docker build` and `docker push`."
3227
+ },
3228
+ "locationInModule": {
3229
+ "filename": "src/providers/image-builders/codebuild.ts",
3230
+ "line": 232
3231
+ },
3232
+ "name": "addPostBuildCommand",
3233
+ "parameters": [
3234
+ {
3235
+ "docs": {
3236
+ "summary": "command to add."
3237
+ },
3238
+ "name": "command",
3239
+ "type": {
3240
+ "primitive": "string"
3241
+ }
3242
+ }
3243
+ ]
3244
+ },
3245
+ {
3246
+ "docs": {
3247
+ "stability": "experimental",
3248
+ "summary": "Adds a command that runs before `docker build`."
3249
+ },
3250
+ "locationInModule": {
3251
+ "filename": "src/providers/image-builders/codebuild.ts",
3252
+ "line": 220
3253
+ },
3254
+ "name": "addPreBuildCommand",
3255
+ "parameters": [
3256
+ {
3257
+ "docs": {
3258
+ "summary": "command to add."
3259
+ },
3260
+ "name": "command",
3261
+ "type": {
3262
+ "primitive": "string"
3263
+ }
3264
+ }
3265
+ ]
3266
+ },
3267
+ {
3268
+ "docs": {
3269
+ "stability": "experimental",
3270
+ "summary": "Called by IRunnerProvider to finalize settings and create the image builder."
3271
+ },
3272
+ "locationInModule": {
3273
+ "filename": "src/providers/image-builders/codebuild.ts",
3274
+ "line": 267
3275
+ },
3276
+ "name": "bind",
3277
+ "overrides": "@cloudsnorkel/cdk-github-runners.IImageBuilder",
3278
+ "returns": {
3279
+ "type": {
3280
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImage"
3281
+ }
3282
+ }
3283
+ },
3284
+ {
3285
+ "docs": {
3286
+ "remarks": "See the documentation for the Dockerfile you're using for a list of supported build arguments.",
3287
+ "stability": "experimental",
3288
+ "summary": "Adds a build argument for Docker."
3289
+ },
3290
+ "locationInModule": {
3291
+ "filename": "src/providers/image-builders/codebuild.ts",
3292
+ "line": 245
3293
+ },
3294
+ "name": "setBuildArg",
3295
+ "parameters": [
3296
+ {
3297
+ "docs": {
3298
+ "summary": "build argument name."
3299
+ },
3300
+ "name": "name",
3301
+ "type": {
3302
+ "primitive": "string"
3303
+ }
3304
+ },
3305
+ {
3306
+ "docs": {
3307
+ "summary": "build argument value."
3308
+ },
3309
+ "name": "value",
3310
+ "type": {
3311
+ "primitive": "string"
3312
+ }
3313
+ }
3314
+ ]
3315
+ }
3316
+ ],
3317
+ "name": "CodeBuildImageBuilder",
3318
+ "properties": [
3319
+ {
3320
+ "docs": {
3321
+ "stability": "experimental"
3322
+ },
3323
+ "immutable": true,
3324
+ "locationInModule": {
3325
+ "filename": "src/providers/image-builders/codebuild.ts",
3326
+ "line": 164
3327
+ },
3328
+ "name": "props",
3329
+ "type": {
3330
+ "fqn": "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilderProps"
3331
+ }
3332
+ }
3333
+ ],
3334
+ "symbolId": "src/providers/image-builders/codebuild:CodeBuildImageBuilder"
3335
+ },
3336
+ "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilderProps": {
3337
+ "assembly": "@cloudsnorkel/cdk-github-runners",
3338
+ "datatype": true,
3339
+ "docs": {
3340
+ "stability": "experimental",
3341
+ "summary": "Properties for CodeBuildImageBuilder construct."
3342
+ },
3343
+ "fqn": "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilderProps",
3344
+ "kind": "interface",
3345
+ "locationInModule": {
3346
+ "filename": "src/providers/image-builders/codebuild.ts",
3347
+ "line": 34
3348
+ },
3349
+ "name": "CodeBuildImageBuilderProps",
3350
+ "properties": [
3351
+ {
3352
+ "abstract": true,
3353
+ "docs": {
3354
+ "remarks": "It can be a path to a Dockerfile, a folder containing a Dockerfile, or a zip file containing a Dockerfile.",
3355
+ "stability": "experimental",
3356
+ "summary": "Path to Dockerfile to be built."
3357
+ },
3358
+ "immutable": true,
3359
+ "locationInModule": {
3360
+ "filename": "src/providers/image-builders/codebuild.ts",
3361
+ "line": 52
3362
+ },
3363
+ "name": "dockerfilePath",
3364
+ "type": {
3365
+ "primitive": "string"
3366
+ }
3367
+ },
3368
+ {
3369
+ "abstract": true,
3370
+ "docs": {
3371
+ "default": "Architecture.X86_64",
3372
+ "stability": "experimental",
3373
+ "summary": "Image architecture."
3374
+ },
3375
+ "immutable": true,
3376
+ "locationInModule": {
3377
+ "filename": "src/providers/image-builders/codebuild.ts",
3378
+ "line": 40
3379
+ },
3380
+ "name": "architecture",
3381
+ "optional": true,
3382
+ "type": {
3383
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
3384
+ }
3385
+ },
3386
+ {
3387
+ "abstract": true,
3388
+ "docs": {
3389
+ "default": "{@link ComputeType#SMALL}",
3390
+ "remarks": "See the {@link ComputeType} enum for the possible values.",
3391
+ "stability": "experimental",
3392
+ "summary": "The type of compute to use for this build."
3393
+ },
3394
+ "immutable": true,
3395
+ "locationInModule": {
3396
+ "filename": "src/providers/image-builders/codebuild.ts",
3397
+ "line": 97
3398
+ },
3399
+ "name": "computeType",
3400
+ "optional": true,
3401
+ "type": {
3402
+ "fqn": "aws-cdk-lib.aws_codebuild.ComputeType"
3403
+ }
3404
+ },
3405
+ {
3406
+ "abstract": true,
3407
+ "docs": {
3408
+ "default": "RemovalPolicy.DESTROY",
3409
+ "remarks": "If deployment fails on the custom resource, try setting this to `RemovalPolicy.RETAIN`. This way the CodeBuild logs can still be viewed, and you can see why the build failed.\n\nWe try to not leave anything behind when removed. But sometimes a log staying behind is useful.",
3410
+ "stability": "experimental",
3411
+ "summary": "Removal policy for logs of image builds."
3412
+ },
3413
+ "immutable": true,
3414
+ "locationInModule": {
3415
+ "filename": "src/providers/image-builders/codebuild.ts",
3416
+ "line": 124
3417
+ },
3418
+ "name": "logRemovalPolicy",
3419
+ "optional": true,
3420
+ "type": {
3421
+ "fqn": "aws-cdk-lib.RemovalPolicy"
3422
+ }
3423
+ },
3424
+ {
3425
+ "abstract": true,
3426
+ "docs": {
3427
+ "default": "logs.RetentionDays.ONE_MONTH",
3428
+ "remarks": "When updating\nthis property, unsetting it doesn't remove the log retention policy. To\nremove the retention policy, set the value to `INFINITE`.",
3429
+ "stability": "experimental",
3430
+ "summary": "The number of days log events are kept in CloudWatch Logs."
3431
+ },
3432
+ "immutable": true,
3433
+ "locationInModule": {
3434
+ "filename": "src/providers/image-builders/codebuild.ts",
3435
+ "line": 115
3436
+ },
3437
+ "name": "logRetention",
3438
+ "optional": true,
3439
+ "type": {
3440
+ "fqn": "aws-cdk-lib.aws_logs.RetentionDays"
3441
+ }
3442
+ },
3443
+ {
3444
+ "abstract": true,
3445
+ "docs": {
3446
+ "default": "OS.LINUX",
3447
+ "stability": "experimental",
3448
+ "summary": "Image OS."
3449
+ },
3450
+ "immutable": true,
3451
+ "locationInModule": {
3452
+ "filename": "src/providers/image-builders/codebuild.ts",
3453
+ "line": 47
3454
+ },
3455
+ "name": "os",
3456
+ "optional": true,
3457
+ "type": {
3458
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
3459
+ }
3460
+ },
3461
+ {
3462
+ "abstract": true,
3463
+ "docs": {
3464
+ "default": "Duration.days(7)",
3465
+ "remarks": "Useful for keeping the image up-do-date with the latest GitHub runner version and latest OS updates.\n\nSet to zero to disable.",
3466
+ "stability": "experimental",
3467
+ "summary": "Schedule the image to be rebuilt every given interval."
3468
+ },
3469
+ "immutable": true,
3470
+ "locationInModule": {
3471
+ "filename": "src/providers/image-builders/codebuild.ts",
3472
+ "line": 68
3473
+ },
3474
+ "name": "rebuildInterval",
3475
+ "optional": true,
3476
+ "type": {
3477
+ "fqn": "aws-cdk-lib.Duration"
3478
+ }
3479
+ },
3480
+ {
3481
+ "abstract": true,
3482
+ "docs": {
3483
+ "default": "latest version available",
3484
+ "stability": "experimental",
3485
+ "summary": "Version of GitHub Runners to install."
3486
+ },
3487
+ "immutable": true,
3488
+ "locationInModule": {
3489
+ "filename": "src/providers/image-builders/codebuild.ts",
3490
+ "line": 59
3491
+ },
3492
+ "name": "runnerVersion",
3493
+ "optional": true,
3494
+ "type": {
3495
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerVersion"
3496
+ }
3497
+ },
3498
+ {
3499
+ "abstract": true,
3500
+ "docs": {
3501
+ "default": "public project with no security group",
3502
+ "stability": "experimental",
3503
+ "summary": "Security Group to assign to this instance."
3504
+ },
3505
+ "immutable": true,
3506
+ "locationInModule": {
3507
+ "filename": "src/providers/image-builders/codebuild.ts",
3508
+ "line": 82
3509
+ },
3510
+ "name": "securityGroup",
3511
+ "optional": true,
3512
+ "type": {
3513
+ "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
3514
+ }
3515
+ },
3516
+ {
3517
+ "abstract": true,
3518
+ "docs": {
3519
+ "default": "no subnet",
3520
+ "stability": "experimental",
3521
+ "summary": "Where to place the network interfaces within the VPC."
3522
+ },
3523
+ "immutable": true,
3524
+ "locationInModule": {
3525
+ "filename": "src/providers/image-builders/codebuild.ts",
3526
+ "line": 89
3527
+ },
3528
+ "name": "subnetSelection",
3529
+ "optional": true,
3530
+ "type": {
3531
+ "fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
3532
+ }
3533
+ },
3534
+ {
3535
+ "abstract": true,
3536
+ "docs": {
3537
+ "default": "Duration.hours(1)",
3538
+ "remarks": "For valid values, see the timeoutInMinutes field in the AWS\nCodeBuild User Guide.",
3539
+ "stability": "experimental",
3540
+ "summary": "The number of minutes after which AWS CodeBuild stops the build if it's not complete."
3541
+ },
3542
+ "immutable": true,
3543
+ "locationInModule": {
3544
+ "filename": "src/providers/image-builders/codebuild.ts",
3545
+ "line": 106
3546
+ },
3547
+ "name": "timeout",
3548
+ "optional": true,
3549
+ "type": {
3550
+ "fqn": "aws-cdk-lib.Duration"
3551
+ }
3552
+ },
3553
+ {
3554
+ "abstract": true,
3555
+ "docs": {
3556
+ "default": "no VPC",
3557
+ "stability": "experimental",
3558
+ "summary": "VPC to launch the runners in."
3559
+ },
3560
+ "immutable": true,
3561
+ "locationInModule": {
3562
+ "filename": "src/providers/image-builders/codebuild.ts",
3563
+ "line": 75
3564
+ },
3565
+ "name": "vpc",
3566
+ "optional": true,
3567
+ "type": {
3568
+ "fqn": "aws-cdk-lib.aws_ec2.IVpc"
3569
+ }
3570
+ }
3571
+ ],
3572
+ "symbolId": "src/providers/image-builders/codebuild:CodeBuildImageBuilderProps"
3573
+ },
3029
3574
  "@cloudsnorkel/cdk-github-runners.CodeBuildRunner": {
3030
3575
  "assembly": "@cloudsnorkel/cdk-github-runners",
3031
3576
  "base": "constructs.Construct",
@@ -3041,7 +3586,7 @@
3041
3586
  },
3042
3587
  "locationInModule": {
3043
3588
  "filename": "src/providers/codebuild.ts",
3044
- "line": 98
3589
+ "line": 133
3045
3590
  },
3046
3591
  "parameters": [
3047
3592
  {
@@ -3070,7 +3615,7 @@
3070
3615
  "kind": "class",
3071
3616
  "locationInModule": {
3072
3617
  "filename": "src/providers/codebuild.ts",
3073
- "line": 72
3618
+ "line": 81
3074
3619
  },
3075
3620
  "methods": [
3076
3621
  {
@@ -3081,7 +3626,7 @@
3081
3626
  },
3082
3627
  "locationInModule": {
3083
3628
  "filename": "src/providers/codebuild.ts",
3084
- "line": 177
3629
+ "line": 233
3085
3630
  },
3086
3631
  "name": "getStepFunctionTask",
3087
3632
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -3105,6 +3650,42 @@
3105
3650
  ],
3106
3651
  "name": "CodeBuildRunner",
3107
3652
  "properties": [
3653
+ {
3654
+ "const": true,
3655
+ "docs": {
3656
+ "remarks": "Use this Dockerfile unless you need to customize it further than allowed by hooks.\n\nAvailable build arguments that can be set in the image builder:\n* `BASE_IMAGE` sets the `FROM` line. This should be an Ubuntu compatible image.\n* `EXTRA_PACKAGES` can be used to install additional packages.\n* `DOCKER_CHANNEL` overrides the channel from which Docker will be downloaded. Defaults to `\"stsable\"`.\n* `DIND_COMMIT` overrides the commit where dind is found.\n* `DOCKER_VERSION` overrides the installed Docker version.\n* `DOCKER_COMPOSE_VERSION` overrides the installed docker-compose version.",
3657
+ "stability": "experimental",
3658
+ "summary": "Path to Dockerfile for Linux ARM64 with all the requirements for CodeBuild runner."
3659
+ },
3660
+ "immutable": true,
3661
+ "locationInModule": {
3662
+ "filename": "src/providers/codebuild.ts",
3663
+ "line": 106
3664
+ },
3665
+ "name": "LINUX_ARM64_DOCKERFILE_PATH",
3666
+ "static": true,
3667
+ "type": {
3668
+ "primitive": "string"
3669
+ }
3670
+ },
3671
+ {
3672
+ "const": true,
3673
+ "docs": {
3674
+ "remarks": "Use this Dockerfile unless you need to customize it further than allowed by hooks.\n\nAvailable build arguments that can be set in the image builder:\n* `BASE_IMAGE` sets the `FROM` line. This should be an Ubuntu compatible image.\n* `EXTRA_PACKAGES` can be used to install additional packages.\n* `DOCKER_CHANNEL` overrides the channel from which Docker will be downloaded. Defaults to `\"stsable\"`.\n* `DIND_COMMIT` overrides the commit where dind is found.\n* `DOCKER_VERSION` overrides the installed Docker version.\n* `DOCKER_COMPOSE_VERSION` overrides the installed docker-compose version.",
3675
+ "stability": "experimental",
3676
+ "summary": "Path to Dockerfile for Linux x64 with all the requirements for CodeBuild runner."
3677
+ },
3678
+ "immutable": true,
3679
+ "locationInModule": {
3680
+ "filename": "src/providers/codebuild.ts",
3681
+ "line": 93
3682
+ },
3683
+ "name": "LINUX_X64_DOCKERFILE_PATH",
3684
+ "static": true,
3685
+ "type": {
3686
+ "primitive": "string"
3687
+ }
3688
+ },
3108
3689
  {
3109
3690
  "docs": {
3110
3691
  "stability": "experimental",
@@ -3113,7 +3694,7 @@
3113
3694
  "immutable": true,
3114
3695
  "locationInModule": {
3115
3696
  "filename": "src/providers/codebuild.ts",
3116
- "line": 217
3697
+ "line": 273
3117
3698
  },
3118
3699
  "name": "connections",
3119
3700
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -3129,7 +3710,7 @@
3129
3710
  "immutable": true,
3130
3711
  "locationInModule": {
3131
3712
  "filename": "src/providers/codebuild.ts",
3132
- "line": 96
3713
+ "line": 131
3133
3714
  },
3134
3715
  "name": "grantPrincipal",
3135
3716
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -3145,7 +3726,7 @@
3145
3726
  "immutable": true,
3146
3727
  "locationInModule": {
3147
3728
  "filename": "src/providers/codebuild.ts",
3148
- "line": 81
3729
+ "line": 116
3149
3730
  },
3150
3731
  "name": "label",
3151
3732
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -3161,7 +3742,7 @@
3161
3742
  "immutable": true,
3162
3743
  "locationInModule": {
3163
3744
  "filename": "src/providers/codebuild.ts",
3164
- "line": 76
3745
+ "line": 111
3165
3746
  },
3166
3747
  "name": "project",
3167
3748
  "type": {
@@ -3176,7 +3757,7 @@
3176
3757
  "immutable": true,
3177
3758
  "locationInModule": {
3178
3759
  "filename": "src/providers/codebuild.ts",
3179
- "line": 91
3760
+ "line": 126
3180
3761
  },
3181
3762
  "name": "securityGroup",
3182
3763
  "optional": true,
@@ -3193,7 +3774,7 @@
3193
3774
  "immutable": true,
3194
3775
  "locationInModule": {
3195
3776
  "filename": "src/providers/codebuild.ts",
3196
- "line": 86
3777
+ "line": 121
3197
3778
  },
3198
3779
  "name": "vpc",
3199
3780
  "optional": true,
@@ -3218,7 +3799,7 @@
3218
3799
  "kind": "interface",
3219
3800
  "locationInModule": {
3220
3801
  "filename": "src/providers/codebuild.ts",
3221
- "line": 18
3802
+ "line": 20
3222
3803
  },
3223
3804
  "name": "CodeBuildRunnerProps",
3224
3805
  "properties": [
@@ -3233,7 +3814,7 @@
3233
3814
  "immutable": true,
3234
3815
  "locationInModule": {
3235
3816
  "filename": "src/providers/codebuild.ts",
3236
- "line": 53
3817
+ "line": 62
3237
3818
  },
3238
3819
  "name": "computeType",
3239
3820
  "optional": true,
@@ -3241,6 +3822,25 @@
3241
3822
  "fqn": "aws-cdk-lib.aws_codebuild.ComputeType"
3242
3823
  }
3243
3824
  },
3825
+ {
3826
+ "abstract": true,
3827
+ "docs": {
3828
+ "default": "image builder with `CodeBuildRunner.LINUX_X64_DOCKERFILE_PATH` as Dockerfile",
3829
+ "remarks": "A user named `runner` is expected to exist with access to Docker-in-Docker.",
3830
+ "stability": "experimental",
3831
+ "summary": "Provider running an image to run inside CodeBuild with GitHub runner pre-configured."
3832
+ },
3833
+ "immutable": true,
3834
+ "locationInModule": {
3835
+ "filename": "src/providers/codebuild.ts",
3836
+ "line": 26
3837
+ },
3838
+ "name": "imageBuilder",
3839
+ "optional": true,
3840
+ "type": {
3841
+ "fqn": "@cloudsnorkel/cdk-github-runners.IImageBuilder"
3842
+ }
3843
+ },
3244
3844
  {
3245
3845
  "abstract": true,
3246
3846
  "docs": {
@@ -3251,7 +3851,7 @@
3251
3851
  "immutable": true,
3252
3852
  "locationInModule": {
3253
3853
  "filename": "src/providers/codebuild.ts",
3254
- "line": 24
3854
+ "line": 33
3255
3855
  },
3256
3856
  "name": "label",
3257
3857
  "optional": true,
@@ -3269,7 +3869,7 @@
3269
3869
  "immutable": true,
3270
3870
  "locationInModule": {
3271
3871
  "filename": "src/providers/codebuild.ts",
3272
- "line": 38
3872
+ "line": 47
3273
3873
  },
3274
3874
  "name": "securityGroup",
3275
3875
  "optional": true,
@@ -3287,7 +3887,7 @@
3287
3887
  "immutable": true,
3288
3888
  "locationInModule": {
3289
3889
  "filename": "src/providers/codebuild.ts",
3290
- "line": 45
3890
+ "line": 54
3291
3891
  },
3292
3892
  "name": "subnetSelection",
3293
3893
  "optional": true,
@@ -3306,7 +3906,7 @@
3306
3906
  "immutable": true,
3307
3907
  "locationInModule": {
3308
3908
  "filename": "src/providers/codebuild.ts",
3309
- "line": 62
3909
+ "line": 71
3310
3910
  },
3311
3911
  "name": "timeout",
3312
3912
  "optional": true,
@@ -3324,7 +3924,7 @@
3324
3924
  "immutable": true,
3325
3925
  "locationInModule": {
3326
3926
  "filename": "src/providers/codebuild.ts",
3327
- "line": 31
3927
+ "line": 40
3328
3928
  },
3329
3929
  "name": "vpc",
3330
3930
  "optional": true,
@@ -3350,7 +3950,7 @@
3350
3950
  },
3351
3951
  "locationInModule": {
3352
3952
  "filename": "src/providers/fargate.ts",
3353
- "line": 193
3953
+ "line": 229
3354
3954
  },
3355
3955
  "parameters": [
3356
3956
  {
@@ -3379,7 +3979,7 @@
3379
3979
  "kind": "class",
3380
3980
  "locationInModule": {
3381
3981
  "filename": "src/providers/fargate.ts",
3382
- "line": 142
3982
+ "line": 160
3383
3983
  },
3384
3984
  "methods": [
3385
3985
  {
@@ -3390,7 +3990,7 @@
3390
3990
  },
3391
3991
  "locationInModule": {
3392
3992
  "filename": "src/providers/fargate.ts",
3393
- "line": 251
3993
+ "line": 298
3394
3994
  },
3395
3995
  "name": "getStepFunctionTask",
3396
3996
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -3410,10 +4010,46 @@
3410
4010
  "fqn": "aws-cdk-lib.aws_stepfunctions.IChainable"
3411
4011
  }
3412
4012
  }
3413
- }
3414
- ],
3415
- "name": "FargateRunner",
3416
- "properties": [
4013
+ }
4014
+ ],
4015
+ "name": "FargateRunner",
4016
+ "properties": [
4017
+ {
4018
+ "const": true,
4019
+ "docs": {
4020
+ "remarks": "Use this Dockerfile unless you need to customize it further than allowed by hooks.\n\nAvailable build arguments that can be set in the image builder:\n* `BASE_IMAGE` sets the `FROM` line. This should be an Ubuntu compatible image.\n* `EXTRA_PACKAGES` can be used to install additional packages.",
4021
+ "stability": "experimental",
4022
+ "summary": "Path to Dockerfile for Linux ARM64 with all the requirement for Fargate runner."
4023
+ },
4024
+ "immutable": true,
4025
+ "locationInModule": {
4026
+ "filename": "src/providers/fargate.ts",
4027
+ "line": 177
4028
+ },
4029
+ "name": "LINUX_ARM64_DOCKERFILE_PATH",
4030
+ "static": true,
4031
+ "type": {
4032
+ "primitive": "string"
4033
+ }
4034
+ },
4035
+ {
4036
+ "const": true,
4037
+ "docs": {
4038
+ "remarks": "Use this Dockerfile unless you need to customize it further than allowed by hooks.\n\nAvailable build arguments that can be set in the image builder:\n* `BASE_IMAGE` sets the `FROM` line. This should be an Ubuntu compatible image.\n* `EXTRA_PACKAGES` can be used to install additional packages.",
4039
+ "stability": "experimental",
4040
+ "summary": "Path to Dockerfile for Linux x64 with all the requirement for Fargate runner."
4041
+ },
4042
+ "immutable": true,
4043
+ "locationInModule": {
4044
+ "filename": "src/providers/fargate.ts",
4045
+ "line": 168
4046
+ },
4047
+ "name": "LINUX_X64_DOCKERFILE_PATH",
4048
+ "static": true,
4049
+ "type": {
4050
+ "primitive": "string"
4051
+ }
4052
+ },
3417
4053
  {
3418
4054
  "docs": {
3419
4055
  "stability": "experimental",
@@ -3422,7 +4058,7 @@
3422
4058
  "immutable": true,
3423
4059
  "locationInModule": {
3424
4060
  "filename": "src/providers/fargate.ts",
3425
- "line": 176
4061
+ "line": 212
3426
4062
  },
3427
4063
  "name": "assignPublicIp",
3428
4064
  "type": {
@@ -3437,7 +4073,7 @@
3437
4073
  "immutable": true,
3438
4074
  "locationInModule": {
3439
4075
  "filename": "src/providers/fargate.ts",
3440
- "line": 146
4076
+ "line": 182
3441
4077
  },
3442
4078
  "name": "cluster",
3443
4079
  "type": {
@@ -3452,7 +4088,7 @@
3452
4088
  "immutable": true,
3453
4089
  "locationInModule": {
3454
4090
  "filename": "src/providers/fargate.ts",
3455
- "line": 186
4091
+ "line": 222
3456
4092
  },
3457
4093
  "name": "connections",
3458
4094
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -3468,7 +4104,7 @@
3468
4104
  "immutable": true,
3469
4105
  "locationInModule": {
3470
4106
  "filename": "src/providers/fargate.ts",
3471
- "line": 156
4107
+ "line": 192
3472
4108
  },
3473
4109
  "name": "container",
3474
4110
  "type": {
@@ -3483,7 +4119,7 @@
3483
4119
  "immutable": true,
3484
4120
  "locationInModule": {
3485
4121
  "filename": "src/providers/fargate.ts",
3486
- "line": 181
4122
+ "line": 217
3487
4123
  },
3488
4124
  "name": "grantPrincipal",
3489
4125
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -3499,7 +4135,7 @@
3499
4135
  "immutable": true,
3500
4136
  "locationInModule": {
3501
4137
  "filename": "src/providers/fargate.ts",
3502
- "line": 161
4138
+ "line": 197
3503
4139
  },
3504
4140
  "name": "label",
3505
4141
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -3515,7 +4151,7 @@
3515
4151
  "immutable": true,
3516
4152
  "locationInModule": {
3517
4153
  "filename": "src/providers/fargate.ts",
3518
- "line": 191
4154
+ "line": 227
3519
4155
  },
3520
4156
  "name": "spot",
3521
4157
  "type": {
@@ -3530,7 +4166,7 @@
3530
4166
  "immutable": true,
3531
4167
  "locationInModule": {
3532
4168
  "filename": "src/providers/fargate.ts",
3533
- "line": 151
4169
+ "line": 187
3534
4170
  },
3535
4171
  "name": "task",
3536
4172
  "type": {
@@ -3545,7 +4181,7 @@
3545
4181
  "immutable": true,
3546
4182
  "locationInModule": {
3547
4183
  "filename": "src/providers/fargate.ts",
3548
- "line": 171
4184
+ "line": 207
3549
4185
  },
3550
4186
  "name": "securityGroup",
3551
4187
  "optional": true,
@@ -3562,7 +4198,7 @@
3562
4198
  "immutable": true,
3563
4199
  "locationInModule": {
3564
4200
  "filename": "src/providers/fargate.ts",
3565
- "line": 166
4201
+ "line": 202
3566
4202
  },
3567
4203
  "name": "vpc",
3568
4204
  "optional": true,
@@ -3588,7 +4224,7 @@
3588
4224
  "kind": "interface",
3589
4225
  "locationInModule": {
3590
4226
  "filename": "src/providers/fargate.ts",
3591
- "line": 18
4227
+ "line": 19
3592
4228
  },
3593
4229
  "name": "FargateRunnerProps",
3594
4230
  "properties": [
@@ -3603,7 +4239,7 @@
3603
4239
  "immutable": true,
3604
4240
  "locationInModule": {
3605
4241
  "filename": "src/providers/fargate.ts",
3606
- "line": 54
4242
+ "line": 72
3607
4243
  },
3608
4244
  "name": "assignPublicIp",
3609
4245
  "optional": true,
@@ -3621,7 +4257,7 @@
3621
4257
  "immutable": true,
3622
4258
  "locationInModule": {
3623
4259
  "filename": "src/providers/fargate.ts",
3624
- "line": 45
4260
+ "line": 63
3625
4261
  },
3626
4262
  "name": "cluster",
3627
4263
  "optional": true,
@@ -3640,7 +4276,7 @@
3640
4276
  "immutable": true,
3641
4277
  "locationInModule": {
3642
4278
  "filename": "src/providers/fargate.ts",
3643
- "line": 73
4279
+ "line": 91
3644
4280
  },
3645
4281
  "name": "cpu",
3646
4282
  "optional": true,
@@ -3659,7 +4295,7 @@
3659
4295
  "immutable": true,
3660
4296
  "locationInModule": {
3661
4297
  "filename": "src/providers/fargate.ts",
3662
- "line": 100
4298
+ "line": 118
3663
4299
  },
3664
4300
  "name": "ephemeralStorageGiB",
3665
4301
  "optional": true,
@@ -3667,6 +4303,25 @@
3667
4303
  "primitive": "number"
3668
4304
  }
3669
4305
  },
4306
+ {
4307
+ "abstract": true,
4308
+ "docs": {
4309
+ "default": "image builder with `FargateRunner.LINUX_X64_DOCKERFILE_PATH` as Dockerfile",
4310
+ "remarks": "A user named `runner` is expected to exist.\n\nThe entry point should start GitHub runner. For example:\n\n```\n#!/bin/bash\nset -e -u -o pipefail\n\n/home/runner/config.sh --unattended --url \"https://${GITHUB_DOMAIN}/${OWNER}/${REPO}\" --token \"${RUNNER_TOKEN}\" --ephemeral --work _work --labels \"${RUNNER_LABEL}\" --disableupdate --name \"${RUNNER_NAME}\"\n/home/runner/run.sh\n```",
4311
+ "stability": "experimental",
4312
+ "summary": "Provider running an image to run inside CodeBuild with GitHub runner pre-configured."
4313
+ },
4314
+ "immutable": true,
4315
+ "locationInModule": {
4316
+ "filename": "src/providers/fargate.ts",
4317
+ "line": 35
4318
+ },
4319
+ "name": "imageBuilder",
4320
+ "optional": true,
4321
+ "type": {
4322
+ "fqn": "@cloudsnorkel/cdk-github-runners.IImageBuilder"
4323
+ }
4324
+ },
3670
4325
  {
3671
4326
  "abstract": true,
3672
4327
  "docs": {
@@ -3677,7 +4332,7 @@
3677
4332
  "immutable": true,
3678
4333
  "locationInModule": {
3679
4334
  "filename": "src/providers/fargate.ts",
3680
- "line": 24
4335
+ "line": 42
3681
4336
  },
3682
4337
  "name": "label",
3683
4338
  "optional": true,
@@ -3696,7 +4351,7 @@
3696
4351
  "immutable": true,
3697
4352
  "locationInModule": {
3698
4353
  "filename": "src/providers/fargate.ts",
3699
- "line": 91
4354
+ "line": 109
3700
4355
  },
3701
4356
  "name": "memoryLimitMiB",
3702
4357
  "optional": true,
@@ -3714,7 +4369,7 @@
3714
4369
  "immutable": true,
3715
4370
  "locationInModule": {
3716
4371
  "filename": "src/providers/fargate.ts",
3717
- "line": 38
4372
+ "line": 56
3718
4373
  },
3719
4374
  "name": "securityGroup",
3720
4375
  "optional": true,
@@ -3733,7 +4388,7 @@
3733
4388
  "immutable": true,
3734
4389
  "locationInModule": {
3735
4390
  "filename": "src/providers/fargate.ts",
3736
- "line": 110
4391
+ "line": 128
3737
4392
  },
3738
4393
  "name": "spot",
3739
4394
  "optional": true,
@@ -3751,7 +4406,7 @@
3751
4406
  "immutable": true,
3752
4407
  "locationInModule": {
3753
4408
  "filename": "src/providers/fargate.ts",
3754
- "line": 31
4409
+ "line": 49
3755
4410
  },
3756
4411
  "name": "vpc",
3757
4412
  "optional": true,
@@ -3777,7 +4432,7 @@
3777
4432
  },
3778
4433
  "locationInModule": {
3779
4434
  "filename": "src/runner.ts",
3780
- "line": 81
4435
+ "line": 83
3781
4436
  },
3782
4437
  "parameters": [
3783
4438
  {
@@ -3794,6 +4449,7 @@
3794
4449
  },
3795
4450
  {
3796
4451
  "name": "props",
4452
+ "optional": true,
3797
4453
  "type": {
3798
4454
  "fqn": "@cloudsnorkel/cdk-github-runners.GitHubRunnersProps"
3799
4455
  }
@@ -3807,20 +4463,6 @@
3807
4463
  },
3808
4464
  "name": "GitHubRunners",
3809
4465
  "properties": [
3810
- {
3811
- "docs": {
3812
- "stability": "experimental"
3813
- },
3814
- "immutable": true,
3815
- "locationInModule": {
3816
- "filename": "src/runner.ts",
3817
- "line": 81
3818
- },
3819
- "name": "props",
3820
- "type": {
3821
- "fqn": "@cloudsnorkel/cdk-github-runners.GitHubRunnersProps"
3822
- }
3823
- },
3824
4466
  {
3825
4467
  "docs": {
3826
4468
  "stability": "experimental",
@@ -3829,7 +4471,7 @@
3829
4471
  "immutable": true,
3830
4472
  "locationInModule": {
3831
4473
  "filename": "src/runner.ts",
3832
- "line": 70
4474
+ "line": 72
3833
4475
  },
3834
4476
  "name": "providers",
3835
4477
  "type": {
@@ -3849,7 +4491,7 @@
3849
4491
  "immutable": true,
3850
4492
  "locationInModule": {
3851
4493
  "filename": "src/runner.ts",
3852
- "line": 75
4494
+ "line": 77
3853
4495
  },
3854
4496
  "name": "secrets",
3855
4497
  "type": {
@@ -3901,6 +4543,43 @@
3901
4543
  ],
3902
4544
  "symbolId": "src/runner:GitHubRunnersProps"
3903
4545
  },
4546
+ "@cloudsnorkel/cdk-github-runners.IImageBuilder": {
4547
+ "assembly": "@cloudsnorkel/cdk-github-runners",
4548
+ "docs": {
4549
+ "remarks": "Anything that ends up with an ECR repository containing a Docker image that runs GitHub self-hosted runners can be used. A simple implementation could even point to an existing image and nothing else.\n\nIt's important that the specified image tag be available at the time the repository is available. Providers usually assume the image is ready and will fail if it's not.\n\nThe image can be further updated over time manually or using a schedule as long as it is always written to the same tag.",
4550
+ "stability": "experimental",
4551
+ "summary": "Interface for constructs that build an image that can be used in {@link IRunnerProvider}."
4552
+ },
4553
+ "fqn": "@cloudsnorkel/cdk-github-runners.IImageBuilder",
4554
+ "kind": "interface",
4555
+ "locationInModule": {
4556
+ "filename": "src/providers/common.ts",
4557
+ "line": 129
4558
+ },
4559
+ "methods": [
4560
+ {
4561
+ "abstract": true,
4562
+ "docs": {
4563
+ "remarks": "This method can be called multiple times if the image is bound to multiple providers. Make sure you cache the image when implementing or return an error if this builder doesn't support reusing images.",
4564
+ "returns": "image",
4565
+ "stability": "experimental",
4566
+ "summary": "ECR repository containing the image."
4567
+ },
4568
+ "locationInModule": {
4569
+ "filename": "src/providers/common.ts",
4570
+ "line": 137
4571
+ },
4572
+ "name": "bind",
4573
+ "returns": {
4574
+ "type": {
4575
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImage"
4576
+ }
4577
+ }
4578
+ }
4579
+ ],
4580
+ "name": "IImageBuilder",
4581
+ "symbolId": "src/providers/common:IImageBuilder"
4582
+ },
3904
4583
  "@cloudsnorkel/cdk-github-runners.IRunnerProvider": {
3905
4584
  "assembly": "@cloudsnorkel/cdk-github-runners",
3906
4585
  "docs": {
@@ -3916,7 +4595,7 @@
3916
4595
  "kind": "interface",
3917
4596
  "locationInModule": {
3918
4597
  "filename": "src/providers/common.ts",
3919
- "line": 89
4598
+ "line": 193
3920
4599
  },
3921
4600
  "methods": [
3922
4601
  {
@@ -3928,7 +4607,7 @@
3928
4607
  },
3929
4608
  "locationInModule": {
3930
4609
  "filename": "src/providers/common.ts",
3931
- "line": 112
4610
+ "line": 216
3932
4611
  },
3933
4612
  "name": "getStepFunctionTask",
3934
4613
  "parameters": [
@@ -3960,7 +4639,7 @@
3960
4639
  "immutable": true,
3961
4640
  "locationInModule": {
3962
4641
  "filename": "src/providers/common.ts",
3963
- "line": 93
4642
+ "line": 197
3964
4643
  },
3965
4644
  "name": "label",
3966
4645
  "type": {
@@ -3976,7 +4655,7 @@
3976
4655
  "immutable": true,
3977
4656
  "locationInModule": {
3978
4657
  "filename": "src/providers/common.ts",
3979
- "line": 103
4658
+ "line": 207
3980
4659
  },
3981
4660
  "name": "securityGroup",
3982
4661
  "optional": true,
@@ -3993,7 +4672,7 @@
3993
4672
  "immutable": true,
3994
4673
  "locationInModule": {
3995
4674
  "filename": "src/providers/common.ts",
3996
- "line": 98
4675
+ "line": 202
3997
4676
  },
3998
4677
  "name": "vpc",
3999
4678
  "optional": true,
@@ -4019,7 +4698,7 @@
4019
4698
  },
4020
4699
  "locationInModule": {
4021
4700
  "filename": "src/providers/lambda.ts",
4022
- "line": 103
4701
+ "line": 135
4023
4702
  },
4024
4703
  "parameters": [
4025
4704
  {
@@ -4048,7 +4727,7 @@
4048
4727
  "kind": "class",
4049
4728
  "locationInModule": {
4050
4729
  "filename": "src/providers/lambda.ts",
4051
- "line": 77
4730
+ "line": 91
4052
4731
  },
4053
4732
  "methods": [
4054
4733
  {
@@ -4059,7 +4738,7 @@
4059
4738
  },
4060
4739
  "locationInModule": {
4061
4740
  "filename": "src/providers/lambda.ts",
4062
- "line": 150
4741
+ "line": 198
4063
4742
  },
4064
4743
  "name": "getStepFunctionTask",
4065
4744
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -4083,6 +4762,42 @@
4083
4762
  ],
4084
4763
  "name": "LambdaRunner",
4085
4764
  "properties": [
4765
+ {
4766
+ "const": true,
4767
+ "docs": {
4768
+ "remarks": "Use this Dockerfile unless you need to customize it further than allowed by hooks.\n\nAvailable build arguments that can be set in the image builder:\n* `BASE_IMAGE` sets the `FROM` line. This should be similar to public.ecr.aws/lambda/nodejs:14.\n* `EXTRA_PACKAGES` can be used to install additional packages.",
4769
+ "stability": "experimental",
4770
+ "summary": "Path to Dockerfile for Linux ARM64 with all the requirement for Lambda runner."
4771
+ },
4772
+ "immutable": true,
4773
+ "locationInModule": {
4774
+ "filename": "src/providers/lambda.ts",
4775
+ "line": 108
4776
+ },
4777
+ "name": "LINUX_ARM64_DOCKERFILE_PATH",
4778
+ "static": true,
4779
+ "type": {
4780
+ "primitive": "string"
4781
+ }
4782
+ },
4783
+ {
4784
+ "const": true,
4785
+ "docs": {
4786
+ "remarks": "Use this Dockerfile unless you need to customize it further than allowed by hooks.\n\nAvailable build arguments that can be set in the image builder:\n* `BASE_IMAGE` sets the `FROM` line. This should be similar to public.ecr.aws/lambda/nodejs:14.\n* `EXTRA_PACKAGES` can be used to install additional packages.",
4787
+ "stability": "experimental",
4788
+ "summary": "Path to Dockerfile for Linux x64 with all the requirement for Lambda runner."
4789
+ },
4790
+ "immutable": true,
4791
+ "locationInModule": {
4792
+ "filename": "src/providers/lambda.ts",
4793
+ "line": 99
4794
+ },
4795
+ "name": "LINUX_X64_DOCKERFILE_PATH",
4796
+ "static": true,
4797
+ "type": {
4798
+ "primitive": "string"
4799
+ }
4800
+ },
4086
4801
  {
4087
4802
  "docs": {
4088
4803
  "stability": "experimental",
@@ -4091,7 +4806,7 @@
4091
4806
  "immutable": true,
4092
4807
  "locationInModule": {
4093
4808
  "filename": "src/providers/lambda.ts",
4094
- "line": 139
4809
+ "line": 187
4095
4810
  },
4096
4811
  "name": "connections",
4097
4812
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -4107,7 +4822,7 @@
4107
4822
  "immutable": true,
4108
4823
  "locationInModule": {
4109
4824
  "filename": "src/providers/lambda.ts",
4110
- "line": 81
4825
+ "line": 113
4111
4826
  },
4112
4827
  "name": "function",
4113
4828
  "type": {
@@ -4122,7 +4837,7 @@
4122
4837
  "immutable": true,
4123
4838
  "locationInModule": {
4124
4839
  "filename": "src/providers/lambda.ts",
4125
- "line": 101
4840
+ "line": 133
4126
4841
  },
4127
4842
  "name": "grantPrincipal",
4128
4843
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -4138,7 +4853,7 @@
4138
4853
  "immutable": true,
4139
4854
  "locationInModule": {
4140
4855
  "filename": "src/providers/lambda.ts",
4141
- "line": 86
4856
+ "line": 118
4142
4857
  },
4143
4858
  "name": "label",
4144
4859
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -4154,182 +4869,394 @@
4154
4869
  "immutable": true,
4155
4870
  "locationInModule": {
4156
4871
  "filename": "src/providers/lambda.ts",
4157
- "line": 96
4872
+ "line": 128
4873
+ },
4874
+ "name": "securityGroup",
4875
+ "optional": true,
4876
+ "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
4877
+ "type": {
4878
+ "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
4879
+ }
4880
+ },
4881
+ {
4882
+ "docs": {
4883
+ "stability": "experimental",
4884
+ "summary": "VPC used for hosting the function."
4885
+ },
4886
+ "immutable": true,
4887
+ "locationInModule": {
4888
+ "filename": "src/providers/lambda.ts",
4889
+ "line": 123
4890
+ },
4891
+ "name": "vpc",
4892
+ "optional": true,
4893
+ "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
4894
+ "type": {
4895
+ "fqn": "aws-cdk-lib.aws_ec2.IVpc"
4896
+ }
4897
+ }
4898
+ ],
4899
+ "symbolId": "src/providers/lambda:LambdaRunner"
4900
+ },
4901
+ "@cloudsnorkel/cdk-github-runners.LambdaRunnerProps": {
4902
+ "assembly": "@cloudsnorkel/cdk-github-runners",
4903
+ "datatype": true,
4904
+ "docs": {
4905
+ "stability": "experimental"
4906
+ },
4907
+ "fqn": "@cloudsnorkel/cdk-github-runners.LambdaRunnerProps",
4908
+ "interfaces": [
4909
+ "@cloudsnorkel/cdk-github-runners.RunnerProviderProps"
4910
+ ],
4911
+ "kind": "interface",
4912
+ "locationInModule": {
4913
+ "filename": "src/providers/lambda.ts",
4914
+ "line": 18
4915
+ },
4916
+ "name": "LambdaRunnerProps",
4917
+ "properties": [
4918
+ {
4919
+ "abstract": true,
4920
+ "docs": {
4921
+ "default": "10 GiB",
4922
+ "stability": "experimental",
4923
+ "summary": "The size of the function’s /tmp directory in MiB."
4924
+ },
4925
+ "immutable": true,
4926
+ "locationInModule": {
4927
+ "filename": "src/providers/lambda.ts",
4928
+ "line": 51
4929
+ },
4930
+ "name": "ephemeralStorageSize",
4931
+ "optional": true,
4932
+ "type": {
4933
+ "fqn": "aws-cdk-lib.Size"
4934
+ }
4935
+ },
4936
+ {
4937
+ "abstract": true,
4938
+ "docs": {
4939
+ "default": "image builder with LambdaRunner.LINUX_X64_DOCKERFILE_PATH as Dockerfile",
4940
+ "remarks": "The default command (`CMD`) should be `[\"runner.handler\"]` which points to an included `runner.js` with a function named `handler`. The function should start the GitHub runner.",
4941
+ "see": "https://github.com/CloudSnorkel/cdk-github-runners/tree/main/src/providers/docker-images/lambda",
4942
+ "stability": "experimental",
4943
+ "summary": "Provider running an image to run inside CodeBuild with GitHub runner pre-configured."
4944
+ },
4945
+ "immutable": true,
4946
+ "locationInModule": {
4947
+ "filename": "src/providers/lambda.ts",
4948
+ "line": 27
4949
+ },
4950
+ "name": "imageBuilder",
4951
+ "optional": true,
4952
+ "type": {
4953
+ "fqn": "@cloudsnorkel/cdk-github-runners.IImageBuilder"
4954
+ }
4955
+ },
4956
+ {
4957
+ "abstract": true,
4958
+ "docs": {
4959
+ "default": "'lambda'",
4960
+ "stability": "experimental",
4961
+ "summary": "GitHub Actions label used for this provider."
4962
+ },
4963
+ "immutable": true,
4964
+ "locationInModule": {
4965
+ "filename": "src/providers/lambda.ts",
4966
+ "line": 34
4967
+ },
4968
+ "name": "label",
4969
+ "optional": true,
4970
+ "type": {
4971
+ "primitive": "string"
4972
+ }
4973
+ },
4974
+ {
4975
+ "abstract": true,
4976
+ "docs": {
4977
+ "default": "2048",
4978
+ "remarks": "Lambda uses this value to proportionally allocate the amount of CPU\npower. For more information, see Resource Model in the AWS Lambda\nDeveloper Guide.",
4979
+ "stability": "experimental",
4980
+ "summary": "The amount of memory, in MB, that is allocated to your Lambda function."
4981
+ },
4982
+ "immutable": true,
4983
+ "locationInModule": {
4984
+ "filename": "src/providers/lambda.ts",
4985
+ "line": 44
4986
+ },
4987
+ "name": "memorySize",
4988
+ "optional": true,
4989
+ "type": {
4990
+ "primitive": "number"
4991
+ }
4992
+ },
4993
+ {
4994
+ "abstract": true,
4995
+ "docs": {
4996
+ "default": "public lambda with no security group",
4997
+ "stability": "experimental",
4998
+ "summary": "Security Group to assign to this instance."
4999
+ },
5000
+ "immutable": true,
5001
+ "locationInModule": {
5002
+ "filename": "src/providers/lambda.ts",
5003
+ "line": 74
4158
5004
  },
4159
5005
  "name": "securityGroup",
4160
5006
  "optional": true,
4161
- "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
4162
5007
  "type": {
4163
- "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
5008
+ "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
5009
+ }
5010
+ },
5011
+ {
5012
+ "abstract": true,
5013
+ "docs": {
5014
+ "default": "no subnet",
5015
+ "stability": "experimental",
5016
+ "summary": "Where to place the network interfaces within the VPC."
5017
+ },
5018
+ "immutable": true,
5019
+ "locationInModule": {
5020
+ "filename": "src/providers/lambda.ts",
5021
+ "line": 81
5022
+ },
5023
+ "name": "subnetSelection",
5024
+ "optional": true,
5025
+ "type": {
5026
+ "fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
5027
+ }
5028
+ },
5029
+ {
5030
+ "abstract": true,
5031
+ "docs": {
5032
+ "default": "Duration.minutes(15)",
5033
+ "remarks": "Because the execution time affects cost, set this value\nbased on the function's expected execution time.",
5034
+ "stability": "experimental",
5035
+ "summary": "The function execution time (in seconds) after which Lambda terminates the function."
5036
+ },
5037
+ "immutable": true,
5038
+ "locationInModule": {
5039
+ "filename": "src/providers/lambda.ts",
5040
+ "line": 60
5041
+ },
5042
+ "name": "timeout",
5043
+ "optional": true,
5044
+ "type": {
5045
+ "fqn": "aws-cdk-lib.Duration"
4164
5046
  }
4165
5047
  },
4166
5048
  {
5049
+ "abstract": true,
4167
5050
  "docs": {
5051
+ "default": "no VPC",
4168
5052
  "stability": "experimental",
4169
- "summary": "VPC used for hosting the function."
5053
+ "summary": "VPC to launch the runners in."
4170
5054
  },
4171
5055
  "immutable": true,
4172
5056
  "locationInModule": {
4173
5057
  "filename": "src/providers/lambda.ts",
4174
- "line": 91
5058
+ "line": 67
4175
5059
  },
4176
5060
  "name": "vpc",
4177
5061
  "optional": true,
4178
- "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
4179
5062
  "type": {
4180
5063
  "fqn": "aws-cdk-lib.aws_ec2.IVpc"
4181
5064
  }
4182
5065
  }
4183
5066
  ],
4184
- "symbolId": "src/providers/lambda:LambdaRunner"
5067
+ "symbolId": "src/providers/lambda:LambdaRunnerProps"
4185
5068
  },
4186
- "@cloudsnorkel/cdk-github-runners.LambdaRunnerProps": {
5069
+ "@cloudsnorkel/cdk-github-runners.Os": {
4187
5070
  "assembly": "@cloudsnorkel/cdk-github-runners",
4188
- "datatype": true,
4189
5071
  "docs": {
4190
- "stability": "experimental"
5072
+ "stability": "experimental",
5073
+ "summary": "OS enum for an image."
4191
5074
  },
4192
- "fqn": "@cloudsnorkel/cdk-github-runners.LambdaRunnerProps",
4193
- "interfaces": [
4194
- "@cloudsnorkel/cdk-github-runners.RunnerProviderProps"
4195
- ],
4196
- "kind": "interface",
5075
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os",
5076
+ "kind": "class",
4197
5077
  "locationInModule": {
4198
- "filename": "src/providers/lambda.ts",
4199
- "line": 14
5078
+ "filename": "src/providers/common.ts",
5079
+ "line": 63
4200
5080
  },
4201
- "name": "LambdaRunnerProps",
5081
+ "methods": [
5082
+ {
5083
+ "docs": {
5084
+ "stability": "experimental",
5085
+ "summary": "Checks if the given OS is the same as this one."
5086
+ },
5087
+ "locationInModule": {
5088
+ "filename": "src/providers/common.ts",
5089
+ "line": 86
5090
+ },
5091
+ "name": "is",
5092
+ "parameters": [
5093
+ {
5094
+ "docs": {
5095
+ "summary": "OS to compare."
5096
+ },
5097
+ "name": "os",
5098
+ "type": {
5099
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
5100
+ }
5101
+ }
5102
+ ],
5103
+ "returns": {
5104
+ "type": {
5105
+ "primitive": "boolean"
5106
+ }
5107
+ }
5108
+ }
5109
+ ],
5110
+ "name": "Os",
4202
5111
  "properties": [
4203
5112
  {
4204
- "abstract": true,
5113
+ "const": true,
4205
5114
  "docs": {
4206
- "default": "10 GiB",
4207
5115
  "stability": "experimental",
4208
- "summary": "The size of the function’s /tmp directory in MiB."
5116
+ "summary": "Linux."
4209
5117
  },
4210
5118
  "immutable": true,
4211
5119
  "locationInModule": {
4212
- "filename": "src/providers/lambda.ts",
4213
- "line": 37
5120
+ "filename": "src/providers/common.ts",
5121
+ "line": 67
4214
5122
  },
4215
- "name": "ephemeralStorageSize",
4216
- "optional": true,
5123
+ "name": "LINUX",
5124
+ "static": true,
4217
5125
  "type": {
4218
- "fqn": "aws-cdk-lib.Size"
5126
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
4219
5127
  }
4220
5128
  },
4221
5129
  {
4222
- "abstract": true,
5130
+ "const": true,
4223
5131
  "docs": {
4224
- "default": "'lambda'",
4225
5132
  "stability": "experimental",
4226
- "summary": "GitHub Actions label used for this provider."
5133
+ "summary": "Windows."
4227
5134
  },
4228
5135
  "immutable": true,
4229
5136
  "locationInModule": {
4230
- "filename": "src/providers/lambda.ts",
4231
- "line": 20
5137
+ "filename": "src/providers/common.ts",
5138
+ "line": 72
4232
5139
  },
4233
- "name": "label",
4234
- "optional": true,
5140
+ "name": "WINDOWS",
5141
+ "static": true,
4235
5142
  "type": {
4236
- "primitive": "string"
5143
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
4237
5144
  }
4238
5145
  },
5146
+ {
5147
+ "docs": {
5148
+ "stability": "experimental"
5149
+ },
5150
+ "immutable": true,
5151
+ "locationInModule": {
5152
+ "filename": "src/providers/common.ts",
5153
+ "line": 78
5154
+ },
5155
+ "name": "name",
5156
+ "type": {
5157
+ "primitive": "string"
5158
+ }
5159
+ }
5160
+ ],
5161
+ "symbolId": "src/providers/common:Os"
5162
+ },
5163
+ "@cloudsnorkel/cdk-github-runners.RunnerImage": {
5164
+ "assembly": "@cloudsnorkel/cdk-github-runners",
5165
+ "datatype": true,
5166
+ "docs": {
5167
+ "stability": "experimental"
5168
+ },
5169
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImage",
5170
+ "kind": "interface",
5171
+ "locationInModule": {
5172
+ "filename": "src/providers/common.ts",
5173
+ "line": 91
5174
+ },
5175
+ "name": "RunnerImage",
5176
+ "properties": [
4239
5177
  {
4240
5178
  "abstract": true,
4241
5179
  "docs": {
4242
- "default": "2048",
4243
- "remarks": "Lambda uses this value to proportionally allocate the amount of CPU\npower. For more information, see Resource Model in the AWS Lambda\nDeveloper Guide.",
4244
5180
  "stability": "experimental",
4245
- "summary": "The amount of memory, in MB, that is allocated to your Lambda function."
5181
+ "summary": "Architecture of the image."
4246
5182
  },
4247
5183
  "immutable": true,
4248
5184
  "locationInModule": {
4249
- "filename": "src/providers/lambda.ts",
4250
- "line": 30
5185
+ "filename": "src/providers/common.ts",
5186
+ "line": 112
4251
5187
  },
4252
- "name": "memorySize",
4253
- "optional": true,
5188
+ "name": "architecture",
4254
5189
  "type": {
4255
- "primitive": "number"
5190
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
4256
5191
  }
4257
5192
  },
4258
5193
  {
4259
5194
  "abstract": true,
4260
5195
  "docs": {
4261
- "default": "public lambda with no security group",
5196
+ "remarks": "WARNING: the digest might change when the builder automatically rebuilds the image on a schedule. Do not expect for this digest to stay the same between deploys.",
4262
5197
  "stability": "experimental",
4263
- "summary": "Security Group to assign to this instance."
5198
+ "summary": "Image digest for providers that need to know the digest like Lambda."
4264
5199
  },
4265
5200
  "immutable": true,
4266
5201
  "locationInModule": {
4267
- "filename": "src/providers/lambda.ts",
4268
- "line": 60
5202
+ "filename": "src/providers/common.ts",
5203
+ "line": 107
4269
5204
  },
4270
- "name": "securityGroup",
4271
- "optional": true,
5205
+ "name": "imageDigest",
4272
5206
  "type": {
4273
- "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
5207
+ "primitive": "string"
4274
5208
  }
4275
5209
  },
4276
5210
  {
4277
5211
  "abstract": true,
4278
5212
  "docs": {
4279
- "default": "no subnet",
4280
5213
  "stability": "experimental",
4281
- "summary": "Where to place the network interfaces within the VPC."
5214
+ "summary": "ECR repository containing the image."
4282
5215
  },
4283
5216
  "immutable": true,
4284
5217
  "locationInModule": {
4285
- "filename": "src/providers/lambda.ts",
4286
- "line": 67
5218
+ "filename": "src/providers/common.ts",
5219
+ "line": 95
4287
5220
  },
4288
- "name": "subnetSelection",
4289
- "optional": true,
5221
+ "name": "imageRepository",
4290
5222
  "type": {
4291
- "fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
5223
+ "fqn": "aws-cdk-lib.aws_ecr.IRepository"
4292
5224
  }
4293
5225
  },
4294
5226
  {
4295
5227
  "abstract": true,
4296
5228
  "docs": {
4297
- "default": "Duration.minutes(15)",
4298
- "remarks": "Because the execution time affects cost, set this value\nbased on the function's expected execution time.",
4299
5229
  "stability": "experimental",
4300
- "summary": "The function execution time (in seconds) after which Lambda terminates the function."
5230
+ "summary": "Static image tag where the image will be pushed."
4301
5231
  },
4302
5232
  "immutable": true,
4303
5233
  "locationInModule": {
4304
- "filename": "src/providers/lambda.ts",
4305
- "line": 46
5234
+ "filename": "src/providers/common.ts",
5235
+ "line": 100
4306
5236
  },
4307
- "name": "timeout",
4308
- "optional": true,
5237
+ "name": "imageTag",
4309
5238
  "type": {
4310
- "fqn": "aws-cdk-lib.Duration"
5239
+ "primitive": "string"
4311
5240
  }
4312
5241
  },
4313
5242
  {
4314
5243
  "abstract": true,
4315
5244
  "docs": {
4316
- "default": "no VPC",
4317
5245
  "stability": "experimental",
4318
- "summary": "VPC to launch the runners in."
5246
+ "summary": "OS type of the image."
4319
5247
  },
4320
5248
  "immutable": true,
4321
5249
  "locationInModule": {
4322
- "filename": "src/providers/lambda.ts",
4323
- "line": 53
5250
+ "filename": "src/providers/common.ts",
5251
+ "line": 117
4324
5252
  },
4325
- "name": "vpc",
4326
- "optional": true,
5253
+ "name": "os",
4327
5254
  "type": {
4328
- "fqn": "aws-cdk-lib.aws_ec2.IVpc"
5255
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
4329
5256
  }
4330
5257
  }
4331
5258
  ],
4332
- "symbolId": "src/providers/lambda:LambdaRunnerProps"
5259
+ "symbolId": "src/providers/common:RunnerImage"
4333
5260
  },
4334
5261
  "@cloudsnorkel/cdk-github-runners.RunnerProviderProps": {
4335
5262
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -4342,7 +5269,7 @@
4342
5269
  "kind": "interface",
4343
5270
  "locationInModule": {
4344
5271
  "filename": "src/providers/common.ts",
4345
- "line": 32
5272
+ "line": 143
4346
5273
  },
4347
5274
  "name": "RunnerProviderProps",
4348
5275
  "properties": [
@@ -4357,31 +5284,13 @@
4357
5284
  "immutable": true,
4358
5285
  "locationInModule": {
4359
5286
  "filename": "src/providers/common.ts",
4360
- "line": 47
5287
+ "line": 151
4361
5288
  },
4362
5289
  "name": "logRetention",
4363
5290
  "optional": true,
4364
5291
  "type": {
4365
5292
  "fqn": "aws-cdk-lib.aws_logs.RetentionDays"
4366
5293
  }
4367
- },
4368
- {
4369
- "abstract": true,
4370
- "docs": {
4371
- "default": "latest version available",
4372
- "stability": "experimental",
4373
- "summary": "Version of GitHub Runners to install."
4374
- },
4375
- "immutable": true,
4376
- "locationInModule": {
4377
- "filename": "src/providers/common.ts",
4378
- "line": 38
4379
- },
4380
- "name": "runnerVersion",
4381
- "optional": true,
4382
- "type": {
4383
- "fqn": "@cloudsnorkel/cdk-github-runners.RunnerVersion"
4384
- }
4385
5294
  }
4386
5295
  ],
4387
5296
  "symbolId": "src/providers/common:RunnerProviderProps"
@@ -4398,7 +5307,7 @@
4398
5307
  "kind": "interface",
4399
5308
  "locationInModule": {
4400
5309
  "filename": "src/providers/common.ts",
4401
- "line": 59
5310
+ "line": 163
4402
5311
  },
4403
5312
  "name": "RunnerRuntimeParameters",
4404
5313
  "properties": [
@@ -4412,7 +5321,7 @@
4412
5321
  "immutable": true,
4413
5322
  "locationInModule": {
4414
5323
  "filename": "src/providers/common.ts",
4415
- "line": 73
5324
+ "line": 177
4416
5325
  },
4417
5326
  "name": "githubDomainPath",
4418
5327
  "type": {
@@ -4428,7 +5337,7 @@
4428
5337
  "immutable": true,
4429
5338
  "locationInModule": {
4430
5339
  "filename": "src/providers/common.ts",
4431
- "line": 78
5340
+ "line": 182
4432
5341
  },
4433
5342
  "name": "ownerPath",
4434
5343
  "type": {
@@ -4444,7 +5353,7 @@
4444
5353
  "immutable": true,
4445
5354
  "locationInModule": {
4446
5355
  "filename": "src/providers/common.ts",
4447
- "line": 83
5356
+ "line": 187
4448
5357
  },
4449
5358
  "name": "repoPath",
4450
5359
  "type": {
@@ -4461,7 +5370,7 @@
4461
5370
  "immutable": true,
4462
5371
  "locationInModule": {
4463
5372
  "filename": "src/providers/common.ts",
4464
- "line": 68
5373
+ "line": 172
4465
5374
  },
4466
5375
  "name": "runnerNamePath",
4467
5376
  "type": {
@@ -4477,7 +5386,7 @@
4477
5386
  "immutable": true,
4478
5387
  "locationInModule": {
4479
5388
  "filename": "src/providers/common.ts",
4480
- "line": 63
5389
+ "line": 167
4481
5390
  },
4482
5391
  "name": "runnerTokenPath",
4483
5392
  "type": {
@@ -4687,8 +5596,150 @@
4687
5596
  }
4688
5597
  ],
4689
5598
  "symbolId": "src/secrets:Secrets"
5599
+ },
5600
+ "@cloudsnorkel/cdk-github-runners.StaticRunnerImage": {
5601
+ "assembly": "@cloudsnorkel/cdk-github-runners",
5602
+ "docs": {
5603
+ "stability": "experimental",
5604
+ "summary": "Helper class with methods to use static images that are built outside the context of this project."
5605
+ },
5606
+ "fqn": "@cloudsnorkel/cdk-github-runners.StaticRunnerImage",
5607
+ "initializer": {
5608
+ "docs": {
5609
+ "stability": "experimental"
5610
+ }
5611
+ },
5612
+ "kind": "class",
5613
+ "locationInModule": {
5614
+ "filename": "src/providers/image-builders/static.ts",
5615
+ "line": 10
5616
+ },
5617
+ "methods": [
5618
+ {
5619
+ "docs": {
5620
+ "remarks": "The image must already have GitHub Actions runner installed. You are responsible to update it and remove it when done.\n\nWe create a CodeBuild image builder behind the scenes to copy the image over to ECR. This helps avoid Docker Hub rate limits and prevent failures.",
5621
+ "stability": "experimental",
5622
+ "summary": "Create a builder from an existing Docker Hub image."
5623
+ },
5624
+ "locationInModule": {
5625
+ "filename": "src/providers/image-builders/static.ts",
5626
+ "line": 44
5627
+ },
5628
+ "name": "fromDockerHub",
5629
+ "parameters": [
5630
+ {
5631
+ "name": "scope",
5632
+ "type": {
5633
+ "fqn": "constructs.Construct"
5634
+ }
5635
+ },
5636
+ {
5637
+ "name": "id",
5638
+ "type": {
5639
+ "primitive": "string"
5640
+ }
5641
+ },
5642
+ {
5643
+ "docs": {
5644
+ "summary": "Docker Hub image with optional tag."
5645
+ },
5646
+ "name": "image",
5647
+ "type": {
5648
+ "primitive": "string"
5649
+ }
5650
+ },
5651
+ {
5652
+ "docs": {
5653
+ "summary": "image architecture."
5654
+ },
5655
+ "name": "architecture",
5656
+ "optional": true,
5657
+ "type": {
5658
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
5659
+ }
5660
+ },
5661
+ {
5662
+ "docs": {
5663
+ "summary": "image OS."
5664
+ },
5665
+ "name": "os",
5666
+ "optional": true,
5667
+ "type": {
5668
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
5669
+ }
5670
+ }
5671
+ ],
5672
+ "returns": {
5673
+ "type": {
5674
+ "fqn": "@cloudsnorkel/cdk-github-runners.IImageBuilder"
5675
+ }
5676
+ },
5677
+ "static": true
5678
+ },
5679
+ {
5680
+ "docs": {
5681
+ "remarks": "The image must already have GitHub Actions runner installed. You are responsible to update it and remove it when done.",
5682
+ "stability": "experimental",
5683
+ "summary": "Create a builder (that doesn't actually build anything) from an existing image in an existing repository."
5684
+ },
5685
+ "locationInModule": {
5686
+ "filename": "src/providers/image-builders/static.ts",
5687
+ "line": 19
5688
+ },
5689
+ "name": "fromEcrRepository",
5690
+ "parameters": [
5691
+ {
5692
+ "docs": {
5693
+ "summary": "ECR repository."
5694
+ },
5695
+ "name": "repository",
5696
+ "type": {
5697
+ "fqn": "aws-cdk-lib.aws_ecr.IRepository"
5698
+ }
5699
+ },
5700
+ {
5701
+ "docs": {
5702
+ "summary": "image tag."
5703
+ },
5704
+ "name": "tag",
5705
+ "optional": true,
5706
+ "type": {
5707
+ "primitive": "string"
5708
+ }
5709
+ },
5710
+ {
5711
+ "docs": {
5712
+ "summary": "image architecture."
5713
+ },
5714
+ "name": "architecture",
5715
+ "optional": true,
5716
+ "type": {
5717
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
5718
+ }
5719
+ },
5720
+ {
5721
+ "docs": {
5722
+ "summary": "image OS."
5723
+ },
5724
+ "name": "os",
5725
+ "optional": true,
5726
+ "type": {
5727
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
5728
+ }
5729
+ }
5730
+ ],
5731
+ "returns": {
5732
+ "type": {
5733
+ "fqn": "@cloudsnorkel/cdk-github-runners.IImageBuilder"
5734
+ }
5735
+ },
5736
+ "static": true
5737
+ }
5738
+ ],
5739
+ "name": "StaticRunnerImage",
5740
+ "symbolId": "src/providers/image-builders/static:StaticRunnerImage"
4690
5741
  }
4691
5742
  },
4692
- "version": "0.2.0",
4693
- "fingerprint": "v+NQ0HXb/MqIb1CabazvNOGWELcQpAjFqi+9xq6QPnU="
5743
+ "version": "0.3.0",
5744
+ "fingerprint": "BbcPeU/UMTYhijuLgnABdbWc76bh1KhE/IYBv9sCMz8="
4694
5745
  }