@cloudsnorkel/cdk-github-runners 0.9.5 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +2 -0
- package/.jsii +118 -101
- package/API.md +28 -15
- package/README.md +120 -63
- package/assets/delete-runner.lambda/index.js +69 -63
- package/assets/image-builders/aws-image-builder/reaper.lambda/index.js +163 -0
- package/assets/image-builders/aws-image-builder/versioner.lambda/index.js +69 -63
- package/assets/status.lambda/index.js +69 -63
- package/assets/token-retriever.lambda/index.js +69 -63
- package/cdk.json +10 -0
- package/lib/access.js +1 -1
- package/lib/image-builders/api.js +1 -1
- package/lib/image-builders/aws-image-builder/builder.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/builder.js +62 -26
- package/lib/image-builders/aws-image-builder/deprecated/ami.d.ts +2 -2
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +4 -4
- package/lib/image-builders/aws-image-builder/deprecated/container.d.ts +3 -3
- package/lib/image-builders/aws-image-builder/deprecated/container.js +11 -14
- package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
- package/lib/image-builders/aws-image-builder/reaper-function.d.ts +13 -0
- package/lib/image-builders/aws-image-builder/reaper-function.js +23 -0
- package/lib/image-builders/aws-image-builder/reaper.lambda.d.ts +1 -0
- package/lib/image-builders/aws-image-builder/reaper.lambda.js +149 -0
- package/lib/image-builders/codebuild-deprecated.d.ts +4 -4
- package/lib/image-builders/codebuild-deprecated.js +18 -22
- package/lib/image-builders/codebuild.d.ts +1 -1
- package/lib/image-builders/codebuild.js +24 -25
- package/lib/image-builders/common.d.ts +2 -2
- package/lib/image-builders/common.js +1 -1
- package/lib/image-builders/components.js +4 -4
- package/lib/image-builders/static.d.ts +1 -1
- package/lib/image-builders/static.js +7 -6
- package/lib/providers/codebuild.js +2 -2
- package/lib/providers/common.d.ts +6 -0
- package/lib/providers/common.js +4 -4
- package/lib/providers/ec2.d.ts +1 -1
- package/lib/providers/ec2.js +3 -3
- package/lib/providers/ecs.d.ts +6 -2
- package/lib/providers/ecs.js +64 -32
- package/lib/providers/fargate.js +2 -2
- package/lib/providers/lambda.js +12 -3
- package/lib/runner.d.ts +3 -3
- package/lib/runner.js +5 -5
- package/lib/secrets.js +1 -1
- package/package.json +7 -5
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": "5.0.
|
|
3117
|
+
"jsiiVersion": "5.0.7 (build 5782cd5)",
|
|
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[][7]\n[][6]\n[][8]\n[][11]\n[][12]\n[](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[](https://github.com/CloudSnorkel/cdk-github-runners/blob/main/LICENSE)\n\nUse this CDK construct to create ephemeral [self-hosted GitHub runners][1] on-demand inside your AWS account.\n\n* Easy to configure GitHub integration with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n* 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* You are using GitHub Enterprise Server\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 | ECS | Lambda |\n|------------------|-------------------|----------------------------|----------------|----------------|---------------|\n| **Time limit** | Unlimited | 8 hours | Unlimited | Unlimited | 15 minutes |\n| **vCPUs** | Unlimited | 2, 4, 8, or 72 | 0.25 to 4 | Unlimited | 1 to 6 |\n| **RAM** | Unlimited | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | Unlimited | 128mb to 10gb |\n| **Storage** | Unlimited | 50gb to 824gb | 20gb to 200gb | Unlimited | Up to 10gb |\n| **Architecture** | x86_64, ARM64 | 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, 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\n* EC2 is useful when you want runners to have complete access to the host\n* ECS is useful when you want to control the infrastructure, like leaving the runner host running for faster startups\n* Lambda is useful for short jobs that can work within time, size and readonly system constraints\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Confirm you're using CDK v2\n2. Install the appropriate package\n 1. [Python][6]\n ```\n pip install cloudsnorkel.cdk-github-runners\n ```\n 2. [TypeScript or JavaScript][7]\n ```\n npm i @cloudsnorkel/cdk-github-runners\n ```\n 3. [Java][8]\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n 4. [Go][11]\n ```\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n 5. [.NET][12]\n ```\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n3. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n4. Deploy your stack\n5. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n6. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n7. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token\n8. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n9. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n10. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[](https://youtu.be/wlyv_3V8lIw)\n\n## Customizing\n\nThe default providers configured by `GitHubRunners` are useful for testing but probably not too much for actual production work. They run in the default VPC or no VPC and have no added IAM permissions. You would usually want to configure the providers yourself.\n\nFor example:\n\n```typescript\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 CodeBuildRunnerProvider(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 = CodeBuildRunnerProvider.imageBuilder(this, 'image builder', {\n dockerfilePath: FargateRunner.LINUX_X64_DOCKERFILE_PATH,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyBuilder.addComponent(\n RunnerImageComponent.custom({ commands: ['apt install -y nginx xz-utils'] })\n);\n\nconst myProvider = new FargateRunnerProvider(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(this, '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 can also be customized the same way.\n\n```typescript\nconst myWindowsBuilder = FargateRunnerProvider.imageBuilder(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(\n RunnerImageComponent.custom({\n name: 'Ninja',\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 FargateRunnerProvider(this, 'fargate runner', {\n label: 'customized-windows-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuidler: myWindowsBuilder,\n});\n\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nThe runner OS and architecture is determined by the image it is set to use. For example, to create a Fargate runner provider for ARM64 set the `architecture` property for the image builder to `Architecture.ARM64` in the image builder properties.\n\n```typescript\nnew GitHubRunners(this, 'runners', {\n providers: [\n new FargateRunnerProvider(this, 'fargate runner', {\n labels: ['arm64', 'fargate'],\n imageBuidler: FargateRunnerProvider.imageBuilder(this, 'image builder', {\n architecture: Architecture.ARM64,\n os: Os.LINUX,\n }),\n }),\n ],\n});\n```\n\n## Architecture\n\n\n\n## Troubleshooting\n\n1. Always start with the status function, make sure no errors are reported, and confirm all status codes are OK\n2. 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 jobs get stuck often and take a long time to start, cancel the pending jobs and start them 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## Monitoring\n\nThere are two important ways to monitor your runners:\n\n1. Make sure runners don't fail to start. When that happens, jobs may sit and wait. Use `GitHubRunners.metricFailed()` to get a metric for the number of failed runner starts. You should use this metric to trigger an alarm.\n2. Make sure runner images don't fail to build. Failed runner image builds mean you will get stuck with out-of-date software on your runners. It may lead to security vulnerabilities, or it may lead to slower runner start-ups as the runner software itself needs to be updated. Use `GitHubRunners.failedImageBuildsTopic()` to get SNS topic that gets notified of failed runner image builds. You should subscribe to this topic.\n\nOther useful metrics to track:\n\n1. Use `GitHubRunners.metricJobCompleted()` to get a metric for the number of completed jobs broken down by labels and job success.\n2. Use `GitHubRunners.metricTime()` to get a metric for the total time a runner is running. This includes the overhead of starting the runner.\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"
|
|
3141
|
+
"markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[][7]\n[][6]\n[][8]\n[][11]\n[][12]\n[](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[](https://github.com/CloudSnorkel/cdk-github-runners/blob/main/LICENSE)\n\nUse this CDK construct to create ephemeral [self-hosted GitHub runners][1] on-demand inside your AWS account.\n\n* Easy to configure GitHub integration with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n* 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* You are using GitHub Enterprise Server\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 | ECS | Lambda |\n|------------------|-------------------|----------------------------|----------------|----------------|---------------|\n| **Time limit** | Unlimited | 8 hours | Unlimited | Unlimited | 15 minutes |\n| **vCPUs** | Unlimited | 2, 4, 8, or 72 | 0.25 to 4 | Unlimited | 1 to 6 |\n| **RAM** | Unlimited | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | Unlimited | 128mb to 10gb |\n| **Storage** | Unlimited | 50gb to 824gb | 20gb to 200gb | Unlimited | Up to 10gb |\n| **Architecture** | x86_64, ARM64 | 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, 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\n* EC2 is useful when you want runners to have complete access to the host\n* ECS is useful when you want to control the infrastructure, like leaving the runner host running for faster startups\n* Lambda is useful for short jobs that can work within time, size and readonly system constraints\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Install and use the appropriate package\n <details><summary>Python</summary>\n\n ### Install\n Available on [PyPI][6].\n ```bash\n pip install cloudsnorkel.cdk-github-runners\n ```\n ### Use\n ```python\n from cloudsnorkel.cdk_github_runners import GitHubRunners\n\n GitHubRunners(self, \"runners\")\n ```\n </details>\n <details><summary>TypeScript or JavaScript</summary>\n\n ### Install\n Available on [npm][7].\n ```bash\n npm i @cloudsnorkel/cdk-github-runners\n ```\n ### Use\n ```typescript\n import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';\n\n new GitHubRunners(this, \"runners\");\n ```\n </details>\n <details><summary>Java</summary>\n\n ### Install\n Available on [Maven][8].\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n ### Use\n ```java\n import com.cloudsnorkel.cdk.github.runners.GitHubRunners;\n\n GitHubRunners.Builder.create(this, \"runners\").build();\n ```\n </details>\n <details><summary>Go</summary>\n\n ### Install\n Available on [GitHub][11].\n ```bash\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n ### Use\n ```go\n import \"github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\"\n\n NewGitHubRunners(this, jsii.String(\"runners\"))\n ```\n </details>\n <details><summary>.NET</summary>\n\n ### Install\n Available on [Nuget][12].\n ```bash\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n ### Use\n ```csharp\n using CloudSnorkel;\n\n new GitHubRunners(this, \"runners\");\n ```\n </details>\n2. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n3. Deploy your stack\n4. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n ```\n ✅ github-runners-test\n\n ✨ Deployment time: 260.01s\n\n Outputs:\n github-runners-test.runnersstatuscommand4A30F0F5 = aws --region us-east-1 lambda invoke --function-name github-runners-test-runnersstatus1A5771C0-mvttg8oPQnQS status.json\n ```\n5. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n6. 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\n7. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n9. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[](https://youtu.be/wlyv_3V8lIw)\n\n## Customizing\n\nThe default providers configured by `GitHubRunners` are useful for testing but probably not too much for actual production work. They run in the default VPC or no VPC and have no added IAM permissions. You would usually want to configure the providers yourself.\n\nFor example:\n\n```typescript\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 CodeBuildRunnerProvider(this, 'codebuild runner', {\n labels: ['my-codebuild'],\n vpc: vpc,\n securityGroups: [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 = CodeBuildRunnerProvider.imageBuilder(this, 'image builder', {\n dockerfilePath: FargateRunner.LINUX_X64_DOCKERFILE_PATH,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyBuilder.addComponent(\n RunnerImageComponent.custom({ commands: ['apt install -y nginx xz-utils'] })\n);\n\nconst myProvider = new FargateRunnerProvider(this, 'fargate runner', {\n labels: ['customized-fargate'],\n vpc: vpc,\n securityGroups: [runnerSg],\n imageBuilder: myBuilder,\n});\n\n// create the runner infrastructure\nnew GitHubRunners(this, '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 can also be customized the same way.\n\n```typescript\nconst myWindowsBuilder = FargateRunnerProvider.imageBuilder(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(\n RunnerImageComponent.custom({\n name: 'Ninja',\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 FargateRunnerProvider(this, 'fargate runner', {\n labels: ['customized-windows-fargate'],\n vpc: vpc,\n securityGroups: [runnerSg],\n imageBuidler: myWindowsBuilder,\n});\n\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nThe runner OS and architecture is determined by the image it is set to use. For example, to create a Fargate runner provider for ARM64 set the `architecture` property for the image builder to `Architecture.ARM64` in the image builder properties.\n\n```typescript\nnew GitHubRunners(this, 'runners', {\n providers: [\n new FargateRunnerProvider(this, 'fargate runner', {\n labels: ['arm64', 'fargate'],\n imageBuidler: FargateRunnerProvider.imageBuilder(this, 'image builder', {\n architecture: Architecture.ARM64,\n os: Os.LINUX_UBUNTU,\n }),\n }),\n ],\n});\n```\n\n## Architecture\n\n\n\n## Troubleshooting\n\n1. Always start with the status function, make sure no errors are reported, and confirm all status codes are OK\n2. 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 jobs get stuck often and take a long time to start, cancel the pending jobs and start them 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## Monitoring\n\nThere are two important ways to monitor your runners:\n\n1. Make sure runners don't fail to start. When that happens, jobs may sit and wait. Use `GitHubRunners.metricFailed()` to get a metric for the number of failed runner starts. You should use this metric to trigger an alarm.\n2. Make sure runner images don't fail to build. Failed runner image builds mean you will get stuck with out-of-date software on your runners. It may lead to security vulnerabilities, or it may lead to slower runner start-ups as the runner software itself needs to be updated. Use `GitHubRunners.failedImageBuildsTopic()` to get SNS topic that gets notified of failed runner image builds. You should subscribe to this topic.\n\nOther useful metrics to track:\n\n1. Use `GitHubRunners.metricJobCompleted()` to get a metric for the number of completed jobs broken down by labels and job success.\n2. Use `GitHubRunners.metricTime()` to get a metric for the total time a runner is running. This includes the overhead of starting the runner.\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://central.sonatype.com/artifact/com.cloudsnorkel/cdk.github.runners/\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",
|
|
@@ -3174,7 +3174,7 @@
|
|
|
3174
3174
|
"base": "constructs.Construct",
|
|
3175
3175
|
"docs": {
|
|
3176
3176
|
"deprecated": "use RunnerImageBuilder",
|
|
3177
|
-
"remarks": "Builders can be used with {@link Ec2Runner }.\n\nEach builder re-runs automatically at a set interval to make sure the AMIs contain the latest versions of everything.\n\nYou can create an instance of this construct to customize the AMI used to spin-up runners. Some runner providers may require custom components. Check the runner provider documentation.\n\nFor example, to set a specific runner version, rebuild the image every 2 weeks, and add a few packages for the EC2 provider, use:\n\n```\nconst builder = new AmiBuilder(this, 'Builder', {\n runnerVersion: RunnerVersion.specific('2.293.0'),\n rebuildInterval: Duration.days(14),\n});\nbuilder.addComponent(new ImageBuilderComponent(scope, id, {\n platform: 'Linux',\n displayName: 'p7zip',\n description: 'Install some more packages',\n commands: [\n 'apt-get install p7zip',\n ],\n}));\nnew
|
|
3177
|
+
"remarks": "Builders can be used with {@link Ec2Runner }.\n\nEach builder re-runs automatically at a set interval to make sure the AMIs contain the latest versions of everything.\n\nYou can create an instance of this construct to customize the AMI used to spin-up runners. Some runner providers may require custom components. Check the runner provider documentation.\n\nFor example, to set a specific runner version, rebuild the image every 2 weeks, and add a few packages for the EC2 provider, use:\n\n```\nconst builder = new AmiBuilder(this, 'Builder', {\n runnerVersion: RunnerVersion.specific('2.293.0'),\n rebuildInterval: Duration.days(14),\n});\nbuilder.addComponent(new ImageBuilderComponent(scope, id, {\n platform: 'Linux',\n displayName: 'p7zip',\n description: 'Install some more packages',\n commands: [\n 'apt-get install p7zip',\n ],\n}));\nnew Ec2RunnerProvider(this, 'EC2 provider', {\n labels: ['custom-ec2'],\n amiBuilder: builder,\n});\n```",
|
|
3178
3178
|
"stability": "deprecated",
|
|
3179
3179
|
"summary": "An AMI builder that uses AWS Image Builder to build AMIs pre-baked with all the GitHub Actions runner requirements."
|
|
3180
3180
|
},
|
|
@@ -4070,7 +4070,7 @@
|
|
|
4070
4070
|
"kind": "interface",
|
|
4071
4071
|
"locationInModule": {
|
|
4072
4072
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
4073
|
-
"line":
|
|
4073
|
+
"line": 33
|
|
4074
4074
|
},
|
|
4075
4075
|
"name": "AwsImageBuilderRunnerImageBuilderProps",
|
|
4076
4076
|
"properties": [
|
|
@@ -4084,7 +4084,7 @@
|
|
|
4084
4084
|
"immutable": true,
|
|
4085
4085
|
"locationInModule": {
|
|
4086
4086
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
4087
|
-
"line":
|
|
4087
|
+
"line": 39
|
|
4088
4088
|
},
|
|
4089
4089
|
"name": "instanceType",
|
|
4090
4090
|
"optional": true,
|
|
@@ -4100,7 +4100,7 @@
|
|
|
4100
4100
|
"base": "constructs.Construct",
|
|
4101
4101
|
"docs": {
|
|
4102
4102
|
"deprecated": "use RunnerImageBuilder",
|
|
4103
|
-
"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:
|
|
4103
|
+
"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: FargateRunnerProvider.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 FargateRunnerProvider(this, 'Fargate provider', {\n labels: ['customized-fargate'],\n imageBuilder: builder,\n});\n```",
|
|
4104
4104
|
"stability": "deprecated",
|
|
4105
4105
|
"summary": "An image builder that uses CodeBuild to build Docker images pre-baked with all the GitHub Actions runner requirements."
|
|
4106
4106
|
},
|
|
@@ -4271,7 +4271,7 @@
|
|
|
4271
4271
|
},
|
|
4272
4272
|
"locationInModule": {
|
|
4273
4273
|
"filename": "src/image-builders/codebuild-deprecated.ts",
|
|
4274
|
-
"line":
|
|
4274
|
+
"line": 529
|
|
4275
4275
|
},
|
|
4276
4276
|
"name": "bindAmi",
|
|
4277
4277
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder",
|
|
@@ -4340,7 +4340,7 @@
|
|
|
4340
4340
|
"immutable": true,
|
|
4341
4341
|
"locationInModule": {
|
|
4342
4342
|
"filename": "src/image-builders/codebuild-deprecated.ts",
|
|
4343
|
-
"line":
|
|
4343
|
+
"line": 523
|
|
4344
4344
|
},
|
|
4345
4345
|
"name": "connections",
|
|
4346
4346
|
"type": {
|
|
@@ -4834,7 +4834,7 @@
|
|
|
4834
4834
|
},
|
|
4835
4835
|
"locationInModule": {
|
|
4836
4836
|
"filename": "src/providers/common.ts",
|
|
4837
|
-
"line":
|
|
4837
|
+
"line": 474
|
|
4838
4838
|
},
|
|
4839
4839
|
"name": "addRetry",
|
|
4840
4840
|
"parameters": [
|
|
@@ -4923,7 +4923,7 @@
|
|
|
4923
4923
|
},
|
|
4924
4924
|
"locationInModule": {
|
|
4925
4925
|
"filename": "src/providers/common.ts",
|
|
4926
|
-
"line":
|
|
4926
|
+
"line": 460
|
|
4927
4927
|
},
|
|
4928
4928
|
"name": "labelsFromProperties",
|
|
4929
4929
|
"parameters": [
|
|
@@ -5358,7 +5358,7 @@
|
|
|
5358
5358
|
"base": "constructs.Construct",
|
|
5359
5359
|
"docs": {
|
|
5360
5360
|
"deprecated": "use RunnerImageBuilder",
|
|
5361
|
-
"remarks": "Builders can be used with runner providers.\n\nThe CodeBuild builder is better and faster. Only use this one if you have no choice. For example, if you need Windows containers.\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. Some runner providers may require custom components. Check the runner provider documentation. The default components work with CodeBuild and Fargate.\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 ContainerImageBuilder(this, 'Builder', {\n runnerVersion: RunnerVersion.specific('2.293.0'),\n rebuildInterval: Duration.days(14),\n});\nnew
|
|
5361
|
+
"remarks": "Builders can be used with runner providers.\n\nThe CodeBuild builder is better and faster. Only use this one if you have no choice. For example, if you need Windows containers.\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. Some runner providers may require custom components. Check the runner provider documentation. The default components work with CodeBuild and Fargate.\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 ContainerImageBuilder(this, 'Builder', {\n runnerVersion: RunnerVersion.specific('2.293.0'),\n rebuildInterval: Duration.days(14),\n});\nnew CodeBuildRunnerProvider(this, 'CodeBuild provider', {\n labels: ['custom-codebuild'],\n imageBuilder: builder,\n});\n```",
|
|
5362
5362
|
"stability": "deprecated",
|
|
5363
5363
|
"summary": "An image builder that uses AWS Image Builder to build Docker images pre-baked with all the GitHub Actions runner requirements."
|
|
5364
5364
|
},
|
|
@@ -5452,7 +5452,7 @@
|
|
|
5452
5452
|
},
|
|
5453
5453
|
"locationInModule": {
|
|
5454
5454
|
"filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
|
|
5455
|
-
"line":
|
|
5455
|
+
"line": 340
|
|
5456
5456
|
},
|
|
5457
5457
|
"name": "bindAmi",
|
|
5458
5458
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder",
|
|
@@ -6164,7 +6164,7 @@
|
|
|
6164
6164
|
},
|
|
6165
6165
|
"locationInModule": {
|
|
6166
6166
|
"filename": "src/providers/common.ts",
|
|
6167
|
-
"line":
|
|
6167
|
+
"line": 474
|
|
6168
6168
|
},
|
|
6169
6169
|
"name": "addRetry",
|
|
6170
6170
|
"parameters": [
|
|
@@ -6253,7 +6253,7 @@
|
|
|
6253
6253
|
},
|
|
6254
6254
|
"locationInModule": {
|
|
6255
6255
|
"filename": "src/providers/common.ts",
|
|
6256
|
-
"line":
|
|
6256
|
+
"line": 460
|
|
6257
6257
|
},
|
|
6258
6258
|
"name": "labelsFromProperties",
|
|
6259
6259
|
"parameters": [
|
|
@@ -6435,7 +6435,7 @@
|
|
|
6435
6435
|
{
|
|
6436
6436
|
"abstract": true,
|
|
6437
6437
|
"docs": {
|
|
6438
|
-
"default": "
|
|
6438
|
+
"default": "Ec2RunnerProvider.imageBuilder()",
|
|
6439
6439
|
"remarks": "The image builder determines the OS and architecture of the runner.",
|
|
6440
6440
|
"stability": "experimental",
|
|
6441
6441
|
"summary": "Runner image builder used to build AMI containing GitHub Runner and all requirements."
|
|
@@ -6665,7 +6665,7 @@
|
|
|
6665
6665
|
},
|
|
6666
6666
|
"locationInModule": {
|
|
6667
6667
|
"filename": "src/providers/ecs.ts",
|
|
6668
|
-
"line":
|
|
6668
|
+
"line": 301
|
|
6669
6669
|
},
|
|
6670
6670
|
"parameters": [
|
|
6671
6671
|
{
|
|
@@ -6695,7 +6695,7 @@
|
|
|
6695
6695
|
"kind": "class",
|
|
6696
6696
|
"locationInModule": {
|
|
6697
6697
|
"filename": "src/providers/ecs.ts",
|
|
6698
|
-
"line":
|
|
6698
|
+
"line": 199
|
|
6699
6699
|
},
|
|
6700
6700
|
"methods": [
|
|
6701
6701
|
{
|
|
@@ -6706,7 +6706,7 @@
|
|
|
6706
6706
|
},
|
|
6707
6707
|
"locationInModule": {
|
|
6708
6708
|
"filename": "src/providers/ecs.ts",
|
|
6709
|
-
"line":
|
|
6709
|
+
"line": 212
|
|
6710
6710
|
},
|
|
6711
6711
|
"name": "imageBuilder",
|
|
6712
6712
|
"parameters": [
|
|
@@ -6743,7 +6743,7 @@
|
|
|
6743
6743
|
},
|
|
6744
6744
|
"locationInModule": {
|
|
6745
6745
|
"filename": "src/providers/common.ts",
|
|
6746
|
-
"line":
|
|
6746
|
+
"line": 474
|
|
6747
6747
|
},
|
|
6748
6748
|
"name": "addRetry",
|
|
6749
6749
|
"parameters": [
|
|
@@ -6784,7 +6784,7 @@
|
|
|
6784
6784
|
},
|
|
6785
6785
|
"locationInModule": {
|
|
6786
6786
|
"filename": "src/providers/ecs.ts",
|
|
6787
|
-
"line":
|
|
6787
|
+
"line": 497
|
|
6788
6788
|
},
|
|
6789
6789
|
"name": "getStepFunctionTask",
|
|
6790
6790
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6813,7 +6813,7 @@
|
|
|
6813
6813
|
},
|
|
6814
6814
|
"locationInModule": {
|
|
6815
6815
|
"filename": "src/providers/ecs.ts",
|
|
6816
|
-
"line":
|
|
6816
|
+
"line": 546
|
|
6817
6817
|
},
|
|
6818
6818
|
"name": "grantStateMachine",
|
|
6819
6819
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6832,7 +6832,7 @@
|
|
|
6832
6832
|
},
|
|
6833
6833
|
"locationInModule": {
|
|
6834
6834
|
"filename": "src/providers/common.ts",
|
|
6835
|
-
"line":
|
|
6835
|
+
"line": 460
|
|
6836
6836
|
},
|
|
6837
6837
|
"name": "labelsFromProperties",
|
|
6838
6838
|
"parameters": [
|
|
@@ -6882,7 +6882,7 @@
|
|
|
6882
6882
|
},
|
|
6883
6883
|
"locationInModule": {
|
|
6884
6884
|
"filename": "src/providers/ecs.ts",
|
|
6885
|
-
"line":
|
|
6885
|
+
"line": 549
|
|
6886
6886
|
},
|
|
6887
6887
|
"name": "status",
|
|
6888
6888
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6911,7 +6911,7 @@
|
|
|
6911
6911
|
"immutable": true,
|
|
6912
6912
|
"locationInModule": {
|
|
6913
6913
|
"filename": "src/providers/ecs.ts",
|
|
6914
|
-
"line":
|
|
6914
|
+
"line": 277
|
|
6915
6915
|
},
|
|
6916
6916
|
"name": "connections",
|
|
6917
6917
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -6927,7 +6927,7 @@
|
|
|
6927
6927
|
"immutable": true,
|
|
6928
6928
|
"locationInModule": {
|
|
6929
6929
|
"filename": "src/providers/ecs.ts",
|
|
6930
|
-
"line":
|
|
6930
|
+
"line": 272
|
|
6931
6931
|
},
|
|
6932
6932
|
"name": "grantPrincipal",
|
|
6933
6933
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -6943,7 +6943,7 @@
|
|
|
6943
6943
|
"immutable": true,
|
|
6944
6944
|
"locationInModule": {
|
|
6945
6945
|
"filename": "src/providers/ecs.ts",
|
|
6946
|
-
"line":
|
|
6946
|
+
"line": 252
|
|
6947
6947
|
},
|
|
6948
6948
|
"name": "labels",
|
|
6949
6949
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6965,7 +6965,7 @@
|
|
|
6965
6965
|
"immutable": true,
|
|
6966
6966
|
"locationInModule": {
|
|
6967
6967
|
"filename": "src/providers/ecs.ts",
|
|
6968
|
-
"line":
|
|
6968
|
+
"line": 289
|
|
6969
6969
|
},
|
|
6970
6970
|
"name": "logGroup",
|
|
6971
6971
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -7231,15 +7231,32 @@
|
|
|
7231
7231
|
{
|
|
7232
7232
|
"abstract": true,
|
|
7233
7233
|
"docs": {
|
|
7234
|
-
"default": "
|
|
7234
|
+
"default": "false (true if spotMaxPrice is specified)",
|
|
7235
7235
|
"stability": "experimental",
|
|
7236
|
-
"summary": "Use spot capacity
|
|
7236
|
+
"summary": "Use spot capacity."
|
|
7237
7237
|
},
|
|
7238
7238
|
"immutable": true,
|
|
7239
7239
|
"locationInModule": {
|
|
7240
7240
|
"filename": "src/providers/ecs.ts",
|
|
7241
7241
|
"line": 156
|
|
7242
7242
|
},
|
|
7243
|
+
"name": "spot",
|
|
7244
|
+
"optional": true,
|
|
7245
|
+
"type": {
|
|
7246
|
+
"primitive": "boolean"
|
|
7247
|
+
}
|
|
7248
|
+
},
|
|
7249
|
+
{
|
|
7250
|
+
"abstract": true,
|
|
7251
|
+
"docs": {
|
|
7252
|
+
"stability": "experimental",
|
|
7253
|
+
"summary": "Maximum price for spot instances."
|
|
7254
|
+
},
|
|
7255
|
+
"immutable": true,
|
|
7256
|
+
"locationInModule": {
|
|
7257
|
+
"filename": "src/providers/ecs.ts",
|
|
7258
|
+
"line": 161
|
|
7259
|
+
},
|
|
7243
7260
|
"name": "spotMaxPrice",
|
|
7244
7261
|
"optional": true,
|
|
7245
7262
|
"type": {
|
|
@@ -7443,7 +7460,7 @@
|
|
|
7443
7460
|
},
|
|
7444
7461
|
"locationInModule": {
|
|
7445
7462
|
"filename": "src/providers/common.ts",
|
|
7446
|
-
"line":
|
|
7463
|
+
"line": 474
|
|
7447
7464
|
},
|
|
7448
7465
|
"name": "addRetry",
|
|
7449
7466
|
"parameters": [
|
|
@@ -7532,7 +7549,7 @@
|
|
|
7532
7549
|
},
|
|
7533
7550
|
"locationInModule": {
|
|
7534
7551
|
"filename": "src/providers/common.ts",
|
|
7535
|
-
"line":
|
|
7552
|
+
"line": 460
|
|
7536
7553
|
},
|
|
7537
7554
|
"name": "labelsFromProperties",
|
|
7538
7555
|
"parameters": [
|
|
@@ -8115,7 +8132,7 @@
|
|
|
8115
8132
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
8116
8133
|
"base": "constructs.Construct",
|
|
8117
8134
|
"docs": {
|
|
8118
|
-
"remarks": "It creates a webhook, secrets, and a step function to orchestrate all runs. Secrets are not automatically filled. See README.md for instructions on how to setup GitHub integration.\n\nBy default, this will create a runner provider of each available type with the defaults. This is good enough for the initial setup stage when you just want to get GitHub integration working.\n\n```typescript\nnew GitHubRunners(this, 'runners');\n```\n\nUsually you'd want to configure the runner providers so the runners can run in a certain VPC or have certain permissions.\n\n```typescript\nconst vpc = ec2.Vpc.fromLookup(this, 'vpc', { vpcId: 'vpc-1234567' });\nconst runnerSg = new ec2.SecurityGroup(this, 'runner security group', { vpc: vpc });\nconst dbSg = ec2.SecurityGroup.fromSecurityGroupId(this, 'database security group', 'sg-1234567');\nconst bucket = new s3.Bucket(this, 'runner bucket');\n\n// create a custom CodeBuild provider\nconst myProvider = new
|
|
8135
|
+
"remarks": "It creates a webhook, secrets, and a step function to orchestrate all runs. Secrets are not automatically filled. See README.md for instructions on how to setup GitHub integration.\n\nBy default, this will create a runner provider of each available type with the defaults. This is good enough for the initial setup stage when you just want to get GitHub integration working.\n\n```typescript\nnew GitHubRunners(this, 'runners');\n```\n\nUsually you'd want to configure the runner providers so the runners can run in a certain VPC or have certain permissions.\n\n```typescript\nconst vpc = ec2.Vpc.fromLookup(this, 'vpc', { vpcId: 'vpc-1234567' });\nconst runnerSg = new ec2.SecurityGroup(this, 'runner security group', { vpc: vpc });\nconst dbSg = ec2.SecurityGroup.fromSecurityGroupId(this, 'database security group', 'sg-1234567');\nconst bucket = new s3.Bucket(this, 'runner bucket');\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunnerProvider(\n this, 'codebuild runner',\n {\n labels: ['my-codebuild'],\n vpc: vpc,\n securityGroups: [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 this,\n 'runners',\n {\n providers: [myProvider],\n }\n);\n```",
|
|
8119
8136
|
"stability": "experimental",
|
|
8120
8137
|
"summary": "Create all the required infrastructure to provide self-hosted GitHub runners."
|
|
8121
8138
|
},
|
|
@@ -8570,7 +8587,7 @@
|
|
|
8570
8587
|
"kind": "interface",
|
|
8571
8588
|
"locationInModule": {
|
|
8572
8589
|
"filename": "src/providers/common.ts",
|
|
8573
|
-
"line":
|
|
8590
|
+
"line": 345
|
|
8574
8591
|
},
|
|
8575
8592
|
"name": "IRunnerAmiStatus",
|
|
8576
8593
|
"properties": [
|
|
@@ -8583,7 +8600,7 @@
|
|
|
8583
8600
|
"immutable": true,
|
|
8584
8601
|
"locationInModule": {
|
|
8585
8602
|
"filename": "src/providers/common.ts",
|
|
8586
|
-
"line":
|
|
8603
|
+
"line": 349
|
|
8587
8604
|
},
|
|
8588
8605
|
"name": "launchTemplate",
|
|
8589
8606
|
"type": {
|
|
@@ -8599,7 +8616,7 @@
|
|
|
8599
8616
|
"immutable": true,
|
|
8600
8617
|
"locationInModule": {
|
|
8601
8618
|
"filename": "src/providers/common.ts",
|
|
8602
|
-
"line":
|
|
8619
|
+
"line": 354
|
|
8603
8620
|
},
|
|
8604
8621
|
"name": "amiBuilderLogGroup",
|
|
8605
8622
|
"optional": true,
|
|
@@ -8674,7 +8691,7 @@
|
|
|
8674
8691
|
"kind": "interface",
|
|
8675
8692
|
"locationInModule": {
|
|
8676
8693
|
"filename": "src/providers/common.ts",
|
|
8677
|
-
"line":
|
|
8694
|
+
"line": 325
|
|
8678
8695
|
},
|
|
8679
8696
|
"name": "IRunnerImageStatus",
|
|
8680
8697
|
"properties": [
|
|
@@ -8687,7 +8704,7 @@
|
|
|
8687
8704
|
"immutable": true,
|
|
8688
8705
|
"locationInModule": {
|
|
8689
8706
|
"filename": "src/providers/common.ts",
|
|
8690
|
-
"line":
|
|
8707
|
+
"line": 329
|
|
8691
8708
|
},
|
|
8692
8709
|
"name": "imageRepository",
|
|
8693
8710
|
"type": {
|
|
@@ -8703,7 +8720,7 @@
|
|
|
8703
8720
|
"immutable": true,
|
|
8704
8721
|
"locationInModule": {
|
|
8705
8722
|
"filename": "src/providers/common.ts",
|
|
8706
|
-
"line":
|
|
8723
|
+
"line": 334
|
|
8707
8724
|
},
|
|
8708
8725
|
"name": "imageTag",
|
|
8709
8726
|
"type": {
|
|
@@ -8719,7 +8736,7 @@
|
|
|
8719
8736
|
"immutable": true,
|
|
8720
8737
|
"locationInModule": {
|
|
8721
8738
|
"filename": "src/providers/common.ts",
|
|
8722
|
-
"line":
|
|
8739
|
+
"line": 339
|
|
8723
8740
|
},
|
|
8724
8741
|
"name": "imageBuilderLogGroup",
|
|
8725
8742
|
"optional": true,
|
|
@@ -8746,7 +8763,7 @@
|
|
|
8746
8763
|
"kind": "interface",
|
|
8747
8764
|
"locationInModule": {
|
|
8748
8765
|
"filename": "src/providers/common.ts",
|
|
8749
|
-
"line":
|
|
8766
|
+
"line": 405
|
|
8750
8767
|
},
|
|
8751
8768
|
"methods": [
|
|
8752
8769
|
{
|
|
@@ -8758,7 +8775,7 @@
|
|
|
8758
8775
|
},
|
|
8759
8776
|
"locationInModule": {
|
|
8760
8777
|
"filename": "src/providers/common.ts",
|
|
8761
|
-
"line":
|
|
8778
|
+
"line": 429
|
|
8762
8779
|
},
|
|
8763
8780
|
"name": "getStepFunctionTask",
|
|
8764
8781
|
"parameters": [
|
|
@@ -8787,7 +8804,7 @@
|
|
|
8787
8804
|
},
|
|
8788
8805
|
"locationInModule": {
|
|
8789
8806
|
"filename": "src/providers/common.ts",
|
|
8790
|
-
"line":
|
|
8807
|
+
"line": 437
|
|
8791
8808
|
},
|
|
8792
8809
|
"name": "grantStateMachine",
|
|
8793
8810
|
"parameters": [
|
|
@@ -8811,7 +8828,7 @@
|
|
|
8811
8828
|
},
|
|
8812
8829
|
"locationInModule": {
|
|
8813
8830
|
"filename": "src/providers/common.ts",
|
|
8814
|
-
"line":
|
|
8831
|
+
"line": 444
|
|
8815
8832
|
},
|
|
8816
8833
|
"name": "status",
|
|
8817
8834
|
"parameters": [
|
|
@@ -8844,7 +8861,7 @@
|
|
|
8844
8861
|
"immutable": true,
|
|
8845
8862
|
"locationInModule": {
|
|
8846
8863
|
"filename": "src/providers/common.ts",
|
|
8847
|
-
"line":
|
|
8864
|
+
"line": 413
|
|
8848
8865
|
},
|
|
8849
8866
|
"name": "labels",
|
|
8850
8867
|
"type": {
|
|
@@ -8866,7 +8883,7 @@
|
|
|
8866
8883
|
"immutable": true,
|
|
8867
8884
|
"locationInModule": {
|
|
8868
8885
|
"filename": "src/providers/common.ts",
|
|
8869
|
-
"line":
|
|
8886
|
+
"line": 420
|
|
8870
8887
|
},
|
|
8871
8888
|
"name": "logGroup",
|
|
8872
8889
|
"type": {
|
|
@@ -8886,7 +8903,7 @@
|
|
|
8886
8903
|
"kind": "interface",
|
|
8887
8904
|
"locationInModule": {
|
|
8888
8905
|
"filename": "src/providers/common.ts",
|
|
8889
|
-
"line":
|
|
8906
|
+
"line": 360
|
|
8890
8907
|
},
|
|
8891
8908
|
"name": "IRunnerProviderStatus",
|
|
8892
8909
|
"properties": [
|
|
@@ -8899,7 +8916,7 @@
|
|
|
8899
8916
|
"immutable": true,
|
|
8900
8917
|
"locationInModule": {
|
|
8901
8918
|
"filename": "src/providers/common.ts",
|
|
8902
|
-
"line":
|
|
8919
|
+
"line": 369
|
|
8903
8920
|
},
|
|
8904
8921
|
"name": "labels",
|
|
8905
8922
|
"type": {
|
|
@@ -8920,7 +8937,7 @@
|
|
|
8920
8937
|
"immutable": true,
|
|
8921
8938
|
"locationInModule": {
|
|
8922
8939
|
"filename": "src/providers/common.ts",
|
|
8923
|
-
"line":
|
|
8940
|
+
"line": 364
|
|
8924
8941
|
},
|
|
8925
8942
|
"name": "type",
|
|
8926
8943
|
"type": {
|
|
@@ -8936,7 +8953,7 @@
|
|
|
8936
8953
|
"immutable": true,
|
|
8937
8954
|
"locationInModule": {
|
|
8938
8955
|
"filename": "src/providers/common.ts",
|
|
8939
|
-
"line":
|
|
8956
|
+
"line": 394
|
|
8940
8957
|
},
|
|
8941
8958
|
"name": "ami",
|
|
8942
8959
|
"optional": true,
|
|
@@ -8953,7 +8970,7 @@
|
|
|
8953
8970
|
"immutable": true,
|
|
8954
8971
|
"locationInModule": {
|
|
8955
8972
|
"filename": "src/providers/common.ts",
|
|
8956
|
-
"line":
|
|
8973
|
+
"line": 389
|
|
8957
8974
|
},
|
|
8958
8975
|
"name": "image",
|
|
8959
8976
|
"optional": true,
|
|
@@ -8970,7 +8987,7 @@
|
|
|
8970
8987
|
"immutable": true,
|
|
8971
8988
|
"locationInModule": {
|
|
8972
8989
|
"filename": "src/providers/common.ts",
|
|
8973
|
-
"line":
|
|
8990
|
+
"line": 399
|
|
8974
8991
|
},
|
|
8975
8992
|
"name": "logGroup",
|
|
8976
8993
|
"optional": true,
|
|
@@ -8987,7 +9004,7 @@
|
|
|
8987
9004
|
"immutable": true,
|
|
8988
9005
|
"locationInModule": {
|
|
8989
9006
|
"filename": "src/providers/common.ts",
|
|
8990
|
-
"line":
|
|
9007
|
+
"line": 384
|
|
8991
9008
|
},
|
|
8992
9009
|
"name": "roleArn",
|
|
8993
9010
|
"optional": true,
|
|
@@ -9004,7 +9021,7 @@
|
|
|
9004
9021
|
"immutable": true,
|
|
9005
9022
|
"locationInModule": {
|
|
9006
9023
|
"filename": "src/providers/common.ts",
|
|
9007
|
-
"line":
|
|
9024
|
+
"line": 379
|
|
9008
9025
|
},
|
|
9009
9026
|
"name": "securityGroups",
|
|
9010
9027
|
"optional": true,
|
|
@@ -9026,7 +9043,7 @@
|
|
|
9026
9043
|
"immutable": true,
|
|
9027
9044
|
"locationInModule": {
|
|
9028
9045
|
"filename": "src/providers/common.ts",
|
|
9029
|
-
"line":
|
|
9046
|
+
"line": 374
|
|
9030
9047
|
},
|
|
9031
9048
|
"name": "vpcArn",
|
|
9032
9049
|
"optional": true,
|
|
@@ -9048,7 +9065,7 @@
|
|
|
9048
9065
|
"kind": "interface",
|
|
9049
9066
|
"locationInModule": {
|
|
9050
9067
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9051
|
-
"line":
|
|
9068
|
+
"line": 45
|
|
9052
9069
|
},
|
|
9053
9070
|
"name": "ImageBuilderAsset",
|
|
9054
9071
|
"properties": [
|
|
@@ -9061,7 +9078,7 @@
|
|
|
9061
9078
|
"immutable": true,
|
|
9062
9079
|
"locationInModule": {
|
|
9063
9080
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9064
|
-
"line":
|
|
9081
|
+
"line": 54
|
|
9065
9082
|
},
|
|
9066
9083
|
"name": "asset",
|
|
9067
9084
|
"type": {
|
|
@@ -9077,7 +9094,7 @@
|
|
|
9077
9094
|
"immutable": true,
|
|
9078
9095
|
"locationInModule": {
|
|
9079
9096
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9080
|
-
"line":
|
|
9097
|
+
"line": 49
|
|
9081
9098
|
},
|
|
9082
9099
|
"name": "path",
|
|
9083
9100
|
"type": {
|
|
@@ -9103,7 +9120,7 @@
|
|
|
9103
9120
|
},
|
|
9104
9121
|
"locationInModule": {
|
|
9105
9122
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9106
|
-
"line":
|
|
9123
|
+
"line": 128
|
|
9107
9124
|
},
|
|
9108
9125
|
"parameters": [
|
|
9109
9126
|
{
|
|
@@ -9129,7 +9146,7 @@
|
|
|
9129
9146
|
"kind": "class",
|
|
9130
9147
|
"locationInModule": {
|
|
9131
9148
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9132
|
-
"line":
|
|
9149
|
+
"line": 115
|
|
9133
9150
|
},
|
|
9134
9151
|
"methods": [
|
|
9135
9152
|
{
|
|
@@ -9139,7 +9156,7 @@
|
|
|
9139
9156
|
},
|
|
9140
9157
|
"locationInModule": {
|
|
9141
9158
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9142
|
-
"line":
|
|
9159
|
+
"line": 230
|
|
9143
9160
|
},
|
|
9144
9161
|
"name": "grantAssetsRead",
|
|
9145
9162
|
"parameters": [
|
|
@@ -9157,7 +9174,7 @@
|
|
|
9157
9174
|
},
|
|
9158
9175
|
"locationInModule": {
|
|
9159
9176
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9160
|
-
"line":
|
|
9177
|
+
"line": 236
|
|
9161
9178
|
},
|
|
9162
9179
|
"name": "prefixCommandsWithErrorHandling",
|
|
9163
9180
|
"parameters": [
|
|
@@ -9237,7 +9254,7 @@
|
|
|
9237
9254
|
"immutable": true,
|
|
9238
9255
|
"locationInModule": {
|
|
9239
9256
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9240
|
-
"line":
|
|
9257
|
+
"line": 119
|
|
9241
9258
|
},
|
|
9242
9259
|
"name": "arn",
|
|
9243
9260
|
"type": {
|
|
@@ -9252,7 +9269,7 @@
|
|
|
9252
9269
|
"immutable": true,
|
|
9253
9270
|
"locationInModule": {
|
|
9254
9271
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9255
|
-
"line":
|
|
9272
|
+
"line": 124
|
|
9256
9273
|
},
|
|
9257
9274
|
"name": "platform",
|
|
9258
9275
|
"type": {
|
|
@@ -9273,7 +9290,7 @@
|
|
|
9273
9290
|
"kind": "interface",
|
|
9274
9291
|
"locationInModule": {
|
|
9275
9292
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9276
|
-
"line":
|
|
9293
|
+
"line": 60
|
|
9277
9294
|
},
|
|
9278
9295
|
"name": "ImageBuilderComponentProperties",
|
|
9279
9296
|
"properties": [
|
|
@@ -9287,7 +9304,7 @@
|
|
|
9287
9304
|
"immutable": true,
|
|
9288
9305
|
"locationInModule": {
|
|
9289
9306
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9290
|
-
"line":
|
|
9307
|
+
"line": 81
|
|
9291
9308
|
},
|
|
9292
9309
|
"name": "commands",
|
|
9293
9310
|
"type": {
|
|
@@ -9308,7 +9325,7 @@
|
|
|
9308
9325
|
"immutable": true,
|
|
9309
9326
|
"locationInModule": {
|
|
9310
9327
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9311
|
-
"line":
|
|
9328
|
+
"line": 74
|
|
9312
9329
|
},
|
|
9313
9330
|
"name": "description",
|
|
9314
9331
|
"type": {
|
|
@@ -9324,7 +9341,7 @@
|
|
|
9324
9341
|
"immutable": true,
|
|
9325
9342
|
"locationInModule": {
|
|
9326
9343
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9327
|
-
"line":
|
|
9344
|
+
"line": 69
|
|
9328
9345
|
},
|
|
9329
9346
|
"name": "displayName",
|
|
9330
9347
|
"type": {
|
|
@@ -9341,7 +9358,7 @@
|
|
|
9341
9358
|
"immutable": true,
|
|
9342
9359
|
"locationInModule": {
|
|
9343
9360
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9344
|
-
"line":
|
|
9361
|
+
"line": 64
|
|
9345
9362
|
},
|
|
9346
9363
|
"name": "platform",
|
|
9347
9364
|
"type": {
|
|
@@ -9357,7 +9374,7 @@
|
|
|
9357
9374
|
"immutable": true,
|
|
9358
9375
|
"locationInModule": {
|
|
9359
9376
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9360
|
-
"line":
|
|
9377
|
+
"line": 86
|
|
9361
9378
|
},
|
|
9362
9379
|
"name": "assets",
|
|
9363
9380
|
"optional": true,
|
|
@@ -9380,7 +9397,7 @@
|
|
|
9380
9397
|
"immutable": true,
|
|
9381
9398
|
"locationInModule": {
|
|
9382
9399
|
"filename": "src/image-builders/aws-image-builder/builder.ts",
|
|
9383
|
-
"line":
|
|
9400
|
+
"line": 93
|
|
9384
9401
|
},
|
|
9385
9402
|
"name": "reboot",
|
|
9386
9403
|
"optional": true,
|
|
@@ -9542,7 +9559,7 @@
|
|
|
9542
9559
|
"kind": "class",
|
|
9543
9560
|
"locationInModule": {
|
|
9544
9561
|
"filename": "src/providers/lambda.ts",
|
|
9545
|
-
"line":
|
|
9562
|
+
"line": 450
|
|
9546
9563
|
},
|
|
9547
9564
|
"name": "LambdaRunner",
|
|
9548
9565
|
"symbolId": "src/providers/lambda:LambdaRunner"
|
|
@@ -9640,7 +9657,7 @@
|
|
|
9640
9657
|
},
|
|
9641
9658
|
"locationInModule": {
|
|
9642
9659
|
"filename": "src/providers/common.ts",
|
|
9643
|
-
"line":
|
|
9660
|
+
"line": 474
|
|
9644
9661
|
},
|
|
9645
9662
|
"name": "addRetry",
|
|
9646
9663
|
"parameters": [
|
|
@@ -9681,7 +9698,7 @@
|
|
|
9681
9698
|
},
|
|
9682
9699
|
"locationInModule": {
|
|
9683
9700
|
"filename": "src/providers/lambda.ts",
|
|
9684
|
-
"line":
|
|
9701
|
+
"line": 304
|
|
9685
9702
|
},
|
|
9686
9703
|
"name": "getStepFunctionTask",
|
|
9687
9704
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -9710,7 +9727,7 @@
|
|
|
9710
9727
|
},
|
|
9711
9728
|
"locationInModule": {
|
|
9712
9729
|
"filename": "src/providers/lambda.ts",
|
|
9713
|
-
"line":
|
|
9730
|
+
"line": 367
|
|
9714
9731
|
},
|
|
9715
9732
|
"name": "grantStateMachine",
|
|
9716
9733
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -9729,7 +9746,7 @@
|
|
|
9729
9746
|
},
|
|
9730
9747
|
"locationInModule": {
|
|
9731
9748
|
"filename": "src/providers/common.ts",
|
|
9732
|
-
"line":
|
|
9749
|
+
"line": 460
|
|
9733
9750
|
},
|
|
9734
9751
|
"name": "labelsFromProperties",
|
|
9735
9752
|
"parameters": [
|
|
@@ -9779,7 +9796,7 @@
|
|
|
9779
9796
|
},
|
|
9780
9797
|
"locationInModule": {
|
|
9781
9798
|
"filename": "src/providers/lambda.ts",
|
|
9782
|
-
"line":
|
|
9799
|
+
"line": 370
|
|
9783
9800
|
},
|
|
9784
9801
|
"name": "status",
|
|
9785
9802
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -9846,7 +9863,7 @@
|
|
|
9846
9863
|
"immutable": true,
|
|
9847
9864
|
"locationInModule": {
|
|
9848
9865
|
"filename": "src/providers/lambda.ts",
|
|
9849
|
-
"line":
|
|
9866
|
+
"line": 293
|
|
9850
9867
|
},
|
|
9851
9868
|
"name": "connections",
|
|
9852
9869
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -10739,7 +10756,7 @@
|
|
|
10739
10756
|
"kind": "interface",
|
|
10740
10757
|
"locationInModule": {
|
|
10741
10758
|
"filename": "src/providers/common.ts",
|
|
10742
|
-
"line":
|
|
10759
|
+
"line": 235
|
|
10743
10760
|
},
|
|
10744
10761
|
"name": "ProviderRetryOptions",
|
|
10745
10762
|
"properties": [
|
|
@@ -10753,7 +10770,7 @@
|
|
|
10753
10770
|
"immutable": true,
|
|
10754
10771
|
"locationInModule": {
|
|
10755
10772
|
"filename": "src/providers/common.ts",
|
|
10756
|
-
"line":
|
|
10773
|
+
"line": 262
|
|
10757
10774
|
},
|
|
10758
10775
|
"name": "backoffRate",
|
|
10759
10776
|
"optional": true,
|
|
@@ -10772,7 +10789,7 @@
|
|
|
10772
10789
|
"immutable": true,
|
|
10773
10790
|
"locationInModule": {
|
|
10774
10791
|
"filename": "src/providers/common.ts",
|
|
10775
|
-
"line":
|
|
10792
|
+
"line": 248
|
|
10776
10793
|
},
|
|
10777
10794
|
"name": "interval",
|
|
10778
10795
|
"optional": true,
|
|
@@ -10790,7 +10807,7 @@
|
|
|
10790
10807
|
"immutable": true,
|
|
10791
10808
|
"locationInModule": {
|
|
10792
10809
|
"filename": "src/providers/common.ts",
|
|
10793
|
-
"line":
|
|
10810
|
+
"line": 255
|
|
10794
10811
|
},
|
|
10795
10812
|
"name": "maxAttempts",
|
|
10796
10813
|
"optional": true,
|
|
@@ -10809,7 +10826,7 @@
|
|
|
10809
10826
|
"immutable": true,
|
|
10810
10827
|
"locationInModule": {
|
|
10811
10828
|
"filename": "src/providers/common.ts",
|
|
10812
|
-
"line":
|
|
10829
|
+
"line": 241
|
|
10813
10830
|
},
|
|
10814
10831
|
"name": "retry",
|
|
10815
10832
|
"optional": true,
|
|
@@ -10831,7 +10848,7 @@
|
|
|
10831
10848
|
"kind": "interface",
|
|
10832
10849
|
"locationInModule": {
|
|
10833
10850
|
"filename": "src/providers/common.ts",
|
|
10834
|
-
"line":
|
|
10851
|
+
"line": 203
|
|
10835
10852
|
},
|
|
10836
10853
|
"name": "RunnerAmi",
|
|
10837
10854
|
"properties": [
|
|
@@ -10844,7 +10861,7 @@
|
|
|
10844
10861
|
"immutable": true,
|
|
10845
10862
|
"locationInModule": {
|
|
10846
10863
|
"filename": "src/providers/common.ts",
|
|
10847
|
-
"line":
|
|
10864
|
+
"line": 212
|
|
10848
10865
|
},
|
|
10849
10866
|
"name": "architecture",
|
|
10850
10867
|
"type": {
|
|
@@ -10860,7 +10877,7 @@
|
|
|
10860
10877
|
"immutable": true,
|
|
10861
10878
|
"locationInModule": {
|
|
10862
10879
|
"filename": "src/providers/common.ts",
|
|
10863
|
-
"line":
|
|
10880
|
+
"line": 207
|
|
10864
10881
|
},
|
|
10865
10882
|
"name": "launchTemplate",
|
|
10866
10883
|
"type": {
|
|
@@ -10876,7 +10893,7 @@
|
|
|
10876
10893
|
"immutable": true,
|
|
10877
10894
|
"locationInModule": {
|
|
10878
10895
|
"filename": "src/providers/common.ts",
|
|
10879
|
-
"line":
|
|
10896
|
+
"line": 217
|
|
10880
10897
|
},
|
|
10881
10898
|
"name": "os",
|
|
10882
10899
|
"type": {
|
|
@@ -10893,7 +10910,7 @@
|
|
|
10893
10910
|
"immutable": true,
|
|
10894
10911
|
"locationInModule": {
|
|
10895
10912
|
"filename": "src/providers/common.ts",
|
|
10896
|
-
"line":
|
|
10913
|
+
"line": 229
|
|
10897
10914
|
},
|
|
10898
10915
|
"name": "runnerVersion",
|
|
10899
10916
|
"type": {
|
|
@@ -10909,7 +10926,7 @@
|
|
|
10909
10926
|
"immutable": true,
|
|
10910
10927
|
"locationInModule": {
|
|
10911
10928
|
"filename": "src/providers/common.ts",
|
|
10912
|
-
"line":
|
|
10929
|
+
"line": 222
|
|
10913
10930
|
},
|
|
10914
10931
|
"name": "logGroup",
|
|
10915
10932
|
"optional": true,
|
|
@@ -11507,7 +11524,7 @@
|
|
|
11507
11524
|
{
|
|
11508
11525
|
"abstract": true,
|
|
11509
11526
|
"docs": {
|
|
11510
|
-
"default": "OS.
|
|
11527
|
+
"default": "OS.LINUX_UBUNTU",
|
|
11511
11528
|
"stability": "experimental",
|
|
11512
11529
|
"summary": "Image OS."
|
|
11513
11530
|
},
|
|
@@ -12178,7 +12195,7 @@
|
|
|
12178
12195
|
"kind": "interface",
|
|
12179
12196
|
"locationInModule": {
|
|
12180
12197
|
"filename": "src/providers/common.ts",
|
|
12181
|
-
"line":
|
|
12198
|
+
"line": 268
|
|
12182
12199
|
},
|
|
12183
12200
|
"name": "RunnerProviderProps",
|
|
12184
12201
|
"properties": [
|
|
@@ -12193,7 +12210,7 @@
|
|
|
12193
12210
|
"immutable": true,
|
|
12194
12211
|
"locationInModule": {
|
|
12195
12212
|
"filename": "src/providers/common.ts",
|
|
12196
|
-
"line":
|
|
12213
|
+
"line": 276
|
|
12197
12214
|
},
|
|
12198
12215
|
"name": "logRetention",
|
|
12199
12216
|
"optional": true,
|
|
@@ -12211,7 +12228,7 @@
|
|
|
12211
12228
|
"immutable": true,
|
|
12212
12229
|
"locationInModule": {
|
|
12213
12230
|
"filename": "src/providers/common.ts",
|
|
12214
|
-
"line":
|
|
12231
|
+
"line": 283
|
|
12215
12232
|
},
|
|
12216
12233
|
"name": "retryOptions",
|
|
12217
12234
|
"optional": true,
|
|
@@ -12234,7 +12251,7 @@
|
|
|
12234
12251
|
"kind": "interface",
|
|
12235
12252
|
"locationInModule": {
|
|
12236
12253
|
"filename": "src/providers/common.ts",
|
|
12237
|
-
"line":
|
|
12254
|
+
"line": 295
|
|
12238
12255
|
},
|
|
12239
12256
|
"name": "RunnerRuntimeParameters",
|
|
12240
12257
|
"properties": [
|
|
@@ -12248,7 +12265,7 @@
|
|
|
12248
12265
|
"immutable": true,
|
|
12249
12266
|
"locationInModule": {
|
|
12250
12267
|
"filename": "src/providers/common.ts",
|
|
12251
|
-
"line":
|
|
12268
|
+
"line": 309
|
|
12252
12269
|
},
|
|
12253
12270
|
"name": "githubDomainPath",
|
|
12254
12271
|
"type": {
|
|
@@ -12264,7 +12281,7 @@
|
|
|
12264
12281
|
"immutable": true,
|
|
12265
12282
|
"locationInModule": {
|
|
12266
12283
|
"filename": "src/providers/common.ts",
|
|
12267
|
-
"line":
|
|
12284
|
+
"line": 314
|
|
12268
12285
|
},
|
|
12269
12286
|
"name": "ownerPath",
|
|
12270
12287
|
"type": {
|
|
@@ -12280,7 +12297,7 @@
|
|
|
12280
12297
|
"immutable": true,
|
|
12281
12298
|
"locationInModule": {
|
|
12282
12299
|
"filename": "src/providers/common.ts",
|
|
12283
|
-
"line":
|
|
12300
|
+
"line": 319
|
|
12284
12301
|
},
|
|
12285
12302
|
"name": "repoPath",
|
|
12286
12303
|
"type": {
|
|
@@ -12297,7 +12314,7 @@
|
|
|
12297
12314
|
"immutable": true,
|
|
12298
12315
|
"locationInModule": {
|
|
12299
12316
|
"filename": "src/providers/common.ts",
|
|
12300
|
-
"line":
|
|
12317
|
+
"line": 304
|
|
12301
12318
|
},
|
|
12302
12319
|
"name": "runnerNamePath",
|
|
12303
12320
|
"type": {
|
|
@@ -12313,7 +12330,7 @@
|
|
|
12313
12330
|
"immutable": true,
|
|
12314
12331
|
"locationInModule": {
|
|
12315
12332
|
"filename": "src/providers/common.ts",
|
|
12316
|
-
"line":
|
|
12333
|
+
"line": 299
|
|
12317
12334
|
},
|
|
12318
12335
|
"name": "runnerTokenPath",
|
|
12319
12336
|
"type": {
|
|
@@ -12577,7 +12594,7 @@
|
|
|
12577
12594
|
},
|
|
12578
12595
|
"locationInModule": {
|
|
12579
12596
|
"filename": "src/image-builders/static.ts",
|
|
12580
|
-
"line":
|
|
12597
|
+
"line": 49
|
|
12581
12598
|
},
|
|
12582
12599
|
"name": "fromDockerHub",
|
|
12583
12600
|
"parameters": [
|
|
@@ -12940,6 +12957,6 @@
|
|
|
12940
12957
|
"symbolId": "src/image-builders/aws-image-builder/deprecated/windows-components:WindowsComponents"
|
|
12941
12958
|
}
|
|
12942
12959
|
},
|
|
12943
|
-
"version": "0.9.
|
|
12944
|
-
"fingerprint": "
|
|
12960
|
+
"version": "0.9.7",
|
|
12961
|
+
"fingerprint": "WvNV3e021YDh9bxgjpR92gFXUW/VDrTfwOfAn6GsGO8="
|
|
12945
12962
|
}
|