@flit/cdk-pipeline 1.0.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/README.md ADDED
@@ -0,0 +1,22 @@
1
+ # @flit/cdk
2
+
3
+ This package exposes some useful CDK constructs to improve deployment workflows.
4
+
5
+ _**Warning:** This package is EXPERIMENTAL and might undergo breaking changes_
6
+
7
+ ## Usage
8
+
9
+ ### Installation
10
+
11
+ ```bash
12
+ npm i -g @flit/cdk
13
+ ```
14
+
15
+ ### Pipeline
16
+
17
+ An alternative L3 construct which fixes some inherit limitations of the CDK native CodePipeline L3 construct.
18
+
19
+ ```typescript
20
+ import { App } from "aws-cdk-lib";
21
+ import { Pipeline, StackSegment, Artifact, SourceArtifact } from "@flit/cdk";
22
+ ```
@@ -0,0 +1,8 @@
1
+ import { Artifact as AwsArtifact } from "aws-cdk-lib/aws-codepipeline";
2
+ import { Segment } from "./segment";
3
+ export declare class Artifact extends AwsArtifact {
4
+ private producer?;
5
+ constructor();
6
+ produce(producer: Segment): void;
7
+ getProducer(): Segment | undefined;
8
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Artifact = void 0;
4
+ const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
5
+ class Artifact extends aws_codepipeline_1.Artifact {
6
+ producer;
7
+ constructor() {
8
+ super();
9
+ }
10
+ produce(producer) {
11
+ if (this.producer)
12
+ throw new Error("Artifact is already produced");
13
+ this.producer = producer;
14
+ }
15
+ getProducer() {
16
+ return this.producer;
17
+ }
18
+ }
19
+ exports.Artifact = Artifact;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQXVFO0FBSXZFLE1BQWEsUUFBUyxTQUFRLDJCQUFXO0lBQy9CLFFBQVEsQ0FBVztJQUMzQjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQVpELDRCQVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJ0aWZhY3QgYXMgQXdzQXJ0aWZhY3QgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuXG5pbXBvcnQgeyBTZWdtZW50IH0gZnJvbSBcIi4vc2VnbWVudFwiO1xuXG5leHBvcnQgY2xhc3MgQXJ0aWZhY3QgZXh0ZW5kcyBBd3NBcnRpZmFjdCB7XG4gIHByaXZhdGUgcHJvZHVjZXI/OiBTZWdtZW50O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHByb2R1Y2UocHJvZHVjZXI6IFNlZ21lbnQpIHtcbiAgICBpZiAodGhpcy5wcm9kdWNlcikgdGhyb3cgbmV3IEVycm9yKFwiQXJ0aWZhY3QgaXMgYWxyZWFkeSBwcm9kdWNlZFwiKTtcbiAgICB0aGlzLnByb2R1Y2VyID0gcHJvZHVjZXI7XG4gIH1cbiAgZ2V0UHJvZHVjZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from "./pipeline";
2
+ export * from "./artifact";
3
+ export * from "./source-segment";
4
+ export * from "./pipeline-segment";
5
+ export * from "./stack-segment";
6
+ export * from "./publish-assets-action";
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./pipeline"), exports);
18
+ __exportStar(require("./artifact"), exports);
19
+ __exportStar(require("./source-segment"), exports);
20
+ __exportStar(require("./pipeline-segment"), exports);
21
+ __exportStar(require("./stack-segment"), exports);
22
+ __exportStar(require("./publish-assets-action"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiw2Q0FBMkI7QUFDM0IsbURBQWlDO0FBQ2pDLHFEQUFtQztBQUNuQyxrREFBZ0M7QUFDaEMsMERBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGlwZWxpbmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FydGlmYWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb3VyY2Utc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGlwZWxpbmUtc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhY2stc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHVibGlzaC1hc3NldHMtYWN0aW9uXCI7XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Stack } from "aws-cdk-lib";
2
+ import { Artifact } from "./artifact";
3
+ import { Segment, SegmentProps } from "./segment";
4
+ import { StackSegmentBuild } from "./stack-segment";
5
+ export interface PipelineSegmentProps extends SegmentProps {
6
+ command: string | string[];
7
+ buildPath: string;
8
+ input: Artifact | Artifact[];
9
+ output?: Artifact;
10
+ manualAproval?: Boolean;
11
+ }
12
+ export declare class PipelineSegment extends Segment {
13
+ readonly isPipeline: boolean;
14
+ readonly props: PipelineSegmentProps;
15
+ readonly input: Artifact | Artifact[];
16
+ constructor(props: PipelineSegmentProps);
17
+ build(scope: Stack): StackSegmentBuild;
18
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PipelineSegment = void 0;
4
+ const segment_1 = require("./segment");
5
+ const stack_segment_1 = require("./stack-segment");
6
+ class PipelineSegment extends segment_1.Segment {
7
+ isPipeline = true;
8
+ props;
9
+ input;
10
+ constructor(props) {
11
+ super(props);
12
+ this.input = props.input;
13
+ this.props = props;
14
+ }
15
+ build(scope) {
16
+ return new stack_segment_1.StackSegmentBuild(scope, `Deploy${scope.stackName}`, {
17
+ ...this.props,
18
+ stack: scope,
19
+ input: this.input.constructor.name === "Array"
20
+ ? this.input[0]
21
+ : this.input,
22
+ extraInputs: this.input.constructor.name === "Array"
23
+ ? this.input.slice(1)
24
+ : undefined,
25
+ });
26
+ }
27
+ }
28
+ exports.PipelineSegment = PipelineSegment;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waXBlbGluZS1zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1CQSx1Q0FBa0Q7QUFDbEQsbURBQW9EO0FBVXBELE1BQWEsZUFBZ0IsU0FBUSxpQkFBTztJQUNqQyxVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNCLEtBQUssQ0FBdUI7SUFDNUIsS0FBSyxDQUF3QjtJQUV0QyxZQUFZLEtBQTJCO1FBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVk7UUFDaEIsT0FBTyxJQUFJLGlDQUFpQixDQUFDLEtBQUssRUFBRSxTQUFTLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM5RCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLE9BQU87Z0JBQ3JDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBb0IsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBa0I7WUFDOUIsV0FBVyxFQUNULElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxPQUFPO2dCQUNyQyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBekJELDBDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQnVpbGRTcGVjLFxuICBDb21wdXRlVHlwZSxcbiAgTGludXhCdWlsZEltYWdlLFxuICBQcm9qZWN0LFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHsgSUFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQge1xuICBDbG91ZEZvcm1hdGlvbkNyZWF0ZVJlcGxhY2VDaGFuZ2VTZXRBY3Rpb24sXG4gIENsb3VkRm9ybWF0aW9uRXhlY3V0ZUNoYW5nZVNldEFjdGlvbixcbiAgQ29kZUJ1aWxkQWN0aW9uLFxuICBNYW51YWxBcHByb3ZhbEFjdGlvbixcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9uc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgUHVibGlzaEFzc2V0c0FjdGlvbiB9IGZyb20gXCIuL3B1Ymxpc2gtYXNzZXRzLWFjdGlvblwiO1xuaW1wb3J0IHsgQXJ0aWZhY3QgfSBmcm9tIFwiLi9hcnRpZmFjdFwiO1xuaW1wb3J0IHsgU2VnbWVudCwgU2VnbWVudFByb3BzIH0gZnJvbSBcIi4vc2VnbWVudFwiO1xuaW1wb3J0IHsgU3RhY2tTZWdtZW50QnVpbGQgfSBmcm9tIFwiLi9zdGFjay1zZWdtZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVTZWdtZW50UHJvcHMgZXh0ZW5kcyBTZWdtZW50UHJvcHMge1xuICBjb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgYnVpbGRQYXRoOiBzdHJpbmc7XG4gIGlucHV0OiBBcnRpZmFjdCB8IEFydGlmYWN0W107XG4gIG91dHB1dD86IEFydGlmYWN0O1xuICBtYW51YWxBcHJvdmFsPzogQm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFBpcGVsaW5lU2VnbWVudCBleHRlbmRzIFNlZ21lbnQge1xuICByZWFkb25seSBpc1BpcGVsaW5lOiBib29sZWFuID0gdHJ1ZTtcbiAgcmVhZG9ubHkgcHJvcHM6IFBpcGVsaW5lU2VnbWVudFByb3BzO1xuICByZWFkb25seSBpbnB1dDogQXJ0aWZhY3QgfCBBcnRpZmFjdFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBQaXBlbGluZVNlZ21lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmlucHV0ID0gcHJvcHMuaW5wdXQ7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgYnVpbGQoc2NvcGU6IFN0YWNrKTogU3RhY2tTZWdtZW50QnVpbGQge1xuICAgIHJldHVybiBuZXcgU3RhY2tTZWdtZW50QnVpbGQoc2NvcGUsIGBEZXBsb3kke3Njb3BlLnN0YWNrTmFtZX1gLCB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgc3RhY2s6IHNjb3BlLFxuICAgICAgaW5wdXQ6XG4gICAgICAgIHRoaXMuaW5wdXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJBcnJheVwiXG4gICAgICAgICAgPyAodGhpcy5pbnB1dCBhcyBBcnRpZmFjdFtdKVswXVxuICAgICAgICAgIDogKHRoaXMuaW5wdXQgYXMgQXJ0aWZhY3QpLFxuICAgICAgZXh0cmFJbnB1dHM6XG4gICAgICAgIHRoaXMuaW5wdXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJBcnJheVwiXG4gICAgICAgICAgPyAodGhpcy5pbnB1dCBhcyBBcnRpZmFjdFtdKS5zbGljZSgxKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { Stack, StackProps } from "aws-cdk-lib";
2
+ import { Construct } from "constructs";
3
+ import { Segment } from "./segment";
4
+ export interface PipelineProps extends StackProps {
5
+ pipelineName: string;
6
+ segments: Segment[];
7
+ }
8
+ export declare class Pipeline extends Stack {
9
+ constructor(scope: Construct, id: string, props: PipelineProps);
10
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pipeline = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
6
+ class Pipeline extends aws_cdk_lib_1.Stack {
7
+ constructor(scope, id, props) {
8
+ super(scope, id, props);
9
+ if (!this.bundlingRequired)
10
+ return;
11
+ const sourceSegments = props.segments.filter((segment) => segment.isSource);
12
+ const pipelineSegment = props.segments.find((segment) => segment.isPipeline);
13
+ const segments = props.segments.filter((segment) => !segment.isSource && !segment.isPipeline);
14
+ new aws_codepipeline_1.Pipeline(this, "Pipeline", {
15
+ pipelineName: props.pipelineName,
16
+ restartExecutionOnUpdate: true,
17
+ stages: [
18
+ {
19
+ stageName: "Source",
20
+ actions: [
21
+ ...sourceSegments.reduce((actions, segment) => [
22
+ ...actions,
23
+ ...segment.build(this).actions,
24
+ ], []),
25
+ ],
26
+ },
27
+ {
28
+ stageName: "Pipeline",
29
+ actions: [...pipelineSegment.build(this).actions],
30
+ },
31
+ ...segments.map((segment) => {
32
+ const build = segment.build(this);
33
+ return {
34
+ stageName: build.name,
35
+ actions: build.actions,
36
+ };
37
+ }),
38
+ ],
39
+ });
40
+ }
41
+ }
42
+ exports.Pipeline = Pipeline;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdEO0FBRWhELG1FQUlzQztBQWN0QyxNQUFhLFFBQVMsU0FBUSxtQkFBSztJQUNqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVuQyxNQUFNLGNBQWMsR0FBb0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQzNELENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDcEIsQ0FBQztRQUVyQixNQUFNLGVBQWUsR0FBZ0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3RFLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDdEIsQ0FBQztRQUVyQixNQUFNLFFBQVEsR0FBYyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUMvRCxDQUFDO1FBRUYsSUFBSSwyQkFBVyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsTUFBTSxFQUFFO2dCQUNOO29CQUNFLFNBQVMsRUFBRSxRQUFRO29CQUNuQixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUN0QixDQUFDLE9BQWtCLEVBQUUsT0FBc0IsRUFBRSxFQUFFLENBQUM7NEJBQzlDLEdBQUcsT0FBTzs0QkFDVixHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTzt5QkFDL0IsRUFDRCxFQUFFLENBQ0g7cUJBQ0Y7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsU0FBUyxFQUFFLFVBQVU7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7aUJBQ2xEO2dCQUNELEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtvQkFDbkMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEMsT0FBTzt3QkFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7d0JBQ3JCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztxQkFDdkIsQ0FBQztnQkFDSixDQUFDLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhERCw0QkFnREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIFBpcGVsaW5lIGFzIEF3c1BpcGVsaW5lLFxuICBJQWN0aW9uLFxuICBTdGFnZVByb3BzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdFwiO1xuXG5pbXBvcnQgeyBTZWdtZW50IH0gZnJvbSBcIi4vc2VnbWVudFwiO1xuaW1wb3J0IHsgU291cmNlU2VnbWVudCB9IGZyb20gXCIuL3NvdXJjZS1zZWdtZW50XCI7XG5pbXBvcnQgeyBQaXBlbGluZVNlZ21lbnQgfSBmcm9tIFwiLi9waXBlbGluZS1zZWdtZW50XCI7XG5pbXBvcnQgeyBTdGFja1NlZ21lbnQgfSBmcm9tIFwiLi9zdGFjay1zZWdtZW50XCI7XG5pbXBvcnQgeyBBcnRpZmFjdCB9IGZyb20gXCIuL2FydGlmYWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBwaXBlbGluZU5hbWU6IHN0cmluZztcbiAgc2VnbWVudHM6IFNlZ21lbnRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFBpcGVsaW5lIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCF0aGlzLmJ1bmRsaW5nUmVxdWlyZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHNvdXJjZVNlZ21lbnRzOiBTb3VyY2VTZWdtZW50W10gPSBwcm9wcy5zZWdtZW50cy5maWx0ZXIoXG4gICAgICAoc2VnbWVudDogU2VnbWVudCkgPT4gc2VnbWVudC5pc1NvdXJjZVxuICAgICkgYXMgU291cmNlU2VnbWVudFtdO1xuXG4gICAgY29uc3QgcGlwZWxpbmVTZWdtZW50OiBQaXBlbGluZVNlZ21lbnQgfCB1bmRlZmluZWQgPSBwcm9wcy5zZWdtZW50cy5maW5kKFxuICAgICAgKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHNlZ21lbnQuaXNQaXBlbGluZVxuICAgICkgYXMgUGlwZWxpbmVTZWdtZW50O1xuXG4gICAgY29uc3Qgc2VnbWVudHM6IFNlZ21lbnRbXSA9IHByb3BzLnNlZ21lbnRzLmZpbHRlcihcbiAgICAgIChzZWdtZW50OiBTZWdtZW50KSA9PiAhc2VnbWVudC5pc1NvdXJjZSAmJiAhc2VnbWVudC5pc1BpcGVsaW5lXG4gICAgKTtcblxuICAgIG5ldyBBd3NQaXBlbGluZSh0aGlzLCBcIlBpcGVsaW5lXCIsIHtcbiAgICAgIHBpcGVsaW5lTmFtZTogcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgcmVzdGFydEV4ZWN1dGlvbk9uVXBkYXRlOiB0cnVlLFxuICAgICAgc3RhZ2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFnZU5hbWU6IFwiU291cmNlXCIsXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgLi4uc291cmNlU2VnbWVudHMucmVkdWNlKFxuICAgICAgICAgICAgICAoYWN0aW9uczogSUFjdGlvbltdLCBzZWdtZW50OiBTb3VyY2VTZWdtZW50KSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uYWN0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5zZWdtZW50LmJ1aWxkKHRoaXMpLmFjdGlvbnMsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFtdXG4gICAgICAgICAgICApLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFnZU5hbWU6IFwiUGlwZWxpbmVcIixcbiAgICAgICAgICBhY3Rpb25zOiBbLi4ucGlwZWxpbmVTZWdtZW50LmJ1aWxkKHRoaXMpLmFjdGlvbnNdLFxuICAgICAgICB9LFxuICAgICAgICAuLi5zZWdtZW50cy5tYXAoKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBidWlsZCA9IHNlZ21lbnQuYnVpbGQodGhpcyk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YWdlTmFtZTogYnVpbGQubmFtZSxcbiAgICAgICAgICAgIGFjdGlvbnM6IGJ1aWxkLmFjdGlvbnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
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
+ actionName: string;
6
+ input: Artifact;
7
+ manifestPath: string;
8
+ 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
+ }
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PublishAssetsAction = void 0;
7
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
8
+ const constructs_1 = require("constructs");
9
+ const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
10
+ const aws_codepipeline_actions_1 = require("aws-cdk-lib/aws-codepipeline-actions");
11
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
12
+ const path_1 = __importDefault(require("path"));
13
+ class PublishAssetsAction extends constructs_1.Construct {
14
+ actionProperties;
15
+ bound(scope, stage, options) {
16
+ throw new Error("Method not implemented.");
17
+ }
18
+ bind(scope, stage, options) {
19
+ throw new Error("Method not implemented.");
20
+ }
21
+ onStateChange(name, target, options) {
22
+ throw new Error("Method not implemented.");
23
+ }
24
+ constructor(scope, id, props) {
25
+ super(scope, id);
26
+ const codeBuild = new aws_codepipeline_actions_1.CodeBuildAction({
27
+ ...props,
28
+ input: props.input,
29
+ project: new aws_codebuild_1.Project(this, id, {
30
+ environment: {
31
+ buildImage: aws_codebuild_1.LinuxBuildImage.AMAZON_LINUX_2_4,
32
+ },
33
+ role: new aws_iam_1.Role(this, "UpdatePipelineCodeCuildRole", {
34
+ 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)),
35
+ inlinePolicies: {
36
+ selfMutation: new aws_iam_1.PolicyDocument({
37
+ statements: [
38
+ new aws_iam_1.PolicyStatement({
39
+ actions: ["sts:AssumeRole"],
40
+ resources: [`arn:*:iam::${aws_cdk_lib_1.Stack.of(this).account}:role/*`],
41
+ conditions: {
42
+ "ForAnyValue:StringEquals": {
43
+ "iam:ResourceTag/aws-cdk:bootstrap-role": [
44
+ "image-publishing",
45
+ "file-publishing",
46
+ "deploy",
47
+ ],
48
+ },
49
+ },
50
+ }),
51
+ ],
52
+ }),
53
+ },
54
+ }),
55
+ buildSpec: aws_codebuild_1.BuildSpec.fromObject({
56
+ version: "0.2",
57
+ phases: {
58
+ install: {
59
+ "runtime-versions": {
60
+ nodejs: 16,
61
+ },
62
+ commands: [
63
+ "npm install -g npm@latest",
64
+ "npm i -g @flit/publish-cdk-assets@latest",
65
+ ],
66
+ },
67
+ build: {
68
+ commands: `pca ${props.manifestPath ? path_1.default.normalize(props.manifestPath) : "."}`,
69
+ },
70
+ },
71
+ }),
72
+ }),
73
+ });
74
+ this.actionProperties = codeBuild.actionProperties;
75
+ this.bind = (scope, stage, options) => codeBuild.bind(scope, stage, options);
76
+ this.onStateChange = (name, target, options) => codeBuild.onStateChange(name, target, options);
77
+ }
78
+ }
79
+ exports.PublishAssetsAction = PublishAssetsAction;
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1hc3NldHMtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B1Ymxpc2gtYXNzZXRzLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2Q0FBb0M7QUFDcEMsMkNBQXVDO0FBU3ZDLDZEQUFnRjtBQUNoRixtRkFBdUU7QUFDdkUsaURBTzZCO0FBQzdCLGdEQUF3QjtBQVV4QixNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBQ2hDLGdCQUFnQixDQUFtQjtJQUVuRCxLQUFLLENBQ0gsS0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE9BQTBCO1FBRTFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxDQUNGLEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUEwQjtRQUUxQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGFBQWEsQ0FDWCxJQUFZLEVBQ1osTUFBZ0MsRUFDaEMsT0FBK0I7UUFFL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSwwQ0FBZSxDQUFDO1lBQ3BDLEdBQUcsS0FBSztZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixPQUFPLEVBQUUsSUFBSSx1QkFBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7Z0JBQzdCLFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsK0JBQWUsQ0FBQyxnQkFBZ0I7aUJBQzdDO2dCQUNELElBQUksRUFBRSxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUsNkJBQTZCLEVBQUU7b0JBQ2xELFNBQVMsRUFBRSxJQUFJLDRCQUFrQixDQUMvQixJQUFJLDBCQUFnQixDQUFDLHlCQUF5QixDQUFDLEVBQy9DLElBQUksMEJBQWdCLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQzdDO29CQUNELGNBQWMsRUFBRTt3QkFDZCxZQUFZLEVBQUUsSUFBSSx3QkFBYyxDQUFDOzRCQUMvQixVQUFVLEVBQUU7Z0NBQ1YsSUFBSSx5QkFBZSxDQUFDO29DQUNsQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQ0FDM0IsU0FBUyxFQUFFLENBQUMsY0FBYyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQztvQ0FDMUQsVUFBVSxFQUFFO3dDQUNWLDBCQUEwQixFQUFFOzRDQUMxQix3Q0FBd0MsRUFBRTtnREFDeEMsa0JBQWtCO2dEQUNsQixpQkFBaUI7Z0RBQ2pCLFFBQVE7NkNBQ1Q7eUNBQ0Y7cUNBQ0Y7aUNBQ0YsQ0FBQzs2QkFDSDt5QkFDRixDQUFDO3FCQUNIO2lCQUNGLENBQUM7Z0JBQ0YsU0FBUyxFQUFFLHlCQUFTLENBQUMsVUFBVSxDQUFDO29CQUM5QixPQUFPLEVBQUUsS0FBSztvQkFDZCxNQUFNLEVBQUU7d0JBQ04sT0FBTyxFQUFFOzRCQUNQLGtCQUFrQixFQUFFO2dDQUNsQixNQUFNLEVBQUUsRUFBRTs2QkFDWDs0QkFDRCxRQUFRLEVBQUU7Z0NBQ1IsMkJBQTJCO2dDQUMzQiwwQ0FBMEM7NkJBQzNDO3lCQUNGO3dCQUNELEtBQUssRUFBRTs0QkFDTCxRQUFRLEVBQUUsT0FDUixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDNUQsRUFBRTt5QkFDSDtxQkFDRjtpQkFDRixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUNWLEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUEwQixFQUNaLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUNuQixJQUFZLEVBQ1osTUFBb0IsRUFDcEIsT0FBbUIsRUFDYixFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQS9GRCxrREErRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFjdGlvbkJpbmRPcHRpb25zLFxuICBBY3Rpb25Db25maWcsXG4gIEFjdGlvblByb3BlcnRpZXMsXG4gIEFydGlmYWN0LFxuICBJQWN0aW9uLFxuICBJU3RhZ2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQgeyBCdWlsZFNwZWMsIExpbnV4QnVpbGRJbWFnZSwgUHJvamVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBDb2RlQnVpbGRBY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQge1xuICBBY2NvdW50UHJpbmNpcGFsLFxuICBDb21wb3NpdGVQcmluY2lwYWwsXG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnQsXG4gIFJvbGUsXG4gIFNlcnZpY2VQcmluY2lwYWwsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgSVJ1bGVUYXJnZXQsIFJ1bGVQcm9wcywgUnVsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFzc2V0c0FjdGlvblByb3BzIHtcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICBpbnB1dDogQXJ0aWZhY3Q7XG4gIG1hbmlmZXN0UGF0aDogc3RyaW5nO1xuICBydW5PcmRlcj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFB1Ymxpc2hBc3NldHNBY3Rpb24gZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvblByb3BlcnRpZXM6IEFjdGlvblByb3BlcnRpZXM7XG5cbiAgYm91bmQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBzdGFnZTogSVN0YWdlLFxuICAgIG9wdGlvbnM6IEFjdGlvbkJpbmRPcHRpb25zXG4gICk6IEFjdGlvbkNvbmZpZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gIH1cblxuICBiaW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc3RhZ2U6IElTdGFnZSxcbiAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICApOiBBY3Rpb25Db25maWcge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICB9XG5cbiAgb25TdGF0ZUNoYW5nZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdGFyZ2V0PzogSVJ1bGVUYXJnZXQgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IFJ1bGVQcm9wcyB8IHVuZGVmaW5lZFxuICApOiBSdWxlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdWJsaXNoQXNzZXRzQWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGNvZGVCdWlsZCA9IG5ldyBDb2RlQnVpbGRBY3Rpb24oe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBpbnB1dDogcHJvcHMuaW5wdXQsXG4gICAgICBwcm9qZWN0OiBuZXcgUHJvamVjdCh0aGlzLCBpZCwge1xuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIGJ1aWxkSW1hZ2U6IExpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl80LFxuICAgICAgICB9LFxuICAgICAgICByb2xlOiBuZXcgUm9sZSh0aGlzLCBcIlVwZGF0ZVBpcGVsaW5lQ29kZUN1aWxkUm9sZVwiLCB7XG4gICAgICAgICAgYXNzdW1lZEJ5OiBuZXcgQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgICAgICAgICAgbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJjb2RlYnVpbGQuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgICAgICAgIG5ldyBBY2NvdW50UHJpbmNpcGFsKFN0YWNrLm9mKHRoaXMpLmFjY291bnQpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICAgICAgc2VsZk11dGF0aW9uOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJzdHM6QXNzdW1lUm9sZVwiXSxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlczogW2Bhcm46KjppYW06OiR7U3RhY2sub2YodGhpcykuYWNjb3VudH06cm9sZS8qYF0sXG4gICAgICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImlhbTpSZXNvdXJjZVRhZy9hd3MtY2RrOmJvb3RzdHJhcC1yb2xlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW1hZ2UtcHVibGlzaGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlLXB1Ymxpc2hpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVwbG95XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgYnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgICAgdmVyc2lvbjogXCIwLjJcIixcbiAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgXCJydW50aW1lLXZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBub2RlanM6IDE2LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICAgICAgIFwibnBtIGluc3RhbGwgLWcgbnBtQGxhdGVzdFwiLFxuICAgICAgICAgICAgICAgIFwibnBtIGkgLWcgQGZsaXQvcHVibGlzaC1jZGstYXNzZXRzQGxhdGVzdFwiLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1aWxkOiB7XG4gICAgICAgICAgICAgIGNvbW1hbmRzOiBgcGNhICR7XG4gICAgICAgICAgICAgICAgcHJvcHMubWFuaWZlc3RQYXRoID8gcGF0aC5ub3JtYWxpemUocHJvcHMubWFuaWZlc3RQYXRoKSA6IFwiLlwiXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hY3Rpb25Qcm9wZXJ0aWVzID0gY29kZUJ1aWxkLmFjdGlvblByb3BlcnRpZXM7XG4gICAgdGhpcy5iaW5kID0gKFxuICAgICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICAgIHN0YWdlOiBJU3RhZ2UsXG4gICAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICAgICk6IEFjdGlvbkNvbmZpZyA9PiBjb2RlQnVpbGQuYmluZChzY29wZSwgc3RhZ2UsIG9wdGlvbnMpO1xuICAgIHRoaXMub25TdGF0ZUNoYW5nZSA9IChcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIHRhcmdldD86IElSdWxlVGFyZ2V0LFxuICAgICAgb3B0aW9ucz86IFJ1bGVQcm9wc1xuICAgICk6IFJ1bGUgPT4gY29kZUJ1aWxkLm9uU3RhdGVDaGFuZ2UobmFtZSwgdGFyZ2V0LCBvcHRpb25zKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Stack } from "aws-cdk-lib";
2
+ import { Construct } from "constructs";
3
+ import { IAction } from "aws-cdk-lib/aws-codepipeline";
4
+ import { Artifact } from "./artifact";
5
+ export interface SegmentProps {
6
+ input?: Artifact | Artifact[];
7
+ output?: Artifact | Artifact[];
8
+ }
9
+ export declare class Segment {
10
+ readonly isSource: boolean;
11
+ readonly isPipeline: boolean;
12
+ dependencies?: Stack[];
13
+ readonly inputs?: Artifact[];
14
+ readonly outputs?: Artifact[];
15
+ constructor(props: SegmentProps);
16
+ build(scope: Construct): ISegmentBuild;
17
+ }
18
+ export interface ISegmentBuild {
19
+ readonly name: string;
20
+ readonly actions: IAction[];
21
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Segment = void 0;
4
+ class Segment {
5
+ isSource = false;
6
+ isPipeline = false;
7
+ dependencies;
8
+ inputs;
9
+ outputs;
10
+ constructor(props) {
11
+ if (props.input) {
12
+ this.inputs = (props.input.constructor.name === "Array" ? props.input : [props.input]);
13
+ }
14
+ if (props.output) {
15
+ this.outputs = (props.output.constructor.name === "Array"
16
+ ? props.output
17
+ : [props.output]);
18
+ this.outputs.forEach((artifact) => {
19
+ artifact.produce(this);
20
+ }, this);
21
+ }
22
+ }
23
+ build(scope) {
24
+ throw new Error("Method not implemented.");
25
+ }
26
+ }
27
+ exports.Segment = Segment;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBLE1BQWEsT0FBTztJQUNULFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUNyQyxZQUFZLENBQVc7SUFDZCxNQUFNLENBQWM7SUFDcEIsT0FBTyxDQUFjO0lBQzlCLFlBQVksS0FBbUI7UUFDN0IsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUNaLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUN6RCxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FDYixLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssT0FBTztnQkFDdkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUNkLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FDTCxDQUFDO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO2dCQUMxQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNWO0lBQ0gsQ0FBQztJQUNELEtBQUssQ0FBQyxLQUFnQjtRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBMUJELDBCQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSUFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5cbmltcG9ydCB7IEFydGlmYWN0IH0gZnJvbSBcIi4vYXJ0aWZhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZWdtZW50UHJvcHMge1xuICBpbnB1dD86IEFydGlmYWN0IHwgQXJ0aWZhY3RbXTtcbiAgb3V0cHV0PzogQXJ0aWZhY3QgfCBBcnRpZmFjdFtdO1xufVxuXG5leHBvcnQgY2xhc3MgU2VnbWVudCB7XG4gIHJlYWRvbmx5IGlzU291cmNlOiBib29sZWFuID0gZmFsc2U7XG4gIHJlYWRvbmx5IGlzUGlwZWxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGVwZW5kZW5jaWVzPzogU3RhY2tbXTtcbiAgcmVhZG9ubHkgaW5wdXRzPzogQXJ0aWZhY3RbXTtcbiAgcmVhZG9ubHkgb3V0cHV0cz86IEFydGlmYWN0W107XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTZWdtZW50UHJvcHMpIHtcbiAgICBpZiAocHJvcHMuaW5wdXQpIHtcbiAgICAgIHRoaXMuaW5wdXRzID0gKFxuICAgICAgICBwcm9wcy5pbnB1dC5jb25zdHJ1Y3Rvci5uYW1lID09PSBcIkFycmF5XCIgPyBwcm9wcy5pbnB1dCA6IFtwcm9wcy5pbnB1dF1cbiAgICAgICkgYXMgQXJ0aWZhY3RbXTtcbiAgICB9XG4gICAgaWYgKHByb3BzLm91dHB1dCkge1xuICAgICAgdGhpcy5vdXRwdXRzID0gKFxuICAgICAgICBwcm9wcy5vdXRwdXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJBcnJheVwiXG4gICAgICAgICAgPyBwcm9wcy5vdXRwdXRcbiAgICAgICAgICA6IFtwcm9wcy5vdXRwdXRdXG4gICAgICApIGFzIEFydGlmYWN0W107XG4gICAgICB0aGlzLm91dHB1dHMuZm9yRWFjaCgoYXJ0aWZhY3Q6IEFydGlmYWN0KSA9PiB7XG4gICAgICAgIGFydGlmYWN0LnByb2R1Y2UodGhpcyk7XG4gICAgICB9LCB0aGlzKTtcbiAgICB9XG4gIH1cbiAgYnVpbGQoc2NvcGU6IENvbnN0cnVjdCk6IElTZWdtZW50QnVpbGQge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlZ21lbnRCdWlsZCB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWN0aW9uczogSUFjdGlvbltdO1xufVxuIl19
@@ -0,0 +1,28 @@
1
+ import { Construct } from "constructs";
2
+ import { IAction } from "aws-cdk-lib/aws-codepipeline";
3
+ import { GitHubSourceActionProps } from "aws-cdk-lib/aws-codepipeline-actions";
4
+ import { Artifact } from "./artifact";
5
+ import { Segment, SegmentProps, ISegmentBuild } from "./segment";
6
+ export interface SourceSegmentProps extends SegmentProps {
7
+ output: Artifact;
8
+ }
9
+ export declare class SourceSegment extends Segment {
10
+ readonly isSource: boolean;
11
+ constructor(props: SourceSegmentProps);
12
+ }
13
+ export interface GitHubSourceSegmentProps extends SourceSegmentProps, GitHubSourceActionProps {
14
+ output: Artifact;
15
+ }
16
+ export declare class GitHubSourceSegment extends SourceSegment {
17
+ private props;
18
+ constructor(props: GitHubSourceSegmentProps);
19
+ build(scope: Construct): GitHubSourceSegmentBuild;
20
+ }
21
+ export interface GitHubSourceSegmentBuildProps extends GitHubSourceActionProps {
22
+ output: Artifact;
23
+ }
24
+ export declare class GitHubSourceSegmentBuild extends Construct implements ISegmentBuild {
25
+ name: string;
26
+ actions: IAction[];
27
+ constructor(scope: Construct, id: string, props: GitHubSourceSegmentBuildProps);
28
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitHubSourceSegmentBuild = exports.GitHubSourceSegment = exports.SourceSegment = void 0;
4
+ const constructs_1 = require("constructs");
5
+ const aws_codepipeline_actions_1 = require("aws-cdk-lib/aws-codepipeline-actions");
6
+ const segment_1 = require("./segment");
7
+ class SourceSegment extends segment_1.Segment {
8
+ isSource = true;
9
+ constructor(props) {
10
+ super(props);
11
+ }
12
+ }
13
+ exports.SourceSegment = SourceSegment;
14
+ class GitHubSourceSegment extends SourceSegment {
15
+ props;
16
+ constructor(props) {
17
+ super(props);
18
+ this.props = props;
19
+ }
20
+ build(scope) {
21
+ return new GitHubSourceSegmentBuild(scope, this.props.repo, this.props);
22
+ }
23
+ }
24
+ exports.GitHubSourceSegment = GitHubSourceSegment;
25
+ class GitHubSourceSegmentBuild extends constructs_1.Construct {
26
+ name;
27
+ actions;
28
+ constructor(scope, id, props) {
29
+ super(scope, id);
30
+ this.actions = [new aws_codepipeline_actions_1.GitHubSourceAction(props)];
31
+ }
32
+ }
33
+ exports.GitHubSourceSegmentBuild = GitHubSourceSegmentBuild;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXNlZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc291cmNlLXNlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXVDO0FBRXZDLG1GQU84QztBQUs5Qyx1Q0FBaUU7QUFNakUsTUFBYSxhQUFjLFNBQVEsaUJBQU87SUFDL0IsUUFBUSxHQUFZLElBQUksQ0FBQztJQUNsQyxZQUFZLEtBQXlCO1FBQ25DLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7Q0FDRjtBQUxELHNDQUtDO0FBUUQsTUFBYSxtQkFBb0IsU0FBUSxhQUFhO0lBQzVDLEtBQUssQ0FBMkI7SUFDeEMsWUFBWSxLQUErQjtRQUN6QyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBQ0QsS0FBSyxDQUFDLEtBQWdCO1FBQ3BCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRjtBQVRELGtEQVNDO0FBTUQsTUFBYSx3QkFDWCxTQUFRLHNCQUFTO0lBR2pCLElBQUksQ0FBUztJQUNiLE9BQU8sQ0FBWTtJQUVuQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFvQztRQUVwQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLDZDQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBaEJELDREQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSUFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQge1xuICBDb2RlQ29tbWl0U291cmNlQWN0aW9uLFxuICBDb2RlU3RhckNvbm5lY3Rpb25zU291cmNlQWN0aW9uLFxuICBFY3JTb3VyY2VBY3Rpb24sXG4gIEdpdEh1YlNvdXJjZUFjdGlvbixcbiAgR2l0SHViU291cmNlQWN0aW9uUHJvcHMsXG4gIFMzU291cmNlQWN0aW9uLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBQdWJsaXNoQXNzZXRzQWN0aW9uIH0gZnJvbSBcIi4vcHVibGlzaC1hc3NldHMtYWN0aW9uXCI7XG5pbXBvcnQgeyBBcnRpZmFjdCB9IGZyb20gXCIuL2FydGlmYWN0XCI7XG5pbXBvcnQgeyBTZWdtZW50LCBTZWdtZW50UHJvcHMsIElTZWdtZW50QnVpbGQgfSBmcm9tIFwiLi9zZWdtZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VnbWVudFByb3BzIGV4dGVuZHMgU2VnbWVudFByb3BzIHtcbiAgb3V0cHV0OiBBcnRpZmFjdDtcbn1cblxuZXhwb3J0IGNsYXNzIFNvdXJjZVNlZ21lbnQgZXh0ZW5kcyBTZWdtZW50IHtcbiAgcmVhZG9ubHkgaXNTb3VyY2U6IGJvb2xlYW4gPSB0cnVlO1xuICBjb25zdHJ1Y3Rvcihwcm9wczogU291cmNlU2VnbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViU291cmNlU2VnbWVudFByb3BzXG4gIGV4dGVuZHMgU291cmNlU2VnbWVudFByb3BzLFxuICAgIEdpdEh1YlNvdXJjZUFjdGlvblByb3BzIHtcbiAgb3V0cHV0OiBBcnRpZmFjdDtcbn1cblxuZXhwb3J0IGNsYXNzIEdpdEh1YlNvdXJjZVNlZ21lbnQgZXh0ZW5kcyBTb3VyY2VTZWdtZW50IHtcbiAgcHJpdmF0ZSBwcm9wczogR2l0SHViU291cmNlU2VnbWVudFByb3BzO1xuICBjb25zdHJ1Y3Rvcihwcm9wczogR2l0SHViU291cmNlU2VnbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxuICBidWlsZChzY29wZTogQ29uc3RydWN0KTogR2l0SHViU291cmNlU2VnbWVudEJ1aWxkIHtcbiAgICByZXR1cm4gbmV3IEdpdEh1YlNvdXJjZVNlZ21lbnRCdWlsZChzY29wZSwgdGhpcy5wcm9wcy5yZXBvLCB0aGlzLnByb3BzKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdpdEh1YlNvdXJjZVNlZ21lbnRCdWlsZFByb3BzIGV4dGVuZHMgR2l0SHViU291cmNlQWN0aW9uUHJvcHMge1xuICBvdXRwdXQ6IEFydGlmYWN0O1xufVxuXG5leHBvcnQgY2xhc3MgR2l0SHViU291cmNlU2VnbWVudEJ1aWxkXG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgSVNlZ21lbnRCdWlsZFxue1xuICBuYW1lOiBzdHJpbmc7XG4gIGFjdGlvbnM6IElBY3Rpb25bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdpdEh1YlNvdXJjZVNlZ21lbnRCdWlsZFByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmFjdGlvbnMgPSBbbmV3IEdpdEh1YlNvdXJjZUFjdGlvbihwcm9wcyldO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Stack } from "aws-cdk-lib";
2
+ import { Construct } from "constructs";
3
+ import { IAction } from "aws-cdk-lib/aws-codepipeline";
4
+ import { Artifact } from "./artifact";
5
+ import { Segment, SegmentProps, ISegmentBuild } from "./segment";
6
+ export interface StackSegmentProps extends SegmentProps {
7
+ stack: Stack;
8
+ command: string | string[];
9
+ buildPath: string;
10
+ input: Artifact | Artifact[];
11
+ output?: Artifact;
12
+ manualApproval?: Boolean;
13
+ }
14
+ export declare class StackSegment extends Segment {
15
+ readonly props: StackSegmentProps;
16
+ readonly input: Artifact | Artifact[];
17
+ constructor(props: StackSegmentProps);
18
+ build(scope: Construct): StackSegmentBuild;
19
+ }
20
+ export interface StackSegmentBuildProps {
21
+ stack: Stack;
22
+ command: string | string[];
23
+ buildPath: string;
24
+ input: Artifact;
25
+ extraInputs?: Artifact[];
26
+ output?: Artifact;
27
+ manualApproval?: Boolean;
28
+ }
29
+ export declare class StackSegmentBuild extends Construct implements ISegmentBuild {
30
+ name: string;
31
+ actions: IAction[];
32
+ constructor(scope: Construct, id: string, props: StackSegmentBuildProps);
33
+ }
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StackSegmentBuild = exports.StackSegment = void 0;
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 path_1 = __importDefault(require("path"));
11
+ const publish_assets_action_1 = require("./publish-assets-action");
12
+ const artifact_1 = require("./artifact");
13
+ const segment_1 = require("./segment");
14
+ class StackSegment extends segment_1.Segment {
15
+ props;
16
+ input;
17
+ constructor(props) {
18
+ super(props);
19
+ this.input = props.input;
20
+ this.props = props;
21
+ }
22
+ build(scope) {
23
+ return new StackSegmentBuild(scope, `Deploy${this.props.stack.stackName}`, {
24
+ ...this.props,
25
+ input: this.input.constructor.name === "Array"
26
+ ? this.input[0]
27
+ : this.input,
28
+ extraInputs: this.input.constructor.name === "Array"
29
+ ? this.input.slice(1)
30
+ : undefined,
31
+ });
32
+ }
33
+ }
34
+ exports.StackSegment = StackSegment;
35
+ class StackSegmentBuild extends constructs_1.Construct {
36
+ name;
37
+ actions;
38
+ constructor(scope, id, props) {
39
+ super(scope, id);
40
+ this.name = props.stack.stackName;
41
+ const buildArtifact = new artifact_1.Artifact();
42
+ this.actions = [
43
+ new aws_codepipeline_actions_1.CodeBuildAction({
44
+ actionName: "Build",
45
+ runOrder: 1,
46
+ input: props.input,
47
+ extraInputs: props.extraInputs,
48
+ outputs: [buildArtifact],
49
+ project: new aws_codebuild_1.Project(this, "UpdateCodeBuild", {
50
+ environment: {
51
+ computeType: aws_codebuild_1.ComputeType.MEDIUM,
52
+ buildImage: aws_codebuild_1.LinuxBuildImage.AMAZON_LINUX_2_4,
53
+ privileged: true,
54
+ },
55
+ buildSpec: aws_codebuild_1.BuildSpec.fromObject({
56
+ version: "0.2",
57
+ phases: {
58
+ install: {
59
+ "runtime-versions": {
60
+ docker: 20,
61
+ nodejs: 16,
62
+ },
63
+ commands: ["npm ci"],
64
+ },
65
+ build: {
66
+ commands: props.command,
67
+ },
68
+ },
69
+ artifacts: {
70
+ files: [path_1.default.join(props.buildPath, "**/*")],
71
+ },
72
+ cache: {
73
+ paths: ["/root/.npm/**/*"],
74
+ },
75
+ }),
76
+ }),
77
+ }),
78
+ new publish_assets_action_1.PublishAssetsAction(this, "PublishAssets", {
79
+ actionName: "PublishAssets",
80
+ runOrder: 2,
81
+ input: buildArtifact,
82
+ manifestPath: props.buildPath,
83
+ }),
84
+ new aws_codepipeline_actions_1.CloudFormationCreateReplaceChangeSetAction({
85
+ actionName: "PrepareChanges",
86
+ runOrder: 3,
87
+ stackName: props.stack.stackName,
88
+ changeSetName: `${props.stack.stackName}Changes`,
89
+ adminPermissions: true,
90
+ templatePath: buildArtifact.atPath(path_1.default.join(props.buildPath, props.stack.templateFile)),
91
+ }),
92
+ ...(props.manualApproval
93
+ ? [
94
+ new aws_codepipeline_actions_1.ManualApprovalAction({
95
+ actionName: "ApproveChanges",
96
+ runOrder: 4,
97
+ }),
98
+ ]
99
+ : []),
100
+ new aws_codepipeline_actions_1.CloudFormationExecuteChangeSetAction({
101
+ actionName: "ExecuteChanges",
102
+ runOrder: props.manualApproval ? 5 : 4,
103
+ stackName: props.stack.stackName,
104
+ changeSetName: `${props.stack.stackName}Changes`,
105
+ output: props.output,
106
+ outputFileName: props.output
107
+ ? `${props.stack.stackName}Output.json`
108
+ : undefined,
109
+ }),
110
+ ];
111
+ }
112
+ }
113
+ exports.StackSegmentBuild = StackSegmentBuild;
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFjay1zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDJDQUF1QztBQUN2Qyw2REFLbUM7QUFFbkMsbUZBSzhDO0FBQzlDLGdEQUF3QjtBQUV4QixtRUFBOEQ7QUFDOUQseUNBQXNDO0FBQ3RDLHVDQUFpRTtBQVdqRSxNQUFhLFlBQWEsU0FBUSxpQkFBTztJQUM5QixLQUFLLENBQW9CO0lBQ3pCLEtBQUssQ0FBd0I7SUFFdEMsWUFBWSxLQUF3QjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFnQjtRQUNwQixPQUFPLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDekUsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLEtBQUssRUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssT0FBTztnQkFDckMsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFvQixDQUFDLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFrQjtZQUM5QixXQUFXLEVBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLE9BQU87Z0JBQ3JDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsU0FBUztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2QkQsb0NBdUJDO0FBWUQsTUFBYSxpQkFBa0IsU0FBUSxzQkFB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RSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxTQUFTO2dCQUNoRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTTtvQkFDMUIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLGFBQWE7b0JBQ3ZDLENBQUMsQ0FBQyxTQUFTO2FBQ2QsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuRkQsOENBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBCdWlsZFNwZWMsXG4gIENvbXB1dGVUeXBlLFxuICBMaW51eEJ1aWxkSW1hZ2UsXG4gIFByb2plY3QsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBJQWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uQ3JlYXRlUmVwbGFjZUNoYW5nZVNldEFjdGlvbixcbiAgQ2xvdWRGb3JtYXRpb25FeGVjdXRlQ2hhbmdlU2V0QWN0aW9uLFxuICBDb2RlQnVpbGRBY3Rpb24sXG4gIE1hbnVhbEFwcHJvdmFsQWN0aW9uLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBQdWJsaXNoQXNzZXRzQWN0aW9uIH0gZnJvbSBcIi4vcHVibGlzaC1hc3NldHMtYWN0aW9uXCI7XG5pbXBvcnQgeyBBcnRpZmFjdCB9IGZyb20gXCIuL2FydGlmYWN0XCI7XG5pbXBvcnQgeyBTZWdtZW50LCBTZWdtZW50UHJvcHMsIElTZWdtZW50QnVpbGQgfSBmcm9tIFwiLi9zZWdtZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tTZWdtZW50UHJvcHMgZXh0ZW5kcyBTZWdtZW50UHJvcHMge1xuICBzdGFjazogU3RhY2s7XG4gIGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBidWlsZFBhdGg6IHN0cmluZztcbiAgaW5wdXQ6IEFydGlmYWN0IHwgQXJ0aWZhY3RbXTtcbiAgb3V0cHV0PzogQXJ0aWZhY3Q7XG4gIG1hbnVhbEFwcHJvdmFsPzogQm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrU2VnbWVudCBleHRlbmRzIFNlZ21lbnQge1xuICByZWFkb25seSBwcm9wczogU3RhY2tTZWdtZW50UHJvcHM7XG4gIHJlYWRvbmx5IGlucHV0OiBBcnRpZmFjdCB8IEFydGlmYWN0W107XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFN0YWNrU2VnbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuaW5wdXQgPSBwcm9wcy5pbnB1dDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cblxuICBidWlsZChzY29wZTogQ29uc3RydWN0KTogU3RhY2tTZWdtZW50QnVpbGQge1xuICAgIHJldHVybiBuZXcgU3RhY2tTZWdtZW50QnVpbGQoc2NvcGUsIGBEZXBsb3kke3RoaXMucHJvcHMuc3RhY2suc3RhY2tOYW1lfWAsIHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBpbnB1dDpcbiAgICAgICAgdGhpcy5pbnB1dC5jb25zdHJ1Y3Rvci5uYW1lID09PSBcIkFycmF5XCJcbiAgICAgICAgICA/ICh0aGlzLmlucHV0IGFzIEFydGlmYWN0W10pWzBdXG4gICAgICAgICAgOiAodGhpcy5pbnB1dCBhcyBBcnRpZmFjdCksXG4gICAgICBleHRyYUlucHV0czpcbiAgICAgICAgdGhpcy5pbnB1dC5jb25zdHJ1Y3Rvci5uYW1lID09PSBcIkFycmF5XCJcbiAgICAgICAgICA/ICh0aGlzLmlucHV0IGFzIEFydGlmYWN0W10pLnNsaWNlKDEpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlZ21lbnRCdWlsZFByb3BzIHtcbiAgc3RhY2s6IFN0YWNrO1xuICBjb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgYnVpbGRQYXRoOiBzdHJpbmc7XG4gIGlucHV0OiBBcnRpZmFjdDtcbiAgZXh0cmFJbnB1dHM/OiBBcnRpZmFjdFtdO1xuICBvdXRwdXQ/OiBBcnRpZmFjdDtcbiAgbWFudWFsQXBwcm92YWw/OiBCb29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tTZWdtZW50QnVpbGQgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJU2VnbWVudEJ1aWxkIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhY3Rpb25zOiBJQWN0aW9uW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YWNrU2VnbWVudEJ1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMuc3RhY2suc3RhY2tOYW1lO1xuXG4gICAgY29uc3QgYnVpbGRBcnRpZmFjdCA9IG5ldyBBcnRpZmFjdCgpO1xuXG4gICAgdGhpcy5hY3Rpb25zID0gW1xuICAgICAgbmV3IENvZGVCdWlsZEFjdGlvbih7XG4gICAgICAgIGFjdGlvbk5hbWU6IFwiQnVpbGRcIixcbiAgICAgICAgcnVuT3JkZXI6IDEsXG4gICAgICAgIGlucHV0OiBwcm9wcy5pbnB1dCxcbiAgICAgICAgZXh0cmFJbnB1dHM6IHByb3BzLmV4dHJhSW5wdXRzLFxuICAgICAgICBvdXRwdXRzOiBbYnVpbGRBcnRpZmFjdF0sXG4gICAgICAgIHByb2plY3Q6IG5ldyBQcm9qZWN0KHRoaXMsIFwiVXBkYXRlQ29kZUJ1aWxkXCIsIHtcbiAgICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgY29tcHV0ZVR5cGU6IENvbXB1dGVUeXBlLk1FRElVTSxcbiAgICAgICAgICAgIGJ1aWxkSW1hZ2U6IExpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl80LFxuICAgICAgICAgICAgcHJpdmlsZWdlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgdmVyc2lvbjogXCIwLjJcIixcbiAgICAgICAgICAgIHBoYXNlczoge1xuICAgICAgICAgICAgICBpbnN0YWxsOiB7XG4gICAgICAgICAgICAgICAgXCJydW50aW1lLXZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIGRvY2tlcjogMjAsXG4gICAgICAgICAgICAgICAgICBub2RlanM6IDE2LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29tbWFuZHM6IFtcIm5wbSBjaVwiXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBjb21tYW5kczogcHJvcHMuY29tbWFuZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhcnRpZmFjdHM6IHtcbiAgICAgICAgICAgICAgZmlsZXM6IFtwYXRoLmpvaW4ocHJvcHMuYnVpbGRQYXRoLCBcIioqLypcIildLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhY2hlOiB7XG4gICAgICAgICAgICAgIHBhdGhzOiBbXCIvcm9vdC8ubnBtLyoqLypcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgbmV3IFB1Ymxpc2hBc3NldHNBY3Rpb24odGhpcywgXCJQdWJsaXNoQXNzZXRzXCIsIHtcbiAgICAgICAgYWN0aW9uTmFtZTogXCJQdWJsaXNoQXNzZXRzXCIsXG4gICAgICAgIHJ1bk9yZGVyOiAyLFxuICAgICAgICBpbnB1dDogYnVpbGRBcnRpZmFjdCxcbiAgICAgICAgbWFuaWZlc3RQYXRoOiBwcm9wcy5idWlsZFBhdGgsXG4gICAgICB9KSxcbiAgICAgIG5ldyBDbG91ZEZvcm1hdGlvbkNyZWF0ZVJlcGxhY2VDaGFuZ2VTZXRBY3Rpb24oe1xuICAgICAgICBhY3Rpb25OYW1lOiBcIlByZXBhcmVDaGFuZ2VzXCIsXG4gICAgICAgIHJ1bk9yZGVyOiAzLFxuICAgICAgICBzdGFja05hbWU6IHByb3BzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgY2hhbmdlU2V0TmFtZTogYCR7cHJvcHMuc3RhY2suc3RhY2tOYW1lfUNoYW5nZXNgLFxuICAgICAgICBhZG1pblBlcm1pc3Npb25zOiB0cnVlLFxuICAgICAgICB0ZW1wbGF0ZVBhdGg6IGJ1aWxkQXJ0aWZhY3QuYXRQYXRoKFxuICAgICAgICAgIHBhdGguam9pbihwcm9wcy5idWlsZFBhdGgsIHByb3BzLnN0YWNrLnRlbXBsYXRlRmlsZSlcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHByb3BzLm1hbnVhbEFwcHJvdmFsXG4gICAgICAgID8gW1xuICAgICAgICAgICAgbmV3IE1hbnVhbEFwcHJvdmFsQWN0aW9uKHtcbiAgICAgICAgICAgICAgYWN0aW9uTmFtZTogXCJBcHByb3ZlQ2hhbmdlc1wiLFxuICAgICAgICAgICAgICBydW5PcmRlcjogNCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICBuZXcgQ2xvdWRGb3JtYXRpb25FeGVjdXRlQ2hhbmdlU2V0QWN0aW9uKHtcbiAgICAgICAgYWN0aW9uTmFtZTogXCJFeGVjdXRlQ2hhbmdlc1wiLFxuICAgICAgICBydW5PcmRlcjogcHJvcHMubWFudWFsQXBwcm92YWwgPyA1IDogNCxcbiAgICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFjay5zdGFja05hbWUsXG4gICAgICAgIGNoYW5nZVNldE5hbWU6IGAke3Byb3BzLnN0YWNrLnN0YWNrTmFtZX1DaGFuZ2VzYCxcbiAgICAgICAgb3V0cHV0OiBwcm9wcy5vdXRwdXQsXG4gICAgICAgIG91dHB1dEZpbGVOYW1lOiBwcm9wcy5vdXRwdXRcbiAgICAgICAgICA/IGAke3Byb3BzLnN0YWNrLnN0YWNrTmFtZX1PdXRwdXQuanNvbmBcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIH0pLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@flit/cdk-pipeline",
3
+ "version": "1.0.1",
4
+ "license": "Apache-2.0",
5
+ "description": "Jumper Systems' cdk library",
6
+ "homepage": "https://github.com/p-mercury/jumper-de",
7
+ "keywords": [
8
+ "aws",
9
+ "awscdk",
10
+ "codepipeline"
11
+ ],
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/p-mercury/jumper-de.git"
15
+ },
16
+ "bugs": "https://github.com/p-mercury/jumper-de/issues",
17
+ "main": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "scripts": {
23
+ "build": "npm run prepack",
24
+ "prepack": "rm -rf ./dist && tsc -b"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "dependencies": {
30
+ "@aws-appsync/utils": "^1.1.0",
31
+ "@aws-lambda-powertools/tracer": "^1.7.0",
32
+ "@types/jest": "29.5.0",
33
+ "@types/node": "18.15.5",
34
+ "aws-cdk": "2.69.0",
35
+ "aws-cdk-lib": "2.69.0",
36
+ "cdk-aws-lambda-powertools-layer": "^3.3.0",
37
+ "constructs": "10.1.285",
38
+ "jest": "29.5.0",
39
+ "ts-jest": "29.0.5",
40
+ "ts-node": "10.9.1",
41
+ "typescript": "5.0.2"
42
+ }
43
+ }