@flit/cdk-pipeline 2.5.2 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +379 -285
- package/dist/artifact.js +1 -1
- package/dist/code-commit-source-segment.js +2 -2
- package/dist/code-star-source-segment.js +2 -2
- package/dist/git-hub-source-segment.js +2 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -2
- package/dist/pipeline-segment.d.ts +2 -0
- package/dist/pipeline-segment.js +14 -4
- package/dist/pipeline.js +1 -1
- package/dist/s3-source-segment.js +2 -2
- package/dist/segment.js +2 -2
- package/dist/source-segment.js +1 -1
- package/dist/stack-segment.js +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -1
- package/src/pipeline-segment.ts +19 -5
- package/src/stack-segment.ts +10 -10
- package/dist/publish-assets-action.d.ts +0 -16
- package/dist/publish-assets-action.js +0 -77
- package/src/publish-assets-action.ts +0 -123
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -4,7 +4,6 @@ export * from "./code-star-source-segment";
|
|
|
4
4
|
export * from "./git-hub-source-segment";
|
|
5
5
|
export * from "./pipeline-segment";
|
|
6
6
|
export * from "./pipeline";
|
|
7
|
-
export * from "./publish-assets-action";
|
|
8
7
|
export * from "./s3-source-segment";
|
|
9
8
|
export * from "./segment";
|
|
10
9
|
export * from "./source-segment";
|
package/src/pipeline-segment.ts
CHANGED
|
@@ -7,7 +7,8 @@ import {
|
|
|
7
7
|
Project,
|
|
8
8
|
ProjectProps,
|
|
9
9
|
} from "aws-cdk-lib/aws-codebuild";
|
|
10
|
-
import { Stack } from "aws-cdk-lib";
|
|
10
|
+
import { Duration, RemovalPolicy, Stack } from "aws-cdk-lib";
|
|
11
|
+
import { Cache } from "aws-cdk-lib/aws-codebuild";
|
|
11
12
|
import { IAction } from "aws-cdk-lib/aws-codepipeline";
|
|
12
13
|
import {
|
|
13
14
|
CloudFormationExecuteChangeSetAction,
|
|
@@ -19,6 +20,7 @@ import { Artifact } from "./artifact";
|
|
|
19
20
|
import { Segment, SegmentConstructed } from "./segment";
|
|
20
21
|
import { Pipeline } from "./pipeline";
|
|
21
22
|
import { PolicyStatement } from "aws-cdk-lib/aws-iam";
|
|
23
|
+
import { BlockPublicAccess, Bucket } from "aws-cdk-lib/aws-s3";
|
|
22
24
|
|
|
23
25
|
export interface PipelineSegmentProps {
|
|
24
26
|
/**
|
|
@@ -30,6 +32,7 @@ export interface PipelineSegmentProps {
|
|
|
30
32
|
* @example "cdk synth StackName --strict --exclusively"
|
|
31
33
|
*/
|
|
32
34
|
readonly project: ProjectProps;
|
|
35
|
+
readonly cache?: boolean;
|
|
33
36
|
/**
|
|
34
37
|
* The environmental variables for the build stage.
|
|
35
38
|
*/
|
|
@@ -76,6 +79,7 @@ export class PipelineSegment extends Segment {
|
|
|
76
79
|
export interface PipelineSegmentConstructedProps {
|
|
77
80
|
readonly stack: Stack;
|
|
78
81
|
readonly project: ProjectProps;
|
|
82
|
+
readonly cache?: boolean;
|
|
79
83
|
readonly environmentVariables?: { [key: string]: BuildEnvironmentVariable };
|
|
80
84
|
readonly input: Artifact;
|
|
81
85
|
readonly extraInputs?: Artifact[];
|
|
@@ -114,7 +118,7 @@ export class PipelineSegmentConstructed extends SegmentConstructed {
|
|
|
114
118
|
commands: "npm install -g aws-cdk",
|
|
115
119
|
},
|
|
116
120
|
build: {
|
|
117
|
-
commands: `npx cdk deploy ${props.stack.node.id} --app ./ --method prepare-change-set --change-set-name pipeline-${props.stack.node.id}-${this.name} --require-approval never`,
|
|
121
|
+
commands: `npx cdk deploy ${props.stack.node.id} --app ./ --exclusively --method prepare-change-set --change-set-name pipeline-${props.stack.node.id}-${this.name} --require-approval never`,
|
|
118
122
|
},
|
|
119
123
|
},
|
|
120
124
|
cache: {
|
|
@@ -164,6 +168,16 @@ export class PipelineSegmentConstructed extends SegmentConstructed {
|
|
|
164
168
|
environmentVariables: props.environmentVariables,
|
|
165
169
|
project: new Project(this, "UpdateCodeBuild", {
|
|
166
170
|
...props.project,
|
|
171
|
+
cache: props.cache
|
|
172
|
+
? Cache.bucket(
|
|
173
|
+
new Bucket(this, "CodeBuildCache", {
|
|
174
|
+
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
|
|
175
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
176
|
+
autoDeleteObjects: true,
|
|
177
|
+
lifecycleRules: [{ expiration: Duration.days(30) }],
|
|
178
|
+
}),
|
|
179
|
+
)
|
|
180
|
+
: undefined,
|
|
167
181
|
buildSpec: props.project.buildSpec
|
|
168
182
|
? mergeBuildSpecs(
|
|
169
183
|
props.project.buildSpec,
|
|
@@ -173,13 +187,13 @@ export class PipelineSegmentConstructed extends SegmentConstructed {
|
|
|
173
187
|
files: ["**/*"],
|
|
174
188
|
},
|
|
175
189
|
}),
|
|
176
|
-
|
|
190
|
+
)
|
|
177
191
|
: BuildSpec.fromObject({
|
|
178
192
|
artifacts: {
|
|
179
193
|
"base-directory": scope.buildDir,
|
|
180
194
|
files: ["**/*"],
|
|
181
195
|
},
|
|
182
|
-
|
|
196
|
+
}),
|
|
183
197
|
}),
|
|
184
198
|
}),
|
|
185
199
|
new CodeBuildAction({
|
|
@@ -194,7 +208,7 @@ export class PipelineSegmentConstructed extends SegmentConstructed {
|
|
|
194
208
|
actionName: "ApproveChanges",
|
|
195
209
|
runOrder: 3,
|
|
196
210
|
}),
|
|
197
|
-
|
|
211
|
+
]
|
|
198
212
|
: []),
|
|
199
213
|
new CloudFormationExecuteChangeSetAction({
|
|
200
214
|
actionName: "ExecuteChanges",
|
package/src/stack-segment.ts
CHANGED
|
@@ -130,12 +130,12 @@ export class StackSegmentConstructed extends SegmentConstructed {
|
|
|
130
130
|
files: [path.join(scope.buildDir, "**/*")],
|
|
131
131
|
},
|
|
132
132
|
}),
|
|
133
|
-
|
|
133
|
+
)
|
|
134
134
|
: BuildSpec.fromObject({
|
|
135
135
|
artifacts: {
|
|
136
136
|
files: [path.join(scope.buildDir, "**/*")],
|
|
137
137
|
},
|
|
138
|
-
|
|
138
|
+
}),
|
|
139
139
|
});
|
|
140
140
|
|
|
141
141
|
Object.entries(
|
|
@@ -168,7 +168,7 @@ export class StackSegmentConstructed extends SegmentConstructed {
|
|
|
168
168
|
? v.value.split(":").slice(0, 7).join(":")
|
|
169
169
|
: `arn:aws:secretsmanager:*:${
|
|
170
170
|
Stack.of(this).account
|
|
171
|
-
|
|
171
|
+
}:secret:${v.value}-*`,
|
|
172
172
|
],
|
|
173
173
|
}),
|
|
174
174
|
);
|
|
@@ -191,7 +191,7 @@ export class StackSegmentConstructed extends SegmentConstructed {
|
|
|
191
191
|
commands: "npm install -g aws-cdk",
|
|
192
192
|
},
|
|
193
193
|
build: {
|
|
194
|
-
commands: `npx cdk deploy ${props.stack.node.id} --app ./ --method prepare-change-set --change-set-name pipeline-${props.stack.node.id}-${this.name} --require-approval never`,
|
|
194
|
+
commands: `npx cdk deploy ${props.stack.node.id} --app ./ --exclusively --method prepare-change-set --change-set-name pipeline-${props.stack.node.id}-${this.name} --require-approval never`,
|
|
195
195
|
},
|
|
196
196
|
},
|
|
197
197
|
cache: {
|
|
@@ -243,7 +243,7 @@ export class StackSegmentConstructed extends SegmentConstructed {
|
|
|
243
243
|
environmentVariables: props.environmentVariables,
|
|
244
244
|
project: codeBuildProject,
|
|
245
245
|
}),
|
|
246
|
-
|
|
246
|
+
]
|
|
247
247
|
: []),
|
|
248
248
|
new CodeBuildAction({
|
|
249
249
|
actionName: `${this.name}PrepareChanges`,
|
|
@@ -257,7 +257,7 @@ export class StackSegmentConstructed extends SegmentConstructed {
|
|
|
257
257
|
actionName: `${this.name}ApproveChanges`,
|
|
258
258
|
runOrder: buildArtifact ? 3 : 2,
|
|
259
259
|
}),
|
|
260
|
-
|
|
260
|
+
]
|
|
261
261
|
: []),
|
|
262
262
|
new CloudFormationExecuteChangeSetAction({
|
|
263
263
|
actionName: `${this.name}ExecuteChanges`,
|
|
@@ -266,8 +266,8 @@ export class StackSegmentConstructed extends SegmentConstructed {
|
|
|
266
266
|
? 4
|
|
267
267
|
: 3
|
|
268
268
|
: buildArtifact
|
|
269
|
-
|
|
270
|
-
|
|
269
|
+
? 3
|
|
270
|
+
: 2,
|
|
271
271
|
stackName: props.stack.stackName,
|
|
272
272
|
account: props.stack.account,
|
|
273
273
|
region: props.stack.region,
|
|
@@ -276,8 +276,8 @@ export class StackSegmentConstructed extends SegmentConstructed {
|
|
|
276
276
|
outputFileName: props.outputFileName
|
|
277
277
|
? props.outputFileName
|
|
278
278
|
: props.stackOutput
|
|
279
|
-
|
|
280
|
-
|
|
279
|
+
? "artifact.json"
|
|
280
|
+
: undefined,
|
|
281
281
|
}),
|
|
282
282
|
];
|
|
283
283
|
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import { ActionBindOptions, ActionConfig, ActionProperties, Artifact, IAction, IStage } from "aws-cdk-lib/aws-codepipeline";
|
|
3
|
-
import { IRuleTarget, RuleProps, Rule } from "aws-cdk-lib/aws-events";
|
|
4
|
-
export interface PublishAssetsActionProps {
|
|
5
|
-
readonly actionName: string;
|
|
6
|
-
readonly input: Artifact;
|
|
7
|
-
readonly manifestPath: string;
|
|
8
|
-
readonly runOrder?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare class PublishAssetsAction extends Construct implements IAction {
|
|
11
|
-
readonly actionProperties: ActionProperties;
|
|
12
|
-
bound(scope: Construct, stage: IStage, options: ActionBindOptions): ActionConfig;
|
|
13
|
-
bind(scope: Construct, stage: IStage, options: ActionBindOptions): ActionConfig;
|
|
14
|
-
onStateChange(name: string, target?: IRuleTarget | undefined, options?: RuleProps | undefined): Rule;
|
|
15
|
-
constructor(scope: Construct, id: string, props: PublishAssetsActionProps);
|
|
16
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.PublishAssetsAction = void 0;
|
|
5
|
-
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
-
const constructs_1 = require("constructs");
|
|
8
|
-
const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
|
|
9
|
-
const aws_codepipeline_actions_1 = require("aws-cdk-lib/aws-codepipeline-actions");
|
|
10
|
-
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
11
|
-
const path = require("path");
|
|
12
|
-
class PublishAssetsAction extends constructs_1.Construct {
|
|
13
|
-
bound(scope, stage, options) {
|
|
14
|
-
throw new Error(`Method not implemented.${!scope && !stage && options}`);
|
|
15
|
-
}
|
|
16
|
-
bind(scope, stage, options) {
|
|
17
|
-
throw new Error(`Method not implemented.${!scope && !stage && options}`);
|
|
18
|
-
}
|
|
19
|
-
onStateChange(name, target, options) {
|
|
20
|
-
throw new Error(`Method not implemented.${!name && !target && options}`);
|
|
21
|
-
}
|
|
22
|
-
constructor(scope, id, props) {
|
|
23
|
-
super(scope, id);
|
|
24
|
-
const codeBuild = new aws_codepipeline_actions_1.CodeBuildAction({
|
|
25
|
-
...props,
|
|
26
|
-
input: props.input,
|
|
27
|
-
project: new aws_codebuild_1.Project(this, id, {
|
|
28
|
-
environment: {
|
|
29
|
-
buildImage: aws_codebuild_1.LinuxBuildImage.AMAZON_LINUX_2_5,
|
|
30
|
-
},
|
|
31
|
-
role: new aws_iam_1.Role(this, "UpdatePipelineCodeCuildRole", {
|
|
32
|
-
assumedBy: new aws_iam_1.CompositePrincipal(new aws_iam_1.ServicePrincipal("codebuild.amazonaws.com"), new aws_iam_1.AccountPrincipal(aws_cdk_lib_1.Stack.of(this).account)),
|
|
33
|
-
inlinePolicies: {
|
|
34
|
-
selfMutation: new aws_iam_1.PolicyDocument({
|
|
35
|
-
statements: [
|
|
36
|
-
new aws_iam_1.PolicyStatement({
|
|
37
|
-
actions: ["sts:AssumeRole"],
|
|
38
|
-
resources: [`arn:*:iam::${aws_cdk_lib_1.Stack.of(this).account}:role/*`],
|
|
39
|
-
conditions: {
|
|
40
|
-
"ForAnyValue:StringEquals": {
|
|
41
|
-
"iam:ResourceTag/aws-cdk:bootstrap-role": [
|
|
42
|
-
"image-publishing",
|
|
43
|
-
"file-publishing",
|
|
44
|
-
"deploy",
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
}),
|
|
49
|
-
],
|
|
50
|
-
}),
|
|
51
|
-
},
|
|
52
|
-
}),
|
|
53
|
-
buildSpec: aws_codebuild_1.BuildSpec.fromObject({
|
|
54
|
-
version: "0.2",
|
|
55
|
-
phases: {
|
|
56
|
-
install: {
|
|
57
|
-
"runtime-versions": {
|
|
58
|
-
nodejs: "latest",
|
|
59
|
-
},
|
|
60
|
-
commands: ["npm i -g @flit/publish-cdk-assets@latest"],
|
|
61
|
-
},
|
|
62
|
-
build: {
|
|
63
|
-
commands: `pca ${props.manifestPath ? path.normalize(props.manifestPath) : "."}`,
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
}),
|
|
67
|
-
}),
|
|
68
|
-
});
|
|
69
|
-
this.actionProperties = codeBuild.actionProperties;
|
|
70
|
-
this.bind = (scope, stage, options) => codeBuild.bind(scope, stage, options);
|
|
71
|
-
this.onStateChange = (name, target, options) => codeBuild.onStateChange(name, target, options);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.PublishAssetsAction = PublishAssetsAction;
|
|
75
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
76
|
-
PublishAssetsAction[_a] = { fqn: "@flit/cdk-pipeline.PublishAssetsAction", version: "2.5.2" };
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1hc3NldHMtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B1Ymxpc2gtYXNzZXRzLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFvQztBQUNwQywyQ0FBdUM7QUFTdkMsNkRBQWdGO0FBQ2hGLG1GQUF1RTtBQUN2RSxpREFPNkI7QUFFN0IsNkJBQTZCO0FBUzdCLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFHakQsS0FBSyxDQUNKLEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUEwQjtRQUUxQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLEtBQUssSUFBSSxDQUFDLEtBQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFJLENBQ0gsS0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE9BQTBCO1FBRTFCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBTSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGFBQWEsQ0FDWixJQUFZLEVBQ1osTUFBZ0MsRUFDaEMsT0FBK0I7UUFFL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFPLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksMENBQWUsQ0FBQztZQUNyQyxHQUFHLEtBQUs7WUFDUixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsT0FBTyxFQUFFLElBQUksdUJBQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUM5QixXQUFXLEVBQUU7b0JBQ1osVUFBVSxFQUFFLCtCQUFlLENBQUMsZ0JBQWdCO2lCQUM1QztnQkFDRCxJQUFJLEVBQUUsSUFBSSxjQUFJLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFO29CQUNuRCxTQUFTLEVBQUUsSUFBSSw0QkFBa0IsQ0FDaEMsSUFBSSwwQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxFQUMvQyxJQUFJLDBCQUFnQixDQUFDLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUM1QztvQkFDRCxjQUFjLEVBQUU7d0JBQ2YsWUFBWSxFQUFFLElBQUksd0JBQWMsQ0FBQzs0QkFDaEMsVUFBVSxFQUFFO2dDQUNYLElBQUkseUJBQWUsQ0FBQztvQ0FDbkIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0NBQzNCLFNBQVMsRUFBRSxDQUFDLGNBQWMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxTQUFTLENBQUM7b0NBQzFELFVBQVUsRUFBRTt3Q0FDWCwwQkFBMEIsRUFBRTs0Q0FDM0Isd0NBQXdDLEVBQUU7Z0RBQ3pDLGtCQUFrQjtnREFDbEIsaUJBQWlCO2dEQUNqQixRQUFROzZDQUNSO3lDQUNEO3FDQUNEO2lDQUNELENBQUM7NkJBQ0Y7eUJBQ0QsQ0FBQztxQkFDRjtpQkFDRCxDQUFDO2dCQUNGLFNBQVMsRUFBRSx5QkFBUyxDQUFDLFVBQVUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsTUFBTSxFQUFFO3dCQUNQLE9BQU8sRUFBRTs0QkFDUixrQkFBa0IsRUFBRTtnQ0FDbkIsTUFBTSxFQUFFLFFBQVE7NkJBQ2hCOzRCQUNELFFBQVEsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO3lCQUN0RDt3QkFDRCxLQUFLLEVBQUU7NEJBQ04sUUFBUSxFQUFFLE9BQ1QsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQzNELEVBQUU7eUJBQ0Y7cUJBQ0Q7aUJBQ0QsQ0FBQzthQUNGLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FDWCxLQUFnQixFQUNoQixLQUFhLEVBQ2IsT0FBMEIsRUFDWCxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FDcEIsSUFBWSxFQUNaLE1BQW9CLEVBQ3BCLE9BQW1CLEVBQ1osRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDOztBQTNGRixrREE0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG5cdEFjdGlvbkJpbmRPcHRpb25zLFxuXHRBY3Rpb25Db25maWcsXG5cdEFjdGlvblByb3BlcnRpZXMsXG5cdEFydGlmYWN0LFxuXHRJQWN0aW9uLFxuXHRJU3RhZ2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQgeyBCdWlsZFNwZWMsIExpbnV4QnVpbGRJbWFnZSwgUHJvamVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBDb2RlQnVpbGRBY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQge1xuXHRBY2NvdW50UHJpbmNpcGFsLFxuXHRDb21wb3NpdGVQcmluY2lwYWwsXG5cdFBvbGljeURvY3VtZW50LFxuXHRQb2xpY3lTdGF0ZW1lbnQsXG5cdFJvbGUsXG5cdFNlcnZpY2VQcmluY2lwYWwsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBJUnVsZVRhcmdldCwgUnVsZVByb3BzLCBSdWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoQXNzZXRzQWN0aW9uUHJvcHMge1xuXHRyZWFkb25seSBhY3Rpb25OYW1lOiBzdHJpbmc7XG5cdHJlYWRvbmx5IGlucHV0OiBBcnRpZmFjdDtcblx0cmVhZG9ubHkgbWFuaWZlc3RQYXRoOiBzdHJpbmc7XG5cdHJlYWRvbmx5IHJ1bk9yZGVyPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgUHVibGlzaEFzc2V0c0FjdGlvbiBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElBY3Rpb24ge1xuXHRwdWJsaWMgcmVhZG9ubHkgYWN0aW9uUHJvcGVydGllczogQWN0aW9uUHJvcGVydGllcztcblxuXHRib3VuZChcblx0XHRzY29wZTogQ29uc3RydWN0LFxuXHRcdHN0YWdlOiBJU3RhZ2UsXG5cdFx0b3B0aW9uczogQWN0aW9uQmluZE9wdGlvbnMsXG5cdCk6IEFjdGlvbkNvbmZpZyB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGBNZXRob2Qgbm90IGltcGxlbWVudGVkLiR7IXNjb3BlICYmICFzdGFnZSEgJiYgb3B0aW9uc31gKTtcblx0fVxuXG5cdGJpbmQoXG5cdFx0c2NvcGU6IENvbnN0cnVjdCxcblx0XHRzdGFnZTogSVN0YWdlLFxuXHRcdG9wdGlvbnM6IEFjdGlvbkJpbmRPcHRpb25zLFxuXHQpOiBBY3Rpb25Db25maWcge1xuXHRcdHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4keyFzY29wZSAmJiAhc3RhZ2UhICYmIG9wdGlvbnN9YCk7XG5cdH1cblxuXHRvblN0YXRlQ2hhbmdlKFxuXHRcdG5hbWU6IHN0cmluZyxcblx0XHR0YXJnZXQ/OiBJUnVsZVRhcmdldCB8IHVuZGVmaW5lZCxcblx0XHRvcHRpb25zPzogUnVsZVByb3BzIHwgdW5kZWZpbmVkLFxuXHQpOiBSdWxlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYE1ldGhvZCBub3QgaW1wbGVtZW50ZWQuJHshbmFtZSAmJiAhdGFyZ2V0ISAmJiBvcHRpb25zfWApO1xuXHR9XG5cblx0Y29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1Ymxpc2hBc3NldHNBY3Rpb25Qcm9wcykge1xuXHRcdHN1cGVyKHNjb3BlLCBpZCk7XG5cdFx0Y29uc3QgY29kZUJ1aWxkID0gbmV3IENvZGVCdWlsZEFjdGlvbih7XG5cdFx0XHQuLi5wcm9wcyxcblx0XHRcdGlucHV0OiBwcm9wcy5pbnB1dCxcblx0XHRcdHByb2plY3Q6IG5ldyBQcm9qZWN0KHRoaXMsIGlkLCB7XG5cdFx0XHRcdGVudmlyb25tZW50OiB7XG5cdFx0XHRcdFx0YnVpbGRJbWFnZTogTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzUsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHJvbGU6IG5ldyBSb2xlKHRoaXMsIFwiVXBkYXRlUGlwZWxpbmVDb2RlQ3VpbGRSb2xlXCIsIHtcblx0XHRcdFx0XHRhc3N1bWVkQnk6IG5ldyBDb21wb3NpdGVQcmluY2lwYWwoXG5cdFx0XHRcdFx0XHRuZXcgU2VydmljZVByaW5jaXBhbChcImNvZGVidWlsZC5hbWF6b25hd3MuY29tXCIpLFxuXHRcdFx0XHRcdFx0bmV3IEFjY291bnRQcmluY2lwYWwoU3RhY2sub2YodGhpcykuYWNjb3VudCksXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRpbmxpbmVQb2xpY2llczoge1xuXHRcdFx0XHRcdFx0c2VsZk11dGF0aW9uOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuXHRcdFx0XHRcdFx0XHRzdGF0ZW1lbnRzOiBbXG5cdFx0XHRcdFx0XHRcdFx0bmV3IFBvbGljeVN0YXRlbWVudCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRhY3Rpb25zOiBbXCJzdHM6QXNzdW1lUm9sZVwiXSxcblx0XHRcdFx0XHRcdFx0XHRcdHJlc291cmNlczogW2Bhcm46KjppYW06OiR7U3RhY2sub2YodGhpcykuYWNjb3VudH06cm9sZS8qYF0sXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25kaXRpb25zOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcImlhbTpSZXNvdXJjZVRhZy9hd3MtY2RrOmJvb3RzdHJhcC1yb2xlXCI6IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiaW1hZ2UtcHVibGlzaGluZ1wiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCJmaWxlLXB1Ymxpc2hpbmdcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiZGVwbG95XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9KSxcblx0XHRcdFx0YnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG5cdFx0XHRcdFx0dmVyc2lvbjogXCIwLjJcIixcblx0XHRcdFx0XHRwaGFzZXM6IHtcblx0XHRcdFx0XHRcdGluc3RhbGw6IHtcblx0XHRcdFx0XHRcdFx0XCJydW50aW1lLXZlcnNpb25zXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRub2RlanM6IFwibGF0ZXN0XCIsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGNvbW1hbmRzOiBbXCJucG0gaSAtZyBAZmxpdC9wdWJsaXNoLWNkay1hc3NldHNAbGF0ZXN0XCJdLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdGJ1aWxkOiB7XG5cdFx0XHRcdFx0XHRcdGNvbW1hbmRzOiBgcGNhICR7XG5cdFx0XHRcdFx0XHRcdFx0cHJvcHMubWFuaWZlc3RQYXRoID8gcGF0aC5ub3JtYWxpemUocHJvcHMubWFuaWZlc3RQYXRoKSA6IFwiLlwiXG5cdFx0XHRcdFx0XHRcdH1gLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9KSxcblx0XHRcdH0pLFxuXHRcdH0pO1xuXG5cdFx0dGhpcy5hY3Rpb25Qcm9wZXJ0aWVzID0gY29kZUJ1aWxkLmFjdGlvblByb3BlcnRpZXM7XG5cdFx0dGhpcy5iaW5kID0gKFxuXHRcdFx0c2NvcGU6IENvbnN0cnVjdCxcblx0XHRcdHN0YWdlOiBJU3RhZ2UsXG5cdFx0XHRvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9ucyxcblx0XHQpOiBBY3Rpb25Db25maWcgPT4gY29kZUJ1aWxkLmJpbmQoc2NvcGUsIHN0YWdlLCBvcHRpb25zKTtcblx0XHR0aGlzLm9uU3RhdGVDaGFuZ2UgPSAoXG5cdFx0XHRuYW1lOiBzdHJpbmcsXG5cdFx0XHR0YXJnZXQ/OiBJUnVsZVRhcmdldCxcblx0XHRcdG9wdGlvbnM/OiBSdWxlUHJvcHMsXG5cdFx0KTogUnVsZSA9PiBjb2RlQnVpbGQub25TdGF0ZUNoYW5nZShuYW1lLCB0YXJnZXQsIG9wdGlvbnMpO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { Stack } from "aws-cdk-lib";
|
|
2
|
-
import { Construct } from "constructs";
|
|
3
|
-
import {
|
|
4
|
-
ActionBindOptions,
|
|
5
|
-
ActionConfig,
|
|
6
|
-
ActionProperties,
|
|
7
|
-
Artifact,
|
|
8
|
-
IAction,
|
|
9
|
-
IStage,
|
|
10
|
-
} from "aws-cdk-lib/aws-codepipeline";
|
|
11
|
-
import { BuildSpec, LinuxBuildImage, Project } from "aws-cdk-lib/aws-codebuild";
|
|
12
|
-
import { CodeBuildAction } from "aws-cdk-lib/aws-codepipeline-actions";
|
|
13
|
-
import {
|
|
14
|
-
AccountPrincipal,
|
|
15
|
-
CompositePrincipal,
|
|
16
|
-
PolicyDocument,
|
|
17
|
-
PolicyStatement,
|
|
18
|
-
Role,
|
|
19
|
-
ServicePrincipal,
|
|
20
|
-
} from "aws-cdk-lib/aws-iam";
|
|
21
|
-
import { IRuleTarget, RuleProps, Rule } from "aws-cdk-lib/aws-events";
|
|
22
|
-
import * as path from "path";
|
|
23
|
-
|
|
24
|
-
export interface PublishAssetsActionProps {
|
|
25
|
-
readonly actionName: string;
|
|
26
|
-
readonly input: Artifact;
|
|
27
|
-
readonly manifestPath: string;
|
|
28
|
-
readonly runOrder?: number;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export class PublishAssetsAction extends Construct implements IAction {
|
|
32
|
-
public readonly actionProperties: ActionProperties;
|
|
33
|
-
|
|
34
|
-
bound(
|
|
35
|
-
scope: Construct,
|
|
36
|
-
stage: IStage,
|
|
37
|
-
options: ActionBindOptions,
|
|
38
|
-
): ActionConfig {
|
|
39
|
-
throw new Error(`Method not implemented.${!scope && !stage! && options}`);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
bind(
|
|
43
|
-
scope: Construct,
|
|
44
|
-
stage: IStage,
|
|
45
|
-
options: ActionBindOptions,
|
|
46
|
-
): ActionConfig {
|
|
47
|
-
throw new Error(`Method not implemented.${!scope && !stage! && options}`);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
onStateChange(
|
|
51
|
-
name: string,
|
|
52
|
-
target?: IRuleTarget | undefined,
|
|
53
|
-
options?: RuleProps | undefined,
|
|
54
|
-
): Rule {
|
|
55
|
-
throw new Error(`Method not implemented.${!name && !target! && options}`);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
constructor(scope: Construct, id: string, props: PublishAssetsActionProps) {
|
|
59
|
-
super(scope, id);
|
|
60
|
-
const codeBuild = new CodeBuildAction({
|
|
61
|
-
...props,
|
|
62
|
-
input: props.input,
|
|
63
|
-
project: new Project(this, id, {
|
|
64
|
-
environment: {
|
|
65
|
-
buildImage: LinuxBuildImage.AMAZON_LINUX_2_5,
|
|
66
|
-
},
|
|
67
|
-
role: new Role(this, "UpdatePipelineCodeCuildRole", {
|
|
68
|
-
assumedBy: new CompositePrincipal(
|
|
69
|
-
new ServicePrincipal("codebuild.amazonaws.com"),
|
|
70
|
-
new AccountPrincipal(Stack.of(this).account),
|
|
71
|
-
),
|
|
72
|
-
inlinePolicies: {
|
|
73
|
-
selfMutation: new PolicyDocument({
|
|
74
|
-
statements: [
|
|
75
|
-
new PolicyStatement({
|
|
76
|
-
actions: ["sts:AssumeRole"],
|
|
77
|
-
resources: [`arn:*:iam::${Stack.of(this).account}:role/*`],
|
|
78
|
-
conditions: {
|
|
79
|
-
"ForAnyValue:StringEquals": {
|
|
80
|
-
"iam:ResourceTag/aws-cdk:bootstrap-role": [
|
|
81
|
-
"image-publishing",
|
|
82
|
-
"file-publishing",
|
|
83
|
-
"deploy",
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
}),
|
|
88
|
-
],
|
|
89
|
-
}),
|
|
90
|
-
},
|
|
91
|
-
}),
|
|
92
|
-
buildSpec: BuildSpec.fromObject({
|
|
93
|
-
version: "0.2",
|
|
94
|
-
phases: {
|
|
95
|
-
install: {
|
|
96
|
-
"runtime-versions": {
|
|
97
|
-
nodejs: "latest",
|
|
98
|
-
},
|
|
99
|
-
commands: ["npm i -g @flit/publish-cdk-assets@latest"],
|
|
100
|
-
},
|
|
101
|
-
build: {
|
|
102
|
-
commands: `pca ${
|
|
103
|
-
props.manifestPath ? path.normalize(props.manifestPath) : "."
|
|
104
|
-
}`,
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
}),
|
|
108
|
-
}),
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
this.actionProperties = codeBuild.actionProperties;
|
|
112
|
-
this.bind = (
|
|
113
|
-
scope: Construct,
|
|
114
|
-
stage: IStage,
|
|
115
|
-
options: ActionBindOptions,
|
|
116
|
-
): ActionConfig => codeBuild.bind(scope, stage, options);
|
|
117
|
-
this.onStateChange = (
|
|
118
|
-
name: string,
|
|
119
|
-
target?: IRuleTarget,
|
|
120
|
-
options?: RuleProps,
|
|
121
|
-
): Rule => codeBuild.onStateChange(name, target, options);
|
|
122
|
-
}
|
|
123
|
-
}
|