@nikovirtala/cdk-codebuild-hosted-github-actions-runner 1.0.337 → 1.0.339
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +2 -2
- package/.kiro/steering/product.md +14 -0
- package/.kiro/steering/structure.md +67 -0
- package/.kiro/steering/tech.md +71 -0
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -4264,6 +4264,6 @@
|
|
|
4264
4264
|
"symbolId": "src/index:CodebuildHostedGitHubActionsRunnerProps"
|
|
4265
4265
|
}
|
|
4266
4266
|
},
|
|
4267
|
-
"version": "1.0.
|
|
4268
|
-
"fingerprint": "
|
|
4267
|
+
"version": "1.0.339",
|
|
4268
|
+
"fingerprint": "zVpqnhdk0MYe1HQ5Tz3YNFulyleqm8oKkM9PJqthYrE="
|
|
4269
4269
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Product Overview
|
|
2
|
+
|
|
3
|
+
This is an AWS CDK construct library that creates CodeBuild projects for running GitHub Actions workflows. It enables users to leverage AWS infrastructure as self-hosted runners for GitHub Actions, providing a scalable and cost-effective CI/CD solution.
|
|
4
|
+
|
|
5
|
+
## Key Features
|
|
6
|
+
|
|
7
|
+
- Creates AWS CodeBuild projects configured as GitHub Actions runners
|
|
8
|
+
- Supports both public and private GitHub repositories via Secrets Manager integration
|
|
9
|
+
- Webhook-based triggering on GitHub workflow job events
|
|
10
|
+
- Published as a public npm package: `@nikovirtala/cdk-codebuild-hosted-github-actions-runner`
|
|
11
|
+
|
|
12
|
+
## Target Users
|
|
13
|
+
|
|
14
|
+
Developers and DevOps engineers using AWS CDK who want to run GitHub Actions workflows on AWS infrastructure instead of GitHub-hosted runners.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Project Structure
|
|
2
|
+
|
|
3
|
+
## Directory Layout
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
.
|
|
7
|
+
├── src/ # Source code
|
|
8
|
+
│ └── index.ts # Main construct implementation
|
|
9
|
+
├── .projen/ # Projen metadata (generated)
|
|
10
|
+
├── .github/ # GitHub workflows and configuration
|
|
11
|
+
├── .kiro/ # Kiro AI assistant configuration
|
|
12
|
+
│ └── steering/ # AI steering documents
|
|
13
|
+
├── .vscode/ # VS Code settings
|
|
14
|
+
├── .projenrc.ts # Projen configuration (source of truth)
|
|
15
|
+
├── package.json # Package metadata (generated)
|
|
16
|
+
├── biome.jsonc # Biome configuration (generated)
|
|
17
|
+
├── tsconfig.dev.json # TypeScript configuration (generated)
|
|
18
|
+
├── API.md # API documentation (generated)
|
|
19
|
+
└── README.md # Project documentation
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Source Organization
|
|
23
|
+
|
|
24
|
+
### `src/index.ts`
|
|
25
|
+
|
|
26
|
+
The main entry point containing:
|
|
27
|
+
|
|
28
|
+
- **Interface**: `CodebuildHostedGitHubActionsRunnerProps` - Configuration properties for the construct
|
|
29
|
+
- **Class**: `CodebuildHostedGitHubActionsRunner` - The main CDK construct
|
|
30
|
+
|
|
31
|
+
## Architecture Patterns
|
|
32
|
+
|
|
33
|
+
### CDK Construct Pattern
|
|
34
|
+
|
|
35
|
+
- Extends `Construct` from the `constructs` library
|
|
36
|
+
- Accepts props interface for configuration
|
|
37
|
+
- Exposes public readonly properties (e.g., `project`)
|
|
38
|
+
- Uses composition to create AWS resources
|
|
39
|
+
|
|
40
|
+
### Resource Naming
|
|
41
|
+
|
|
42
|
+
- Default project names follow pattern: `${repositoryOwner}-${repositoryName}`
|
|
43
|
+
- Allow optional override via `codeBuildProjectName` prop
|
|
44
|
+
|
|
45
|
+
### Conditional Resource Creation
|
|
46
|
+
|
|
47
|
+
- GitHub source credentials are only created when `tokenSecretArn` is provided
|
|
48
|
+
- Supports both public and private repository scenarios
|
|
49
|
+
|
|
50
|
+
## Generated Files
|
|
51
|
+
|
|
52
|
+
**DO NOT manually edit these files** - they are managed by Projen:
|
|
53
|
+
|
|
54
|
+
- `package.json`
|
|
55
|
+
- `tsconfig.dev.json`
|
|
56
|
+
- `biome.jsonc`
|
|
57
|
+
- `.projen/**`
|
|
58
|
+
- `.github/workflows/**`
|
|
59
|
+
- API.md
|
|
60
|
+
|
|
61
|
+
To modify these, edit `.projenrc.ts` and run `npx projen`.
|
|
62
|
+
|
|
63
|
+
## Import Conventions
|
|
64
|
+
|
|
65
|
+
- Use named imports from `aws-cdk-lib` submodules (e.g., `aws_codebuild`, `aws_secretsmanager`)
|
|
66
|
+
- Import `Construct` from `constructs` package
|
|
67
|
+
- Keep imports organized and minimal
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Technology Stack
|
|
2
|
+
|
|
3
|
+
## Build System
|
|
4
|
+
|
|
5
|
+
This project uses **Projen** for project configuration and build management. All configuration is defined in `.projenrc.ts`.
|
|
6
|
+
|
|
7
|
+
- **DO NOT** manually edit generated files (marked with "Generated by projen" comments)
|
|
8
|
+
- To modify configuration, edit `.projenrc.ts` and run `npx projen`
|
|
9
|
+
|
|
10
|
+
## Core Technologies
|
|
11
|
+
|
|
12
|
+
- **Language**: TypeScript 5.9.3
|
|
13
|
+
- **Package Manager**: pnpm (version 10)
|
|
14
|
+
- **CDK Version**: AWS CDK 2.221.1
|
|
15
|
+
- **JSII**: ~5.9.3 (for multi-language package generation)
|
|
16
|
+
- **Code Quality**: Biome (formatting and linting)
|
|
17
|
+
|
|
18
|
+
## Key Dependencies
|
|
19
|
+
|
|
20
|
+
- `aws-cdk-lib`: AWS CDK core library
|
|
21
|
+
- `constructs`: CDK constructs base library
|
|
22
|
+
|
|
23
|
+
## Code Style
|
|
24
|
+
|
|
25
|
+
### Formatting (Biome)
|
|
26
|
+
|
|
27
|
+
- **Indent**: 4 spaces
|
|
28
|
+
- **Line Width**: 120 characters
|
|
29
|
+
- **Quote Style**: Double quotes
|
|
30
|
+
- **Format on Save**: Enabled in VS Code
|
|
31
|
+
|
|
32
|
+
### Linting
|
|
33
|
+
|
|
34
|
+
- Biome linter with recommended rules enabled
|
|
35
|
+
- No ESLint (explicitly disabled)
|
|
36
|
+
- No Prettier (explicitly disabled)
|
|
37
|
+
|
|
38
|
+
## Common Commands
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Build the project
|
|
42
|
+
npm run build
|
|
43
|
+
|
|
44
|
+
# Compile TypeScript
|
|
45
|
+
npm run compile
|
|
46
|
+
|
|
47
|
+
# Run Biome formatter and linter
|
|
48
|
+
npm run biome
|
|
49
|
+
|
|
50
|
+
# Generate API documentation
|
|
51
|
+
npm run docgen
|
|
52
|
+
|
|
53
|
+
# Run tests
|
|
54
|
+
npm run test
|
|
55
|
+
|
|
56
|
+
# Package for distribution
|
|
57
|
+
npm run package
|
|
58
|
+
|
|
59
|
+
# Update dependencies
|
|
60
|
+
npm run upgrade
|
|
61
|
+
|
|
62
|
+
# Regenerate projen configuration
|
|
63
|
+
npm run projen
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Development Workflow
|
|
67
|
+
|
|
68
|
+
1. Make changes to source files in `src/`
|
|
69
|
+
2. Run `npm run build` to compile and validate
|
|
70
|
+
3. Biome will automatically format and lint on save (if using VS Code)
|
|
71
|
+
4. For configuration changes, edit `.projenrc.ts` and run `npx projen`
|
package/lib/index.js
CHANGED
|
@@ -28,5 +28,5 @@ class CodebuildHostedGitHubActionsRunner extends constructs_1.Construct {
|
|
|
28
28
|
}
|
|
29
29
|
exports.CodebuildHostedGitHubActionsRunner = CodebuildHostedGitHubActionsRunner;
|
|
30
30
|
_a = JSII_RTTI_SYMBOL_1;
|
|
31
|
-
CodebuildHostedGitHubActionsRunner[_a] = { fqn: "@nikovirtala/cdk-codebuild-hosted-github-actions-runner.CodebuildHostedGitHubActionsRunner", version: "1.0.
|
|
31
|
+
CodebuildHostedGitHubActionsRunner[_a] = { fqn: "@nikovirtala/cdk-codebuild-hosted-github-actions-runner.CodebuildHostedGitHubActionsRunner", version: "1.0.339" };
|
|
32
32
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBZ0U7QUFDaEUsMkNBQXVDO0FBK0J2QyxNQUFhLGtDQUFtQyxTQUFRLHNCQUFTO0lBRzdELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEM7UUFDcEYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFeEYsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqQixNQUFNLE1BQU0sR0FBRyxnQ0FBa0IsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUVwRyxJQUFJLDJCQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFO2dCQUN2RSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7YUFDbEMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwyQkFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3RELFdBQVcsRUFBRSxvQkFBb0IsSUFBSSxHQUFHLGVBQWUsSUFBSSxjQUFjLEVBQUU7WUFDM0UsTUFBTSxFQUFFLDJCQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDaEMsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLElBQUksRUFBRSxjQUFjO2dCQUNwQixPQUFPLEVBQUUsSUFBSTtnQkFDYixjQUFjLEVBQUUsQ0FBQywyQkFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsMkJBQWEsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN2RyxDQUFDO1NBQ0wsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7QUF6QkwsZ0ZBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzX2NvZGVidWlsZCwgYXdzX3NlY3JldHNtYW5hZ2VyIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVidWlsZEhvc3RlZEdpdEh1YkFjdGlvbnNSdW5uZXJQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIENvZGVCdWlsZCBwcm9qZWN0LlxuICAgICAqIEBkZWZhdWx0IC0gQSBuYW1lIGlzIGdlbmVyYXRlZCBiYXNlZCBvbiB0aGUgcmVwb3NpdG9yeSBvd25lciBhbmQgbmFtZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb2RlQnVpbGRQcm9qZWN0TmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBvd25lciBvZiB0aGUgR2l0SHViIHJlcG9zaXRvcnkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVwb3NpdG9yeU93bmVyOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgR2l0SHViIHJlcG9zaXRvcnkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgY29udGFpbmluZyB0aGUgR2l0SHViIHRva2VuLlxuICAgICAqXG4gICAgICogTm90ZSEgQ29kZUJ1aWxkIG9ubHkgYWxsb3dzIGEgc2luZ2xlIGNyZWRlbnRpYWwgZm9yIEdpdEh1YlxuICAgICAqIHRvIGJlIHNhdmVkIGluIGEgZ2l2ZW4gQVdTIGFjY291bnQgaW4gYSBnaXZlbiByZWdpb24gLVxuICAgICAqIGFueSBhdHRlbXB0IHRvIGFkZCBtb3JlIHRoYW4gb25lIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBObyBHaXRIdWIgdG9rZW4gaXMgdXNlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB0b2tlblNlY3JldEFybj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENvZGVidWlsZEhvc3RlZEdpdEh1YkFjdGlvbnNSdW5uZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBhd3NfY29kZWJ1aWxkLklQcm9qZWN0O1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENvZGVidWlsZEhvc3RlZEdpdEh1YkFjdGlvbnNSdW5uZXJQcm9wcykge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIGNvbnN0IHsgY29kZUJ1aWxkUHJvamVjdE5hbWUsIHJlcG9zaXRvcnlPd25lciwgcmVwb3NpdG9yeU5hbWUsIHRva2VuU2VjcmV0QXJuIH0gPSBwcm9wcztcblxuICAgICAgICBpZiAodG9rZW5TZWNyZXRBcm4pIHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3JldCA9IGF3c19zZWNyZXRzbWFuYWdlci5TZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsIFwiR2l0SHViVG9rZW5cIiwgdG9rZW5TZWNyZXRBcm4pO1xuXG4gICAgICAgICAgICBuZXcgYXdzX2NvZGVidWlsZC5HaXRIdWJTb3VyY2VDcmVkZW50aWFscyh0aGlzLCBcIkdpdEh1YlNvdXJjZUNyZWRlbnRpYWxzXCIsIHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogc2VjcmV0LnNlY3JldFZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2plY3QgPSBuZXcgYXdzX2NvZGVidWlsZC5Qcm9qZWN0KHRoaXMsIFwiUHJvamVjdFwiLCB7XG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogY29kZUJ1aWxkUHJvamVjdE5hbWUgPz8gYCR7cmVwb3NpdG9yeU93bmVyfS0ke3JlcG9zaXRvcnlOYW1lfWAsXG4gICAgICAgICAgICBzb3VyY2U6IGF3c19jb2RlYnVpbGQuU291cmNlLmdpdEh1Yih7XG4gICAgICAgICAgICAgICAgb3duZXI6IHJlcG9zaXRvcnlPd25lcixcbiAgICAgICAgICAgICAgICByZXBvOiByZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICAgICAgICB3ZWJob29rOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdlYmhvb2tGaWx0ZXJzOiBbYXdzX2NvZGVidWlsZC5GaWx0ZXJHcm91cC5pbkV2ZW50T2YoYXdzX2NvZGVidWlsZC5FdmVudEFjdGlvbi5XT1JLRkxPV19KT0JfUVVFVUVEKV0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|