@cloudsnorkel/cdk-github-runners 0.14.0 → 0.14.1
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 +70 -70
- package/API.md +3 -3
- package/README.md +51 -6
- package/assets/image-builders/aws-image-builder/delete-resources.lambda/index.js +209 -0
- package/assets/image-builders/build-image.lambda/index.js +0 -24
- package/lib/access.js +1 -1
- package/lib/image-builders/api.js +1 -1
- package/lib/image-builders/aws-image-builder/ami.d.ts +8 -0
- package/lib/image-builders/aws-image-builder/ami.js +3 -1
- package/lib/image-builders/aws-image-builder/builder.d.ts +2 -0
- package/lib/image-builders/aws-image-builder/builder.js +108 -68
- package/lib/image-builders/aws-image-builder/common.js +1 -1
- package/lib/image-builders/aws-image-builder/container.d.ts +6 -0
- package/lib/image-builders/aws-image-builder/container.js +3 -1
- package/lib/image-builders/aws-image-builder/delete-resources-function.d.ts +13 -0
- package/lib/image-builders/aws-image-builder/delete-resources-function.js +23 -0
- package/lib/image-builders/aws-image-builder/delete-resources.lambda.d.ts +9 -0
- package/lib/image-builders/aws-image-builder/delete-resources.lambda.js +159 -0
- package/lib/image-builders/aws-image-builder/deprecated/ami.d.ts +2 -2
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +18 -37
- package/lib/image-builders/aws-image-builder/deprecated/container.js +13 -35
- 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/workflow.js +2 -1
- package/lib/image-builders/build-image.lambda.d.ts +1 -3
- package/lib/image-builders/build-image.lambda.js +1 -25
- package/lib/image-builders/codebuild-deprecated.js +3 -3
- package/lib/image-builders/codebuild.js +2 -2
- package/lib/image-builders/components.js +1 -1
- package/lib/image-builders/static.js +1 -1
- package/lib/providers/codebuild.js +2 -2
- package/lib/providers/common.js +3 -3
- package/lib/providers/ec2.js +2 -2
- package/lib/providers/ecs.js +1 -1
- package/lib/providers/fargate.js +2 -2
- package/lib/providers/lambda.js +2 -2
- package/lib/runner.js +1 -1
- package/lib/secrets.js +1 -1
- package/package.json +21 -21
- package/assets/image-builders/aws-image-builder/delete-ami.lambda/index.js +0 -129
- package/lib/image-builders/aws-image-builder/delete-ami-function.d.ts +0 -13
- package/lib/image-builders/aws-image-builder/delete-ami-function.js +0 -23
- package/lib/image-builders/aws-image-builder/delete-ami.lambda.d.ts +0 -2
- package/lib/image-builders/aws-image-builder/delete-ami.lambda.js +0 -70
package/API.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
An AMI builder that uses AWS Image Builder to build AMIs pre-baked with all the GitHub Actions runner requirements.
|
|
10
10
|
|
|
11
|
-
Builders can be used with {@link
|
|
11
|
+
Builders can be used with {@link Ec2RunnerProvider }.
|
|
12
12
|
|
|
13
13
|
Each builder re-runs automatically at a set interval to make sure the AMIs contain the latest versions of everything.
|
|
14
14
|
|
|
@@ -197,7 +197,7 @@ Any object.
|
|
|
197
197
|
|
|
198
198
|
##### ~~`node`~~<sup>Required</sup> <a name="node" id="@cloudsnorkel/cdk-github-runners.AmiBuilder.property.node"></a>
|
|
199
199
|
|
|
200
|
-
- *Deprecated:* use RunnerImageBuilder
|
|
200
|
+
- *Deprecated:* use RunnerImageBuilder, e.g. with Ec2RunnerProvider.imageBuilder()
|
|
201
201
|
|
|
202
202
|
```typescript
|
|
203
203
|
public readonly node: Node;
|
|
@@ -211,7 +211,7 @@ The tree node.
|
|
|
211
211
|
|
|
212
212
|
##### ~~`connections`~~<sup>Required</sup> <a name="connections" id="@cloudsnorkel/cdk-github-runners.AmiBuilder.property.connections"></a>
|
|
213
213
|
|
|
214
|
-
- *Deprecated:* use RunnerImageBuilder
|
|
214
|
+
- *Deprecated:* use RunnerImageBuilder, e.g. with Ec2RunnerProvider.imageBuilder()
|
|
215
215
|
|
|
216
216
|
```typescript
|
|
217
217
|
public readonly connections: Connections;
|
package/README.md
CHANGED
|
@@ -65,9 +65,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
65
65
|
```
|
|
66
66
|
### Use
|
|
67
67
|
```python
|
|
68
|
+
from aws_cdk import App, Stack
|
|
68
69
|
from cloudsnorkel.cdk_github_runners import GitHubRunners
|
|
69
70
|
|
|
70
|
-
|
|
71
|
+
app = App()
|
|
72
|
+
stack = Stack(app, "github-runners")
|
|
73
|
+
GitHubRunners(stack, "runners")
|
|
74
|
+
|
|
75
|
+
app.synth()
|
|
71
76
|
```
|
|
72
77
|
</details>
|
|
73
78
|
<details><summary>TypeScript or JavaScript</summary>
|
|
@@ -79,9 +84,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
79
84
|
```
|
|
80
85
|
### Use
|
|
81
86
|
```typescript
|
|
87
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
82
88
|
import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';
|
|
83
89
|
|
|
84
|
-
new
|
|
90
|
+
const app = new App();
|
|
91
|
+
const stack = new Stack(app, 'github-runners');
|
|
92
|
+
new GitHubRunners(stack, 'runners');
|
|
93
|
+
|
|
94
|
+
app.synth();
|
|
85
95
|
```
|
|
86
96
|
</details>
|
|
87
97
|
<details><summary>Java</summary>
|
|
@@ -96,9 +106,19 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
96
106
|
```
|
|
97
107
|
### Use
|
|
98
108
|
```java
|
|
109
|
+
import software.amazon.awscdk.App;
|
|
110
|
+
import software.amazon.awscdk.Stack;
|
|
99
111
|
import com.cloudsnorkel.cdk.github.runners.GitHubRunners;
|
|
100
112
|
|
|
101
|
-
|
|
113
|
+
public class Example {
|
|
114
|
+
public static void main(String[] args){
|
|
115
|
+
App app = new App();
|
|
116
|
+
Stack stack = new Stack(app, "github-runners");
|
|
117
|
+
GitHubRunners.Builder.create(stack, "runners").build();
|
|
118
|
+
|
|
119
|
+
app.synth();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
102
122
|
```
|
|
103
123
|
</details>
|
|
104
124
|
<details><summary>Go</summary>
|
|
@@ -110,9 +130,21 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
110
130
|
```
|
|
111
131
|
### Use
|
|
112
132
|
```go
|
|
113
|
-
|
|
133
|
+
package main
|
|
134
|
+
|
|
135
|
+
import (
|
|
136
|
+
"github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
|
|
137
|
+
"github.com/aws/aws-cdk-go/awscdk/v2"
|
|
138
|
+
"github.com/aws/jsii-runtime-go"
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
func main() {
|
|
142
|
+
app := awscdk.NewApp(nil)
|
|
143
|
+
stack := awscdk.NewStack(app, jsii.String("github-runners"), &awscdk.StackProps{})
|
|
144
|
+
cloudsnorkelcdkgithubrunners.NewGitHubRunners(stack, jsii.String("runners"), &cloudsnorkelcdkgithubrunners.GitHubRunnersProps{})
|
|
114
145
|
|
|
115
|
-
|
|
146
|
+
app.Synth(nil)
|
|
147
|
+
}
|
|
116
148
|
```
|
|
117
149
|
</details>
|
|
118
150
|
<details><summary>.NET</summary>
|
|
@@ -124,9 +156,22 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
124
156
|
```
|
|
125
157
|
### Use
|
|
126
158
|
```csharp
|
|
159
|
+
using Amazon.CDK;
|
|
127
160
|
using CloudSnorkel;
|
|
128
161
|
|
|
129
|
-
|
|
162
|
+
namespace Example
|
|
163
|
+
{
|
|
164
|
+
sealed class Program
|
|
165
|
+
{
|
|
166
|
+
public static void Main(string[] args)
|
|
167
|
+
{
|
|
168
|
+
var app = new App();
|
|
169
|
+
var stack = new Stack(app, "github-runners");
|
|
170
|
+
new GitHubRunners(stack, "runners");
|
|
171
|
+
app.Synth();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
130
175
|
```
|
|
131
176
|
</details>
|
|
132
177
|
2. Use `GitHubRunners` construct in your code (starting with default arguments is fine)
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/image-builders/aws-image-builder/delete-resources.lambda.ts
|
|
21
|
+
var delete_resources_lambda_exports = {};
|
|
22
|
+
__export(delete_resources_lambda_exports, {
|
|
23
|
+
handler: () => handler
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(delete_resources_lambda_exports);
|
|
26
|
+
var import_client_ec2 = require("@aws-sdk/client-ec2");
|
|
27
|
+
var import_client_ecr = require("@aws-sdk/client-ecr");
|
|
28
|
+
var import_client_imagebuilder = require("@aws-sdk/client-imagebuilder");
|
|
29
|
+
|
|
30
|
+
// src/lambda-helpers.ts
|
|
31
|
+
var import_client_secrets_manager = require("@aws-sdk/client-secrets-manager");
|
|
32
|
+
var sm = new import_client_secrets_manager.SecretsManagerClient();
|
|
33
|
+
async function customResourceRespond(event, responseStatus, reason, physicalResourceId, data) {
|
|
34
|
+
const responseBody = JSON.stringify({
|
|
35
|
+
Status: responseStatus,
|
|
36
|
+
Reason: reason,
|
|
37
|
+
PhysicalResourceId: physicalResourceId,
|
|
38
|
+
StackId: event.StackId,
|
|
39
|
+
RequestId: event.RequestId,
|
|
40
|
+
LogicalResourceId: event.LogicalResourceId,
|
|
41
|
+
NoEcho: false,
|
|
42
|
+
Data: data
|
|
43
|
+
});
|
|
44
|
+
console.log("Responding", responseBody);
|
|
45
|
+
const parsedUrl = require("url").parse(event.ResponseURL);
|
|
46
|
+
const requestOptions = {
|
|
47
|
+
hostname: parsedUrl.hostname,
|
|
48
|
+
path: parsedUrl.path,
|
|
49
|
+
method: "PUT",
|
|
50
|
+
headers: {
|
|
51
|
+
"content-type": "",
|
|
52
|
+
"content-length": responseBody.length
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
try {
|
|
57
|
+
const request = require("https").request(requestOptions, resolve);
|
|
58
|
+
request.on("error", reject);
|
|
59
|
+
request.write(responseBody);
|
|
60
|
+
request.end();
|
|
61
|
+
} catch (e) {
|
|
62
|
+
reject(e);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// src/image-builders/aws-image-builder/delete-resources.lambda.ts
|
|
68
|
+
var ec2 = new import_client_ec2.EC2Client();
|
|
69
|
+
var ecr = new import_client_ecr.ECRClient();
|
|
70
|
+
var ib = new import_client_imagebuilder.ImagebuilderClient();
|
|
71
|
+
async function deleteResources(props) {
|
|
72
|
+
const buildsToDelete = [];
|
|
73
|
+
const amisToDelete = [];
|
|
74
|
+
const dockerImagesToDelete = [];
|
|
75
|
+
let result = {};
|
|
76
|
+
do {
|
|
77
|
+
result = await ib.send(new import_client_imagebuilder.ListImageBuildVersionsCommand({
|
|
78
|
+
imageVersionArn: props.ImageVersionArn,
|
|
79
|
+
nextToken: result.nextToken
|
|
80
|
+
}));
|
|
81
|
+
if (result.imageSummaryList) {
|
|
82
|
+
for (const image of result.imageSummaryList) {
|
|
83
|
+
if (image.arn) {
|
|
84
|
+
buildsToDelete.push(image.arn);
|
|
85
|
+
}
|
|
86
|
+
for (const output of image.outputResources?.amis ?? []) {
|
|
87
|
+
if (output.image) {
|
|
88
|
+
amisToDelete.push(output.image);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
for (const output of image.outputResources?.containers ?? []) {
|
|
92
|
+
if (output.imageUris) {
|
|
93
|
+
dockerImagesToDelete.push(...output.imageUris);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
} while (result.nextToken);
|
|
99
|
+
for (const imageId of amisToDelete) {
|
|
100
|
+
try {
|
|
101
|
+
console.log({
|
|
102
|
+
notice: "Deleting AMI",
|
|
103
|
+
image: imageId
|
|
104
|
+
});
|
|
105
|
+
const imageDesc = await ec2.send(new import_client_ec2.DescribeImagesCommand({
|
|
106
|
+
Owners: ["self"],
|
|
107
|
+
ImageIds: [imageId]
|
|
108
|
+
}));
|
|
109
|
+
if (imageDesc.Images?.length !== 1) {
|
|
110
|
+
console.warn({
|
|
111
|
+
notice: "Unable to find AMI",
|
|
112
|
+
image: imageId
|
|
113
|
+
});
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
await ec2.send(new import_client_ec2.DeregisterImageCommand({
|
|
117
|
+
ImageId: imageId
|
|
118
|
+
}));
|
|
119
|
+
for (const blockMapping of imageDesc.Images[0].BlockDeviceMappings ?? []) {
|
|
120
|
+
if (blockMapping.Ebs?.SnapshotId) {
|
|
121
|
+
console.log({
|
|
122
|
+
notice: "Deleting EBS snapshot",
|
|
123
|
+
image: imageId,
|
|
124
|
+
snapshot: blockMapping.Ebs.SnapshotId
|
|
125
|
+
});
|
|
126
|
+
await ec2.send(new import_client_ec2.DeleteSnapshotCommand({
|
|
127
|
+
SnapshotId: blockMapping.Ebs.SnapshotId
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
} catch (e) {
|
|
132
|
+
console.warn({
|
|
133
|
+
notice: "Failed to delete AMI",
|
|
134
|
+
image: imageId,
|
|
135
|
+
error: e
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
for (const image of dockerImagesToDelete) {
|
|
140
|
+
try {
|
|
141
|
+
console.log({
|
|
142
|
+
notice: "Deleting Docker Image",
|
|
143
|
+
image
|
|
144
|
+
});
|
|
145
|
+
const parts = image.split("/")[1].split(":");
|
|
146
|
+
const repo = parts[0];
|
|
147
|
+
const tag = parts[1];
|
|
148
|
+
await ecr.send(new import_client_ecr.BatchDeleteImageCommand({
|
|
149
|
+
repositoryName: repo,
|
|
150
|
+
imageIds: [
|
|
151
|
+
{
|
|
152
|
+
imageTag: tag
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
}));
|
|
156
|
+
} catch (e) {
|
|
157
|
+
console.warn({
|
|
158
|
+
notice: "Failed to delete docker image",
|
|
159
|
+
image,
|
|
160
|
+
error: e
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
for (const build of buildsToDelete) {
|
|
165
|
+
try {
|
|
166
|
+
console.log({
|
|
167
|
+
notice: "Deleting Image Build",
|
|
168
|
+
build
|
|
169
|
+
});
|
|
170
|
+
await ib.send(new import_client_imagebuilder.DeleteImageCommand({
|
|
171
|
+
imageBuildVersionArn: build
|
|
172
|
+
}));
|
|
173
|
+
} catch (e) {
|
|
174
|
+
console.warn({
|
|
175
|
+
notice: "Failed to delete image version build",
|
|
176
|
+
build,
|
|
177
|
+
error: e
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async function handler(event, _context) {
|
|
183
|
+
try {
|
|
184
|
+
console.log({
|
|
185
|
+
...event,
|
|
186
|
+
ResponseURL: "..."
|
|
187
|
+
});
|
|
188
|
+
const props = event.ResourceProperties;
|
|
189
|
+
switch (event.RequestType) {
|
|
190
|
+
case "Create":
|
|
191
|
+
case "Update":
|
|
192
|
+
await customResourceRespond(event, "SUCCESS", "OK", props.ImageVersionArn, {});
|
|
193
|
+
break;
|
|
194
|
+
case "Delete":
|
|
195
|
+
if (event.PhysicalResourceId != "FAIL") {
|
|
196
|
+
await deleteResources(props);
|
|
197
|
+
}
|
|
198
|
+
await customResourceRespond(event, "SUCCESS", "OK", event.PhysicalResourceId, {});
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
} catch (e) {
|
|
202
|
+
console.error(e);
|
|
203
|
+
await customResourceRespond(event, "FAILED", e.message || "Internal Error", "FAIL", {});
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
207
|
+
0 && (module.exports = {
|
|
208
|
+
handler
|
|
209
|
+
});
|
|
@@ -24,7 +24,6 @@ __export(build_image_lambda_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(build_image_lambda_exports);
|
|
26
26
|
var import_client_codebuild = require("@aws-sdk/client-codebuild");
|
|
27
|
-
var import_client_imagebuilder = require("@aws-sdk/client-imagebuilder");
|
|
28
27
|
|
|
29
28
|
// src/lambda-helpers.ts
|
|
30
29
|
var import_client_secrets_manager = require("@aws-sdk/client-secrets-manager");
|
|
@@ -65,7 +64,6 @@ async function customResourceRespond(event, responseStatus, reason, physicalReso
|
|
|
65
64
|
|
|
66
65
|
// src/image-builders/build-image.lambda.ts
|
|
67
66
|
var codebuild = new import_client_codebuild.CodeBuildClient();
|
|
68
|
-
var ib = new import_client_imagebuilder.ImagebuilderClient();
|
|
69
67
|
async function handler(event, context) {
|
|
70
68
|
try {
|
|
71
69
|
console.log({ ...event, ResponseURL: "..." });
|
|
@@ -73,10 +71,6 @@ async function handler(event, context) {
|
|
|
73
71
|
switch (event.RequestType) {
|
|
74
72
|
case "Create":
|
|
75
73
|
case "Update":
|
|
76
|
-
if (props.DeleteOnly) {
|
|
77
|
-
await customResourceRespond(event, "SUCCESS", "OK", "Deleter", {});
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
74
|
console.log(`Starting CodeBuild project ${props.ProjectName}`);
|
|
81
75
|
const cbRes = await codebuild.send(new import_client_codebuild.StartBuildCommand({
|
|
82
76
|
projectName: props.ProjectName,
|
|
@@ -91,24 +85,6 @@ async function handler(event, context) {
|
|
|
91
85
|
await customResourceRespond(event, "SUCCESS", "OK", cbRes.build?.id ?? "build", {});
|
|
92
86
|
break;
|
|
93
87
|
case "Delete":
|
|
94
|
-
if (props.ImageBuilderName) {
|
|
95
|
-
const ibImages = await ib.send(new import_client_imagebuilder.ListImagesCommand({ filters: [{ name: "name", values: [props.ImageBuilderName] }] }));
|
|
96
|
-
if (ibImages.imageVersionList) {
|
|
97
|
-
for (const v of ibImages.imageVersionList) {
|
|
98
|
-
if (v.arn) {
|
|
99
|
-
const ibImageVersions = await ib.send(new import_client_imagebuilder.ListImageBuildVersionsCommand({ imageVersionArn: v.arn }));
|
|
100
|
-
if (ibImageVersions.imageSummaryList) {
|
|
101
|
-
for (const vs of ibImageVersions.imageSummaryList) {
|
|
102
|
-
if (vs.arn) {
|
|
103
|
-
console.log(`Deleting ${vs.arn}`);
|
|
104
|
-
await ib.send(new import_client_imagebuilder.DeleteImageCommand({ imageBuildVersionArn: vs.arn }));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
88
|
await customResourceRespond(event, "SUCCESS", "OK", event.PhysicalResourceId, {});
|
|
113
89
|
break;
|
|
114
90
|
}
|
package/lib/access.js
CHANGED
|
@@ -59,7 +59,7 @@ class LambdaAccess {
|
|
|
59
59
|
}
|
|
60
60
|
exports.LambdaAccess = LambdaAccess;
|
|
61
61
|
_a = JSII_RTTI_SYMBOL_1;
|
|
62
|
-
LambdaAccess[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.LambdaAccess", version: "0.14.
|
|
62
|
+
LambdaAccess[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.LambdaAccess", version: "0.14.1" };
|
|
63
63
|
/**
|
|
64
64
|
* @internal
|
|
65
65
|
*/
|
|
@@ -43,5 +43,5 @@ class RunnerImageBuilder extends common_1.RunnerImageBuilderBase {
|
|
|
43
43
|
}
|
|
44
44
|
exports.RunnerImageBuilder = RunnerImageBuilder;
|
|
45
45
|
_a = JSII_RTTI_SYMBOL_1;
|
|
46
|
-
RunnerImageBuilder[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.RunnerImageBuilder", version: "0.14.
|
|
46
|
+
RunnerImageBuilder[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.RunnerImageBuilder", version: "0.14.1" };
|
|
47
47
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltYWdlLWJ1aWxkZXJzL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwQztBQUUxQywyREFBd0U7QUFDeEUsMkNBQTBEO0FBQzFELHFDQUFvSTtBQUNwSSw0Q0FBa0M7QUFFbEM7Ozs7OztHQU1HO0FBQ0gsTUFBc0Isa0JBQW1CLFNBQVEsK0JBQXNCO0lBQ3JFOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN0RSxJQUFJLEtBQUssRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLHlCQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxrSEFBa0gsQ0FBQyxDQUFDO1FBQ3ZKLENBQUM7UUFFRCxJQUFJLEtBQUssRUFBRSxXQUFXLEtBQUssK0JBQXNCLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0QsT0FBTyxJQUFJLHVDQUEyQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFdBQVcsS0FBSywrQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNFLE9BQU8sSUFBSSxxREFBaUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLGNBQUUsQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxJQUFJLHVDQUEyQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUkscURBQWlDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7SUFDSCxDQUFDOztBQXZCSCxnREF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbm5vdGF0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXdzSW1hZ2VCdWlsZGVyUnVubmVySW1hZ2VCdWlsZGVyIH0gZnJvbSAnLi9hd3MtaW1hZ2UtYnVpbGRlcic7XG5pbXBvcnQgeyBDb2RlQnVpbGRSdW5uZXJJbWFnZUJ1aWxkZXIgfSBmcm9tICcuL2NvZGVidWlsZCc7XG5pbXBvcnQgeyBJQ29uZmlndXJhYmxlUnVubmVySW1hZ2VCdWlsZGVyLCBSdW5uZXJJbWFnZUJ1aWxkZXJCYXNlLCBSdW5uZXJJbWFnZUJ1aWxkZXJQcm9wcywgUnVubmVySW1hZ2VCdWlsZGVyVHlwZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IE9zIH0gZnJvbSAnLi4vcHJvdmlkZXJzJztcblxuLyoqXG4gKiBHaXRIdWIgUnVubmVyIGltYWdlIGJ1aWxkZXIuIEJ1aWxkcyBhIERvY2tlciBpbWFnZSBvciBBTUkgd2l0aCBHaXRIdWIgUnVubmVyIGFuZCBvdGhlciByZXF1aXJlbWVudHMgaW5zdGFsbGVkLlxuICpcbiAqIEltYWdlcyBjYW4gYmUgY3VzdG9taXplZCBiZWZvcmUgcGFzc2VkIGludG8gdGhlIHByb3ZpZGVyIGJ5IGFkZGluZyBvciByZW1vdmluZyBjb21wb25lbnRzIHRvIGJlIGluc3RhbGxlZC5cbiAqXG4gKiBJbWFnZXMgYXJlIHJlYnVpbHQgZXZlcnkgd2VlayBieSBkZWZhdWx0IHRvIGVuc3VyZSB0aGF0IHRoZSBsYXRlc3Qgc2VjdXJpdHkgcGF0Y2hlcyBhcmUgYXBwbGllZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJ1bm5lckltYWdlQnVpbGRlciBleHRlbmRzIFJ1bm5lckltYWdlQnVpbGRlckJhc2Uge1xuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGltYWdlIGJ1aWxkZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHByb3BlcnRpZXMuIFRoZSBpbXBsZW1lbnRhdGlvbiB3aWxsIGRpZmZlciBiYXNlZCBvbiB0aGUgT1MsIGFyY2hpdGVjdHVyZSwgYW5kIHJlcXVlc3RlZCBidWlsZGVyIHR5cGUuXG4gICAqL1xuICBzdGF0aWMgbmV3KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogUnVubmVySW1hZ2VCdWlsZGVyUHJvcHMpOiBJQ29uZmlndXJhYmxlUnVubmVySW1hZ2VCdWlsZGVyIHtcbiAgICBpZiAocHJvcHM/LmNvbXBvbmVudHMgJiYgcHJvcHMucnVubmVyVmVyc2lvbikge1xuICAgICAgQW5ub3RhdGlvbnMub2Yoc2NvcGUpLmFkZFdhcm5pbmcoJ3J1bm5lclZlcnNpb24gaXMgaWdub3JlZCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4gVGhlIHJ1bm5lciB2ZXJzaW9uIHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgY29tcG9uZW50cy4nKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHM/LmJ1aWxkZXJUeXBlID09PSBSdW5uZXJJbWFnZUJ1aWxkZXJUeXBlLkNPREVfQlVJTEQpIHtcbiAgICAgIHJldHVybiBuZXcgQ29kZUJ1aWxkUnVubmVySW1hZ2VCdWlsZGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIH0gZWxzZSBpZiAocHJvcHM/LmJ1aWxkZXJUeXBlID09PSBSdW5uZXJJbWFnZUJ1aWxkZXJUeXBlLkFXU19JTUFHRV9CVUlMREVSKSB7XG4gICAgICByZXR1cm4gbmV3IEF3c0ltYWdlQnVpbGRlclJ1bm5lckltYWdlQnVpbGRlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcyA9IHByb3BzPy5vcyA/PyBPcy5MSU5VWF9VQlVOVFU7XG4gICAgaWYgKG9zLmlzSW4oT3MuX0FMTF9MSU5VWF9WRVJTSU9OUykpIHtcbiAgICAgIHJldHVybiBuZXcgQ29kZUJ1aWxkUnVubmVySW1hZ2VCdWlsZGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIH0gZWxzZSBpZiAob3MuaXMoT3MuV0lORE9XUykpIHtcbiAgICAgIHJldHVybiBuZXcgQXdzSW1hZ2VCdWlsZGVyUnVubmVySW1hZ2VCdWlsZGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBmaW5kIHJ1bm5lciBpbWFnZSBidWlsZGVyIGltcGxlbWVudGF0aW9uIGZvciAke29zLm5hbWV9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -4,6 +4,8 @@ import { ImageBuilderObjectBase } from './common';
|
|
|
4
4
|
import { Architecture, Os } from '../../providers';
|
|
5
5
|
/**
|
|
6
6
|
* Properties for AmiRecipe construct.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
7
9
|
*/
|
|
8
10
|
interface AmiRecipeProperties {
|
|
9
11
|
/**
|
|
@@ -22,6 +24,12 @@ interface AmiRecipeProperties {
|
|
|
22
24
|
* Components to add to target container image.
|
|
23
25
|
*/
|
|
24
26
|
readonly components: ImageBuilderComponent[];
|
|
27
|
+
/**
|
|
28
|
+
* Tags to apply to the recipe and image.
|
|
29
|
+
*/
|
|
30
|
+
readonly tags: {
|
|
31
|
+
[key: string]: string;
|
|
32
|
+
};
|
|
25
33
|
}
|
|
26
34
|
/**
|
|
27
35
|
* Image builder recipe for Amazon Machine Image (AMI).
|
|
@@ -24,6 +24,7 @@ class AmiRecipe extends common_1.ImageBuilderObjectBase {
|
|
|
24
24
|
platform: props.platform,
|
|
25
25
|
components,
|
|
26
26
|
parentAmi: props.baseAmi,
|
|
27
|
+
tags: props.tags,
|
|
27
28
|
});
|
|
28
29
|
let workingDirectory;
|
|
29
30
|
if (props.platform == 'Linux') {
|
|
@@ -41,6 +42,7 @@ class AmiRecipe extends common_1.ImageBuilderObjectBase {
|
|
|
41
42
|
parentImage: props.baseAmi,
|
|
42
43
|
components,
|
|
43
44
|
workingDirectory,
|
|
45
|
+
tags: props.tags,
|
|
44
46
|
});
|
|
45
47
|
this.arn = recipe.attrArn;
|
|
46
48
|
}
|
|
@@ -98,4 +100,4 @@ function defaultBaseAmi(scope, os, architecture) {
|
|
|
98
100
|
throw new Error(`OS ${os.name} not supported for AMI runner image`);
|
|
99
101
|
}
|
|
100
102
|
exports.defaultBaseAmi = defaultBaseAmi;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltYWdlLWJ1aWxkZXJzL2F3cy1pbWFnZS1idWlsZGVyL2FtaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsNkNBQStEO0FBRy9ELHFDQUFrRDtBQUNsRCwrQ0FBbUQ7QUFDbkQsc0NBQW1EO0FBa0NuRDs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsK0JBQXNCO0lBS25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNoRCxPQUFPO2dCQUNMLFlBQVksRUFBRSxTQUFTLENBQUMsR0FBRzthQUM1QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzVELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixVQUFVO1lBQ1YsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3hCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFFSCxJQUFJLGdCQUFnQixDQUFDO1FBQ3JCLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM5QixnQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFDcEMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN2QyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyx5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RCx3Q0FpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgYXdzX2ltYWdlYnVpbGRlciBhcyBpbWFnZWJ1aWxkZXIgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEltYWdlQnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vYnVpbGRlcic7XG5pbXBvcnQgeyBJbWFnZUJ1aWxkZXJPYmplY3RCYXNlIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBPcyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyB1bmlxdWVJbWFnZUJ1aWxkZXJOYW1lIH0gZnJvbSAnLi4vY29tbW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBBbWlSZWNpcGUgY29uc3RydWN0LlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5pbnRlcmZhY2UgQW1pUmVjaXBlUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBUYXJnZXQgcGxhdGZvcm0uIE11c3QgbWF0Y2ggYnVpbGRlciBwbGF0Zm9ybS5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiAnTGludXgnIHwgJ1dpbmRvd3MnO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgYXJjaGl0ZWN0dXJlLiBNdXN0IG1hdGNoIGJ1aWxkZXIgcGxhdGZvcm0uXG4gICAqL1xuICByZWFkb25seSBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZTtcblxuICAvKipcbiAgICogQmFzZSBBTUkgdG8gdXNlIGZvciB0aGUgbmV3IHJ1bm5lciBBTUkuXG4gICAqL1xuICByZWFkb25seSBiYXNlQW1pOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudHMgdG8gYWRkIHRvIHRhcmdldCBjb250YWluZXIgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRzOiBJbWFnZUJ1aWxkZXJDb21wb25lbnRbXTtcblxuICAvKipcbiAgICogVGFncyB0byBhcHBseSB0byB0aGUgcmVjaXBlIGFuZCBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogSW1hZ2UgYnVpbGRlciByZWNpcGUgZm9yIEFtYXpvbiBNYWNoaW5lIEltYWdlIChBTUkpLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQW1pUmVjaXBlIGV4dGVuZHMgSW1hZ2VCdWlsZGVyT2JqZWN0QmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBhcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQW1pUmVjaXBlUHJvcGVydGllcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgY29tcG9uZW50cyA9IHByb3BzLmNvbXBvbmVudHMubWFwKGNvbXBvbmVudCA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb21wb25lbnRBcm46IGNvbXBvbmVudC5hcm4sXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lID0gdW5pcXVlSW1hZ2VCdWlsZGVyTmFtZSh0aGlzKTtcbiAgICB0aGlzLnZlcnNpb24gPSB0aGlzLmdlbmVyYXRlVmVyc2lvbignSW1hZ2VSZWNpcGUnLCB0aGlzLm5hbWUsIHtcbiAgICAgIHBsYXRmb3JtOiBwcm9wcy5wbGF0Zm9ybSxcbiAgICAgIGNvbXBvbmVudHMsXG4gICAgICBwYXJlbnRBbWk6IHByb3BzLmJhc2VBbWksXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgbGV0IHdvcmtpbmdEaXJlY3Rvcnk7XG4gICAgaWYgKHByb3BzLnBsYXRmb3JtID09ICdMaW51eCcpIHtcbiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSAnL2hvbWUvcnVubmVyJztcbiAgICB9IGVsc2UgaWYgKHByb3BzLnBsYXRmb3JtID09ICdXaW5kb3dzJykge1xuICAgICAgd29ya2luZ0RpcmVjdG9yeSA9ICdDOi8nOyAvLyBtdXN0IGV4aXN0IG9yIEltYWdlIEJ1aWxkZXIgZmFpbHMgYW5kIG11c3Qgbm90IGJlIGVtcHR5IG9yIGdpdCB3aWxsIHN0YWxsIGluc3RhbGxpbmcgZnJvbSB0aGUgZGVmYXVsdCB3aW5kb3dzXFxzeXN0ZW0zMlxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEFNSSByZWNpcGUgcGxhdGZvcm06ICR7cHJvcHMucGxhdGZvcm19YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVjaXBlID0gbmV3IGltYWdlYnVpbGRlci5DZm5JbWFnZVJlY2lwZSh0aGlzLCAnUmVjaXBlJywge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgcGFyZW50SW1hZ2U6IHByb3BzLmJhc2VBbWksXG4gICAgICBjb21wb25lbnRzLFxuICAgICAgd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFybiA9IHJlY2lwZS5hdHRyQXJuO1xuICB9XG59XG5cbi8qKlxuICogRGVmYXVsdCBiYXNlIEFNSSBmb3IgZ2l2ZW4gT1MgYW5kIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRCYXNlQW1pKHNjb3BlOiBDb25zdHJ1Y3QsIG9zOiBPcywgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUpIHtcbiAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuXG4gIGxldCBhcmNoO1xuICBpZiAoYXJjaGl0ZWN0dXJlLmlzKEFyY2hpdGVjdHVyZS5YODZfNjQpKSB7XG4gICAgYXJjaCA9ICd4ODYnO1xuICB9IGVsc2UgaWYgKGFyY2hpdGVjdHVyZS5pcyhBcmNoaXRlY3R1cmUuQVJNNjQpKSB7XG4gICAgYXJjaCA9ICdhcm02NCc7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUgZm9yIGJhc2UgQU1JOiAke2FyY2hpdGVjdHVyZS5uYW1lfWApO1xuICB9XG5cbiAgaWYgKG9zLmlzKE9zLkxJTlVYX1VCVU5UVSkgfHwgb3MuaXMoT3MuTElOVVgpKSB7XG4gICAgcmV0dXJuIHN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnaW1hZ2VidWlsZGVyJyxcbiAgICAgIHJlc291cmNlOiAnaW1hZ2UnLFxuICAgICAgYWNjb3VudDogJ2F3cycsXG4gICAgICByZXNvdXJjZU5hbWU6IGB1YnVudHUtc2VydmVyLTIyLWx0cy0ke2FyY2h9L3gueC54YCxcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChvcy5pcyhPcy5MSU5VWF9BTUFaT05fMikpIHtcbiAgICByZXR1cm4gc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgcmVzb3VyY2U6ICdpbWFnZScsXG4gICAgICBhY2NvdW50OiAnYXdzJyxcbiAgICAgIHJlc291cmNlTmFtZTogYGFtYXpvbi1saW51eC0yLSR7YXJjaH0veC54LnhgLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKG9zLmlzKE9zLkxJTlVYX0FNQVpPTl8yMDIzKSkge1xuICAgIHJldHVybiBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICByZXNvdXJjZTogJ2ltYWdlJyxcbiAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgcmVzb3VyY2VOYW1lOiBgYW1hem9uLWxpbnV4LTIwMjMtJHthcmNofS94LngueGAsXG4gICAgfSk7XG4gIH1cblxuICBpZiAob3MuaXMoT3MuV0lORE9XUykpIHtcbiAgICByZXR1cm4gc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgcmVzb3VyY2U6ICdpbWFnZScsXG4gICAgICBhY2NvdW50OiAnYXdzJyxcbiAgICAgIHJlc291cmNlTmFtZTogYHdpbmRvd3Mtc2VydmVyLTIwMjItZW5nbGlzaC1mdWxsLWJhc2UtJHthcmNofS94LngueGAsXG4gICAgfSk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYE9TICR7b3MubmFtZX0gbm90IHN1cHBvcnRlZCBmb3IgQU1JIHJ1bm5lciBpbWFnZWApO1xufVxuXG4iXX0=
|
|
@@ -157,6 +157,7 @@ export declare class AwsImageBuilderRunnerImageBuilder extends RunnerImageBuilde
|
|
|
157
157
|
private readonly fastLaunchOptions?;
|
|
158
158
|
private readonly waitOnDeploy;
|
|
159
159
|
private readonly dockerSetupCommands;
|
|
160
|
+
private readonly tags;
|
|
160
161
|
constructor(scope: Construct, id: string, props?: RunnerImageBuilderProps);
|
|
161
162
|
private platform;
|
|
162
163
|
/**
|
|
@@ -177,6 +178,7 @@ export declare class AwsImageBuilderRunnerImageBuilder extends RunnerImageBuilde
|
|
|
177
178
|
bindAmi(): RunnerAmi;
|
|
178
179
|
private amiCleaner;
|
|
179
180
|
private bindComponents;
|
|
181
|
+
private imageCleaner;
|
|
180
182
|
}
|
|
181
183
|
/**
|
|
182
184
|
* @internal
|