@flit/cdk-pipeline 1.0.3 → 1.0.5

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 CHANGED
@@ -5657,6 +5657,6 @@
5657
5657
  "symbolId": "src/stack-segment:StackSegmentProps"
5658
5658
  }
5659
5659
  },
5660
- "version": "1.0.3",
5661
- "fingerprint": "CW4PhCT3J39zxMsdtjthVgwyUfcU3Iji9+nB4jiwRo4="
5660
+ "version": "1.0.5",
5661
+ "fingerprint": "8GX9iC/Co4jpY2do4bm/dc5bYnk2w5KbX6sUwJRLKYg="
5662
5662
  }
@@ -0,0 +1,11 @@
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
+ private consumers;
6
+ constructor();
7
+ produce(producer: Segment): void;
8
+ consume(producer: Segment): void;
9
+ obtainProducer(): Segment | undefined;
10
+ obtainConsumers(): Segment[];
11
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Artifact = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
7
+ class Artifact extends aws_codepipeline_1.Artifact {
8
+ constructor() {
9
+ super();
10
+ this.consumers = [];
11
+ }
12
+ produce(producer) {
13
+ if (this.producer)
14
+ throw new Error("Artifact is already produced");
15
+ this.producer = producer;
16
+ }
17
+ consume(producer) {
18
+ this.consumers.push(producer);
19
+ }
20
+ obtainProducer() {
21
+ return this.producer;
22
+ }
23
+ obtainConsumers() {
24
+ return this.consumers;
25
+ }
26
+ }
27
+ _a = JSII_RTTI_SYMBOL_1;
28
+ Artifact[_a] = { fqn: "@flit/cdk-pipeline.Artifact", version: "1.0.5" };
29
+ exports.Artifact = Artifact;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtRUFBdUU7QUFJdkUsTUFBYSxRQUFTLFNBQVEsMkJBQVc7SUFHdkM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUZGLGNBQVMsR0FBYyxFQUFFLENBQUM7SUFHbEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPLENBQUMsUUFBaUI7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQzs7OztBQWxCVSw0QkFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFydGlmYWN0IGFzIEF3c0FydGlmYWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcblxuaW1wb3J0IHsgU2VnbWVudCB9IGZyb20gXCIuL3NlZ21lbnRcIjtcblxuZXhwb3J0IGNsYXNzIEFydGlmYWN0IGV4dGVuZHMgQXdzQXJ0aWZhY3Qge1xuICBwcml2YXRlIHByb2R1Y2VyPzogU2VnbWVudDtcbiAgcHJpdmF0ZSBjb25zdW1lcnM6IFNlZ21lbnRbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHByb2R1Y2UocHJvZHVjZXI6IFNlZ21lbnQpIHtcbiAgICBpZiAodGhpcy5wcm9kdWNlcikgdGhyb3cgbmV3IEVycm9yKFwiQXJ0aWZhY3QgaXMgYWxyZWFkeSBwcm9kdWNlZFwiKTtcbiAgICB0aGlzLnByb2R1Y2VyID0gcHJvZHVjZXI7XG4gIH1cbiAgY29uc3VtZShwcm9kdWNlcjogU2VnbWVudCkge1xuICAgIHRoaXMuY29uc3VtZXJzLnB1c2gocHJvZHVjZXIpO1xuICB9XG4gIG9idGFpblByb2R1Y2VyKCk6IFNlZ21lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y2VyO1xuICB9XG4gIG9idGFpbkNvbnN1bWVycygpOiBTZWdtZW50W10ge1xuICAgIHJldHVybiB0aGlzLmNvbnN1bWVycztcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from "./artifact";
2
+ export * from "./pipeline-segment";
3
+ export * from "./pipeline";
4
+ export * from "./publish-assets-action";
5
+ export * from "./segment";
6
+ export * from "./source-segment";
7
+ export * from "./stack-segment";
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
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("./artifact"), exports);
18
+ __exportStar(require("./pipeline-segment"), exports);
19
+ __exportStar(require("./pipeline"), exports);
20
+ __exportStar(require("./publish-assets-action"), exports);
21
+ __exportStar(require("./segment"), exports);
22
+ __exportStar(require("./source-segment"), exports);
23
+ __exportStar(require("./stack-segment"), exports);
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQixxREFBbUM7QUFDbkMsNkNBQTJCO0FBQzNCLDBEQUF3QztBQUN4Qyw0Q0FBMEI7QUFDMUIsbURBQWlDO0FBQ2pDLGtEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FydGlmYWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9waXBlbGluZS1zZWdtZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9waXBlbGluZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHVibGlzaC1hc3NldHMtYWN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZWdtZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb3VyY2Utc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhY2stc2VnbWVudFwiO1xuIl19
@@ -0,0 +1,53 @@
1
+ import { BuildEnvironmentVariable } from "aws-cdk-lib/aws-codebuild";
2
+ import { Artifact } from "./artifact";
3
+ import { Segment, SegmentConstructed } from "./segment";
4
+ import { Pipeline } from "./pipeline";
5
+ export interface PipelineSegmentProps {
6
+ /**
7
+ * The input arfifact for the build stage.
8
+ */
9
+ readonly input: Artifact | Artifact[];
10
+ /**
11
+ * The command(s) to build the stack.
12
+ * @example "cdk synth StackName --strict --exclusively"
13
+ */
14
+ readonly command: string | string[];
15
+ /**
16
+ * The environmental variables for the build stage.
17
+ */
18
+ readonly environmentVariables?: {
19
+ [key: string]: BuildEnvironmentVariable;
20
+ };
21
+ /**
22
+ * The name of the stack to apply this action to.
23
+ * @deafult The name of the given stack.
24
+ */
25
+ readonly stackName?: string;
26
+ /**
27
+ * The AWS account this Action is supposed to operate in.
28
+ */
29
+ readonly account?: string;
30
+ /**
31
+ * The AWS region the given Action resides in.
32
+ */
33
+ readonly region?: string;
34
+ /**
35
+ * The artifact to hold the stack deployment output file.
36
+ * @default no output artifact
37
+ */
38
+ readonly output?: Artifact;
39
+ /**
40
+ * Does this stage require manual approval of the change set?
41
+ * @default false
42
+ */
43
+ readonly manualApproval?: Boolean;
44
+ }
45
+ /**
46
+ * @category Segments
47
+ */
48
+ export declare class PipelineSegment extends Segment {
49
+ readonly isPipeline: boolean;
50
+ readonly props: PipelineSegmentProps;
51
+ constructor(props: PipelineSegmentProps);
52
+ construct(scope: Pipeline): SegmentConstructed;
53
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PipelineSegment = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const segment_1 = require("./segment");
7
+ const stack_segment_1 = require("./stack-segment");
8
+ /**
9
+ * @category Segments
10
+ */
11
+ class PipelineSegment extends segment_1.Segment {
12
+ constructor(props) {
13
+ super(props);
14
+ this.isPipeline = true;
15
+ this.props = props;
16
+ }
17
+ construct(scope) {
18
+ return new stack_segment_1.StackSegmentConstructed(scope, `Deploy${scope.stackName}`, {
19
+ ...this.props,
20
+ stack: scope,
21
+ input: this.inputs[0],
22
+ extraInputs: this.inputs.slice(1),
23
+ });
24
+ }
25
+ }
26
+ _a = JSII_RTTI_SYMBOL_1;
27
+ PipelineSegment[_a] = { fqn: "@flit/cdk-pipeline.PipelineSegment", version: "1.0.5" };
28
+ exports.PipelineSegment = PipelineSegment;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waXBlbGluZS1zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsdUNBQXdEO0FBQ3hELG1EQUEwRDtBQTJDMUQ7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsaUJBQU87SUFJMUMsWUFBWSxLQUEyQjtRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFKTixlQUFVLEdBQVksSUFBSSxDQUFDO1FBS2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBZTtRQUN2QixPQUFPLElBQUksdUNBQXVCLENBQUMsS0FBSyxFQUFFLFNBQVMsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BFLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7QUFoQlUsMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZEVudmlyb25tZW50VmFyaWFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuXG5pbXBvcnQgeyBBcnRpZmFjdCB9IGZyb20gXCIuL2FydGlmYWN0XCI7XG5pbXBvcnQgeyBTZWdtZW50LCBTZWdtZW50Q29uc3RydWN0ZWQgfSBmcm9tIFwiLi9zZWdtZW50XCI7XG5pbXBvcnQgeyBTdGFja1NlZ21lbnRDb25zdHJ1Y3RlZCB9IGZyb20gXCIuL3N0YWNrLXNlZ21lbnRcIjtcbmltcG9ydCB7IFBpcGVsaW5lIH0gZnJvbSBcIi4vcGlwZWxpbmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVNlZ21lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgYXJmaWZhY3QgZm9yIHRoZSBidWlsZCBzdGFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0OiBBcnRpZmFjdCB8IEFydGlmYWN0W107XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZChzKSB0byBidWlsZCB0aGUgc3RhY2suXG4gICAqIEBleGFtcGxlIFwiY2RrIHN5bnRoIFN0YWNrTmFtZSAtLXN0cmljdCAtLWV4Y2x1c2l2ZWx5XCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50YWwgdmFyaWFibGVzIGZvciB0aGUgYnVpbGQgc3RhZ2UuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudFZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlIH07XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gYXBwbHkgdGhpcyBhY3Rpb24gdG8uXG4gICAqIEBkZWFmdWx0IFRoZSBuYW1lIG9mIHRoZSBnaXZlbiBzdGFjay5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBV1MgYWNjb3VudCB0aGlzIEFjdGlvbiBpcyBzdXBwb3NlZCB0byBvcGVyYXRlIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRoZSBnaXZlbiBBY3Rpb24gcmVzaWRlcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0IHRvIGhvbGQgdGhlIHN0YWNrIGRlcGxveW1lbnQgb3V0cHV0IGZpbGUuXG4gICAqIEBkZWZhdWx0IG5vIG91dHB1dCBhcnRpZmFjdFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0PzogQXJ0aWZhY3Q7XG4gIC8qKlxuICAgKiBEb2VzIHRoaXMgc3RhZ2UgcmVxdWlyZSBtYW51YWwgYXBwcm92YWwgb2YgdGhlIGNoYW5nZSBzZXQ/XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtYW51YWxBcHByb3ZhbD86IEJvb2xlYW47XG59XG5cbi8qKlxuICogQGNhdGVnb3J5IFNlZ21lbnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBQaXBlbGluZVNlZ21lbnQgZXh0ZW5kcyBTZWdtZW50IHtcbiAgcmVhZG9ubHkgaXNQaXBlbGluZTogYm9vbGVhbiA9IHRydWU7XG4gIHJlYWRvbmx5IHByb3BzOiBQaXBlbGluZVNlZ21lbnRQcm9wcztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogUGlwZWxpbmVTZWdtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgY29uc3RydWN0KHNjb3BlOiBQaXBlbGluZSk6IFNlZ21lbnRDb25zdHJ1Y3RlZCB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1NlZ21lbnRDb25zdHJ1Y3RlZChzY29wZSwgYERlcGxveSR7c2NvcGUuc3RhY2tOYW1lfWAsIHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBzdGFjazogc2NvcGUsXG4gICAgICBpbnB1dDogdGhpcy5pbnB1dHNbMF0sXG4gICAgICBleHRyYUlucHV0czogdGhpcy5pbnB1dHMuc2xpY2UoMSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,29 @@
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
+ /**
6
+ * The name of the generated pipeline.
7
+ * @default Stack ID
8
+ */
9
+ readonly pipelineName?: string;
10
+ /**
11
+ * The path to the cdk projects root directory containing the cdk.json file
12
+ * relative to the asset root
13
+ */
14
+ readonly rootDir: string;
15
+ /**
16
+ * The segments to populating the pipeline.
17
+ */
18
+ readonly segments: Segment[];
19
+ }
20
+ /**
21
+ * @category Constructs
22
+ */
23
+ export declare class Pipeline extends Stack {
24
+ readonly props: PipelineProps;
25
+ readonly pipelineName: string;
26
+ readonly rootDir: string;
27
+ readonly buildDir: string;
28
+ constructor(scope: Construct, id: string, props: PipelineProps);
29
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Pipeline = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
+ const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
8
+ const path = require("path");
9
+ /**
10
+ * @category Constructs
11
+ */
12
+ class Pipeline extends aws_cdk_lib_1.Stack {
13
+ constructor(scope, id, props) {
14
+ super(scope, id, props);
15
+ this.props = props;
16
+ this.pipelineName = props.pipelineName ? props.pipelineName : id;
17
+ this.rootDir = props.rootDir;
18
+ this.buildDir = path.join(this.rootDir, this.node.root.outdir);
19
+ if (!this.bundlingRequired)
20
+ return;
21
+ props.segments.forEach((segment) => {
22
+ segment.inputs.forEach((artifact) => {
23
+ if (!artifact.obtainProducer())
24
+ throw new Error("Artifact consumed but never produced.");
25
+ });
26
+ });
27
+ const sourceSegments = props.segments.filter((segment) => segment.isSource);
28
+ const pipelineSegment = props.segments.find((segment) => segment.isPipeline);
29
+ const segments = props.segments.filter((segment) => !segment.isSource && !segment.isPipeline);
30
+ new aws_codepipeline_1.Pipeline(this, "Pipeline", {
31
+ pipelineName: props.pipelineName,
32
+ restartExecutionOnUpdate: true,
33
+ stages: [
34
+ {
35
+ stageName: "Source",
36
+ actions: [
37
+ ...sourceSegments.reduce((actions, segment) => [
38
+ ...actions,
39
+ ...segment.construct(this).actions,
40
+ ], []),
41
+ ],
42
+ },
43
+ {
44
+ stageName: "Pipeline",
45
+ actions: [...pipelineSegment.construct(this).actions],
46
+ },
47
+ ...segments.map((segment) => {
48
+ const build = segment.construct(this);
49
+ return {
50
+ stageName: build.name,
51
+ actions: build.actions,
52
+ };
53
+ }),
54
+ ],
55
+ });
56
+ }
57
+ }
58
+ _a = JSII_RTTI_SYMBOL_1;
59
+ Pipeline[_a] = { fqn: "@flit/cdk-pipeline.Pipeline", version: "1.0.5" };
60
+ exports.Pipeline = Pipeline;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBcUQ7QUFFckQsbUVBQWdGO0FBQ2hGLDZCQUE2QjtBQXdCN0I7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBSztJQUtqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFXLEtBQW9CO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRHlCLFVBQUssR0FBTCxLQUFLLENBQWU7UUFHckUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVuQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUU7b0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQW9CLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUMzRCxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ3BCLENBQUM7UUFFckIsTUFBTSxlQUFlLEdBQWdDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN0RSxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLENBQUM7UUFFckIsTUFBTSxRQUFRLEdBQWMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQy9DLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDL0QsQ0FBQztRQUVGLElBQUksMkJBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxTQUFTLEVBQUUsUUFBUTtvQkFDbkIsT0FBTyxFQUFFO3dCQUNQLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FDdEIsQ0FBQyxPQUFrQixFQUFFLE9BQXNCLEVBQUUsRUFBRSxDQUFDOzRCQUM5QyxHQUFHLE9BQU87NEJBQ1YsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU87eUJBQ25DLEVBQ0QsRUFBRSxDQUNIO3FCQUNGO2lCQUNGO2dCQUNEO29CQUNFLFNBQVMsRUFBRSxVQUFVO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO2lCQUN0RDtnQkFDRCxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFnQixFQUFFLEVBQUU7b0JBQ25DLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLE9BQU87d0JBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO3dCQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87cUJBQ3ZCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0FBOURVLDRCQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwLCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFBpcGVsaW5lIGFzIEF3c1BpcGVsaW5lLCBJQWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgQXJ0aWZhY3QgfSBmcm9tIFwiLi9hcnRpZmFjdFwiO1xuaW1wb3J0IHsgU2VnbWVudCB9IGZyb20gXCIuL3NlZ21lbnRcIjtcbmltcG9ydCB7IFNvdXJjZVNlZ21lbnQgfSBmcm9tIFwiLi9zb3VyY2Utc2VnbWVudFwiO1xuaW1wb3J0IHsgUGlwZWxpbmVTZWdtZW50IH0gZnJvbSBcIi4vcGlwZWxpbmUtc2VnbWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgcGlwZWxpbmUuXG4gICAqIEBkZWZhdWx0IFN0YWNrIElEXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgY2RrIHByb2plY3RzIHJvb3QgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGNkay5qc29uIGZpbGVcbiAgICogcmVsYXRpdmUgdG8gdGhlIGFzc2V0IHJvb3RcbiAgICovXG4gIHJlYWRvbmx5IHJvb3REaXI6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZWdtZW50cyB0byBwb3B1bGF0aW5nIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlZ21lbnRzOiBTZWdtZW50W107XG59XG5cbi8qKlxuICogQGNhdGVnb3J5IENvbnN0cnVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFBpcGVsaW5lIGV4dGVuZHMgU3RhY2sge1xuICByZWFkb25seSBwaXBlbGluZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcm9vdERpcjogc3RyaW5nO1xuICByZWFkb25seSBidWlsZERpcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHJlYWRvbmx5IHByb3BzOiBQaXBlbGluZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnBpcGVsaW5lTmFtZSA9IHByb3BzLnBpcGVsaW5lTmFtZSA/IHByb3BzLnBpcGVsaW5lTmFtZSA6IGlkO1xuICAgIHRoaXMucm9vdERpciA9IHByb3BzLnJvb3REaXI7XG4gICAgdGhpcy5idWlsZERpciA9IHBhdGguam9pbih0aGlzLnJvb3REaXIsICh0aGlzLm5vZGUucm9vdCBhcyBBcHApLm91dGRpcik7XG5cbiAgICBpZiAoIXRoaXMuYnVuZGxpbmdSZXF1aXJlZCkgcmV0dXJuO1xuXG4gICAgcHJvcHMuc2VnbWVudHMuZm9yRWFjaCgoc2VnbWVudDogU2VnbWVudCkgPT4ge1xuICAgICAgc2VnbWVudC5pbnB1dHMuZm9yRWFjaCgoYXJ0aWZhY3Q6IEFydGlmYWN0KSA9PiB7XG4gICAgICAgIGlmICghYXJ0aWZhY3Qub2J0YWluUHJvZHVjZXIoKSlcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcnRpZmFjdCBjb25zdW1lZCBidXQgbmV2ZXIgcHJvZHVjZWQuXCIpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzb3VyY2VTZWdtZW50czogU291cmNlU2VnbWVudFtdID0gcHJvcHMuc2VnbWVudHMuZmlsdGVyKFxuICAgICAgKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHNlZ21lbnQuaXNTb3VyY2VcbiAgICApIGFzIFNvdXJjZVNlZ21lbnRbXTtcblxuICAgIGNvbnN0IHBpcGVsaW5lU2VnbWVudDogUGlwZWxpbmVTZWdtZW50IHwgdW5kZWZpbmVkID0gcHJvcHMuc2VnbWVudHMuZmluZChcbiAgICAgIChzZWdtZW50OiBTZWdtZW50KSA9PiBzZWdtZW50LmlzUGlwZWxpbmVcbiAgICApIGFzIFBpcGVsaW5lU2VnbWVudDtcblxuICAgIGNvbnN0IHNlZ21lbnRzOiBTZWdtZW50W10gPSBwcm9wcy5zZWdtZW50cy5maWx0ZXIoXG4gICAgICAoc2VnbWVudDogU2VnbWVudCkgPT4gIXNlZ21lbnQuaXNTb3VyY2UgJiYgIXNlZ21lbnQuaXNQaXBlbGluZVxuICAgICk7XG5cbiAgICBuZXcgQXdzUGlwZWxpbmUodGhpcywgXCJQaXBlbGluZVwiLCB7XG4gICAgICBwaXBlbGluZU5hbWU6IHByb3BzLnBpcGVsaW5lTmFtZSxcbiAgICAgIHJlc3RhcnRFeGVjdXRpb25PblVwZGF0ZTogdHJ1ZSxcbiAgICAgIHN0YWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgc3RhZ2VOYW1lOiBcIlNvdXJjZVwiLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIC4uLnNvdXJjZVNlZ21lbnRzLnJlZHVjZShcbiAgICAgICAgICAgICAgKGFjdGlvbnM6IElBY3Rpb25bXSwgc2VnbWVudDogU291cmNlU2VnbWVudCkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLmFjdGlvbnMsXG4gICAgICAgICAgICAgICAgLi4uc2VnbWVudC5jb25zdHJ1Y3QodGhpcykuYWN0aW9ucyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgICksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHN0YWdlTmFtZTogXCJQaXBlbGluZVwiLFxuICAgICAgICAgIGFjdGlvbnM6IFsuLi5waXBlbGluZVNlZ21lbnQuY29uc3RydWN0KHRoaXMpLmFjdGlvbnNdLFxuICAgICAgICB9LFxuICAgICAgICAuLi5zZWdtZW50cy5tYXAoKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBidWlsZCA9IHNlZ21lbnQuY29uc3RydWN0KHRoaXMpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFnZU5hbWU6IGJ1aWxkLm5hbWUsXG4gICAgICAgICAgICBhY3Rpb25zOiBidWlsZC5hY3Rpb25zLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -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
+ 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
+ }
@@ -0,0 +1,80 @@
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_4,
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: 18,
59
+ },
60
+ commands: [
61
+ "npm install -g npm@latest",
62
+ "npm i -g @flit/publish-cdk-assets@latest",
63
+ ],
64
+ },
65
+ build: {
66
+ commands: `pca ${props.manifestPath ? path.normalize(props.manifestPath) : "."}`,
67
+ },
68
+ },
69
+ }),
70
+ }),
71
+ });
72
+ this.actionProperties = codeBuild.actionProperties;
73
+ this.bind = (scope, stage, options) => codeBuild.bind(scope, stage, options);
74
+ this.onStateChange = (name, target, options) => codeBuild.onStateChange(name, target, options);
75
+ }
76
+ }
77
+ _a = JSII_RTTI_SYMBOL_1;
78
+ PublishAssetsAction[_a] = { fqn: "@flit/cdk-pipeline.PublishAssetsAction", version: "1.0.5" };
79
+ exports.PublishAssetsAction = PublishAssetsAction;
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1hc3NldHMtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B1Ymxpc2gtYXNzZXRzLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFvQztBQUNwQywyQ0FBdUM7QUFTdkMsNkRBQWdGO0FBQ2hGLG1GQUF1RTtBQUN2RSxpREFPNkI7QUFFN0IsNkJBQTZCO0FBUzdCLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFHaEQsS0FBSyxDQUNILEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUEwQjtRQUUxQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLEtBQUssSUFBSSxDQUFDLEtBQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLENBQ0YsS0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE9BQTBCO1FBRTFCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBTSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGFBQWEsQ0FDWCxJQUFZLEVBQ1osTUFBZ0MsRUFDaEMsT0FBK0I7UUFFL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFPLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksMENBQWUsQ0FBQztZQUNwQyxHQUFHLEtBQUs7WUFDUixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsT0FBTyxFQUFFLElBQUksdUJBQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUM3QixXQUFXLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLCtCQUFlLENBQUMsZ0JBQWdCO2lCQUM3QztnQkFDRCxJQUFJLEVBQUUsSUFBSSxjQUFJLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFO29CQUNsRCxTQUFTLEVBQUUsSUFBSSw0QkFBa0IsQ0FDL0IsSUFBSSwwQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxFQUMvQyxJQUFJLDBCQUFnQixDQUFDLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUM3QztvQkFDRCxjQUFjLEVBQUU7d0JBQ2QsWUFBWSxFQUFFLElBQUksd0JBQWMsQ0FBQzs0QkFDL0IsVUFBVSxFQUFFO2dDQUNWLElBQUkseUJBQWUsQ0FBQztvQ0FDbEIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0NBQzNCLFNBQVMsRUFBRSxDQUFDLGNBQWMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxTQUFTLENBQUM7b0NBQzFELFVBQVUsRUFBRTt3Q0FDViwwQkFBMEIsRUFBRTs0Q0FDMUIsd0NBQXdDLEVBQUU7Z0RBQ3hDLGtCQUFrQjtnREFDbEIsaUJBQWlCO2dEQUNqQixRQUFROzZDQUNUO3lDQUNGO3FDQUNGO2lDQUNGLENBQUM7NkJBQ0g7eUJBQ0YsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2dCQUNGLFNBQVMsRUFBRSx5QkFBUyxDQUFDLFVBQVUsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRTs0QkFDUCxrQkFBa0IsRUFBRTtnQ0FDbEIsTUFBTSxFQUFFLEVBQUU7NkJBQ1g7NEJBQ0QsUUFBUSxFQUFFO2dDQUNSLDJCQUEyQjtnQ0FDM0IsMENBQTBDOzZCQUMzQzt5QkFDRjt3QkFDRCxLQUFLLEVBQUU7NEJBQ0wsUUFBUSxFQUFFLE9BQ1IsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQzVELEVBQUU7eUJBQ0g7cUJBQ0Y7aUJBQ0YsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FDVixLQUFnQixFQUNoQixLQUFhLEVBQ2IsT0FBMEIsRUFDWixFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FDbkIsSUFBWSxFQUNaLE1BQW9CLEVBQ3BCLE9BQW1CLEVBQ2IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7O0FBOUZVLGtEQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQWN0aW9uQmluZE9wdGlvbnMsXG4gIEFjdGlvbkNvbmZpZyxcbiAgQWN0aW9uUHJvcGVydGllcyxcbiAgQXJ0aWZhY3QsXG4gIElBY3Rpb24sXG4gIElTdGFnZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCB7IEJ1aWxkU3BlYywgTGludXhCdWlsZEltYWdlLCBQcm9qZWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcbmltcG9ydCB7IENvZGVCdWlsZEFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lLWFjdGlvbnNcIjtcbmltcG9ydCB7XG4gIEFjY291bnRQcmluY2lwYWwsXG4gIENvbXBvc2l0ZVByaW5jaXBhbCxcbiAgUG9saWN5RG9jdW1lbnQsXG4gIFBvbGljeVN0YXRlbWVudCxcbiAgUm9sZSxcbiAgU2VydmljZVByaW5jaXBhbCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IElSdWxlVGFyZ2V0LCBSdWxlUHJvcHMsIFJ1bGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hBc3NldHNBY3Rpb25Qcm9wcyB7XG4gIHJlYWRvbmx5IGFjdGlvbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgaW5wdXQ6IEFydGlmYWN0O1xuICByZWFkb25seSBtYW5pZmVzdFBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgcnVuT3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaXNoQXNzZXRzQWN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUFjdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSBhY3Rpb25Qcm9wZXJ0aWVzOiBBY3Rpb25Qcm9wZXJ0aWVzO1xuXG4gIGJvdW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc3RhZ2U6IElTdGFnZSxcbiAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICApOiBBY3Rpb25Db25maWcge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4keyFzY29wZSAmJiAhc3RhZ2UhICYmIG9wdGlvbnN9YCk7XG4gIH1cblxuICBiaW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc3RhZ2U6IElTdGFnZSxcbiAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICApOiBBY3Rpb25Db25maWcge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4keyFzY29wZSAmJiAhc3RhZ2UhICYmIG9wdGlvbnN9YCk7XG4gIH1cblxuICBvblN0YXRlQ2hhbmdlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB0YXJnZXQ/OiBJUnVsZVRhcmdldCB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zPzogUnVsZVByb3BzIHwgdW5kZWZpbmVkXG4gICk6IFJ1bGUge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4keyFuYW1lICYmICF0YXJnZXQhICYmIG9wdGlvbnN9YCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaEFzc2V0c0FjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBjb2RlQnVpbGQgPSBuZXcgQ29kZUJ1aWxkQWN0aW9uKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgaW5wdXQ6IHByb3BzLmlucHV0LFxuICAgICAgcHJvamVjdDogbmV3IFByb2plY3QodGhpcywgaWQsIHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBidWlsZEltYWdlOiBMaW51eEJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfNCxcbiAgICAgICAgfSxcbiAgICAgICAgcm9sZTogbmV3IFJvbGUodGhpcywgXCJVcGRhdGVQaXBlbGluZUNvZGVDdWlsZFJvbGVcIiwge1xuICAgICAgICAgIGFzc3VtZWRCeTogbmV3IENvbXBvc2l0ZVByaW5jaXBhbChcbiAgICAgICAgICAgIG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwiY29kZWJ1aWxkLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICAgICAgICBuZXcgQWNjb3VudFByaW5jaXBhbChTdGFjay5vZih0aGlzKS5hY2NvdW50KVxuICAgICAgICAgICksXG4gICAgICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgICAgIHNlbGZNdXRhdGlvbjogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1wic3RzOkFzc3VtZVJvbGVcIl0sXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOio6aWFtOjoke1N0YWNrLm9mKHRoaXMpLmFjY291bnR9OnJvbGUvKmBdLFxuICAgICAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBcIkZvckFueVZhbHVlOlN0cmluZ0VxdWFsc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpYW06UmVzb3VyY2VUYWcvYXdzLWNkazpib290c3RyYXAtcm9sZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImltYWdlLXB1Ymxpc2hpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZS1wdWJsaXNoaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRlcGxveVwiLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIHZlcnNpb246IFwiMC4yXCIsXG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBpbnN0YWxsOiB7XG4gICAgICAgICAgICAgIFwicnVudGltZS12ZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgbm9kZWpzOiAxOCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgICBcIm5wbSBpbnN0YWxsIC1nIG5wbUBsYXRlc3RcIixcbiAgICAgICAgICAgICAgICBcIm5wbSBpIC1nIEBmbGl0L3B1Ymxpc2gtY2RrLWFzc2V0c0BsYXRlc3RcIixcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICBjb21tYW5kczogYHBjYSAke1xuICAgICAgICAgICAgICAgIHByb3BzLm1hbmlmZXN0UGF0aCA/IHBhdGgubm9ybWFsaXplKHByb3BzLm1hbmlmZXN0UGF0aCkgOiBcIi5cIlxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWN0aW9uUHJvcGVydGllcyA9IGNvZGVCdWlsZC5hY3Rpb25Qcm9wZXJ0aWVzO1xuICAgIHRoaXMuYmluZCA9IChcbiAgICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgICBzdGFnZTogSVN0YWdlLFxuICAgICAgb3B0aW9uczogQWN0aW9uQmluZE9wdGlvbnNcbiAgICApOiBBY3Rpb25Db25maWcgPT4gY29kZUJ1aWxkLmJpbmQoc2NvcGUsIHN0YWdlLCBvcHRpb25zKTtcbiAgICB0aGlzLm9uU3RhdGVDaGFuZ2UgPSAoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICB0YXJnZXQ/OiBJUnVsZVRhcmdldCxcbiAgICAgIG9wdGlvbnM/OiBSdWxlUHJvcHNcbiAgICApOiBSdWxlID0+IGNvZGVCdWlsZC5vblN0YXRlQ2hhbmdlKG5hbWUsIHRhcmdldCwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Construct } from "constructs";
2
+ import { Stack } from "aws-cdk-lib";
3
+ import { IAction } from "aws-cdk-lib/aws-codepipeline";
4
+ import { Artifact } from "./artifact";
5
+ import { Pipeline } from "./pipeline";
6
+ export interface SegmentProps {
7
+ readonly input?: Artifact | Artifact[];
8
+ readonly output?: Artifact | Artifact[];
9
+ }
10
+ export declare abstract class Segment {
11
+ readonly isSource: boolean;
12
+ readonly isPipeline: boolean;
13
+ readonly dependencies?: Stack[];
14
+ readonly inputs: Artifact[];
15
+ readonly outputs: Artifact[];
16
+ constructor(props: SegmentProps);
17
+ abstract construct(scope: Pipeline): SegmentConstructed;
18
+ }
19
+ export declare abstract class SegmentConstructed extends Construct {
20
+ readonly name: string;
21
+ readonly actions: IAction[];
22
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SegmentConstructed = exports.Segment = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const constructs_1 = require("constructs");
7
+ class Segment {
8
+ constructor(props) {
9
+ this.isSource = false;
10
+ this.isPipeline = false;
11
+ this.inputs = [];
12
+ this.outputs = [];
13
+ if (props.input) {
14
+ this.inputs = (props.input.constructor.name === "Array" ? props.input : [props.input]);
15
+ this.inputs.forEach((artifact) => {
16
+ artifact.consume(this);
17
+ }, this);
18
+ }
19
+ if (props.output) {
20
+ this.outputs = (props.output.constructor.name === "Array"
21
+ ? props.output
22
+ : [props.output]);
23
+ this.outputs.forEach((artifact) => {
24
+ artifact.produce(this);
25
+ }, this);
26
+ }
27
+ }
28
+ }
29
+ _a = JSII_RTTI_SYMBOL_1;
30
+ Segment[_a] = { fqn: "@flit/cdk-pipeline.Segment", version: "1.0.5" };
31
+ exports.Segment = Segment;
32
+ class SegmentConstructed extends constructs_1.Construct {
33
+ constructor() {
34
+ super(...arguments);
35
+ this.name = "";
36
+ this.actions = [];
37
+ }
38
+ }
39
+ _b = JSII_RTTI_SYMBOL_1;
40
+ SegmentConstructed[_b] = { fqn: "@flit/cdk-pipeline.SegmentConstructed", version: "1.0.5" };
41
+ exports.SegmentConstructed = SegmentConstructed;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXVDO0FBWXZDLE1BQXNCLE9BQU87SUFNM0IsWUFBWSxLQUFtQjtRQUx0QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFNUIsV0FBTSxHQUFlLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQWUsRUFBRSxDQUFDO1FBRWhDLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FDWixLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FDekQsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDekMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDVjtRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQ2IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLE9BQU87Z0JBQ3ZDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDZCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQ0wsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDMUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDVjtJQUNILENBQUM7Ozs7QUF6Qm1CLDBCQUFPO0FBNkI3QixNQUFzQixrQkFBbUIsU0FBUSxzQkFBUztJQUExRDs7UUFDVyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFlBQU8sR0FBYyxFQUFFLENBQUM7S0FDbEM7Ozs7QUFIcUIsZ0RBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBJQWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcblxuaW1wb3J0IHsgQXJ0aWZhY3QgfSBmcm9tIFwiLi9hcnRpZmFjdFwiO1xuaW1wb3J0IHsgUGlwZWxpbmUgfSBmcm9tIFwiLi9waXBlbGluZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlZ21lbnRQcm9wcyB7XG4gIHJlYWRvbmx5IGlucHV0PzogQXJ0aWZhY3QgfCBBcnRpZmFjdFtdO1xuICByZWFkb25seSBvdXRwdXQ/OiBBcnRpZmFjdCB8IEFydGlmYWN0W107XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZWdtZW50IHtcbiAgcmVhZG9ubHkgaXNTb3VyY2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmVhZG9ubHkgaXNQaXBlbGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBTdGFja1tdO1xuICByZWFkb25seSBpbnB1dHM6IEFydGlmYWN0W10gPSBbXTtcbiAgcmVhZG9ubHkgb3V0cHV0czogQXJ0aWZhY3RbXSA9IFtdO1xuICBjb25zdHJ1Y3Rvcihwcm9wczogU2VnbWVudFByb3BzKSB7XG4gICAgaWYgKHByb3BzLmlucHV0KSB7XG4gICAgICB0aGlzLmlucHV0cyA9IChcbiAgICAgICAgcHJvcHMuaW5wdXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJBcnJheVwiID8gcHJvcHMuaW5wdXQgOiBbcHJvcHMuaW5wdXRdXG4gICAgICApIGFzIEFydGlmYWN0W107XG4gICAgICB0aGlzLmlucHV0cy5mb3JFYWNoKChhcnRpZmFjdDogQXJ0aWZhY3QpID0+IHtcbiAgICAgICAgYXJ0aWZhY3QuY29uc3VtZSh0aGlzKTtcbiAgICAgIH0sIHRoaXMpO1xuICAgIH1cbiAgICBpZiAocHJvcHMub3V0cHV0KSB7XG4gICAgICB0aGlzLm91dHB1dHMgPSAoXG4gICAgICAgIHByb3BzLm91dHB1dC5jb25zdHJ1Y3Rvci5uYW1lID09PSBcIkFycmF5XCJcbiAgICAgICAgICA/IHByb3BzLm91dHB1dFxuICAgICAgICAgIDogW3Byb3BzLm91dHB1dF1cbiAgICAgICkgYXMgQXJ0aWZhY3RbXTtcbiAgICAgIHRoaXMub3V0cHV0cy5mb3JFYWNoKChhcnRpZmFjdDogQXJ0aWZhY3QpID0+IHtcbiAgICAgICAgYXJ0aWZhY3QucHJvZHVjZSh0aGlzKTtcbiAgICAgIH0sIHRoaXMpO1xuICAgIH1cbiAgfVxuICBhYnN0cmFjdCBjb25zdHJ1Y3Qoc2NvcGU6IFBpcGVsaW5lKTogU2VnbWVudENvbnN0cnVjdGVkO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2VnbWVudENvbnN0cnVjdGVkIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nID0gXCJcIjtcbiAgcmVhZG9ubHkgYWN0aW9uczogSUFjdGlvbltdID0gW107XG59XG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { IAction } from "aws-cdk-lib/aws-codepipeline";
2
+ import { GitHubTrigger } from "aws-cdk-lib/aws-codepipeline-actions";
3
+ import { Pipeline } from "./pipeline";
4
+ import { SecretValue } from "aws-cdk-lib";
5
+ import { Artifact } from "./artifact";
6
+ import { Segment, SegmentConstructed } from "./segment";
7
+ export interface SourceSegmentProps {
8
+ readonly output: Artifact;
9
+ }
10
+ export declare abstract class SourceSegment extends Segment {
11
+ readonly isSource: boolean;
12
+ }
13
+ export interface GitHubSourceSegmentProps extends SourceSegmentProps {
14
+ readonly oauthToken: SecretValue;
15
+ readonly owner: string;
16
+ readonly repo: string;
17
+ readonly branch?: string;
18
+ readonly runOrder?: number;
19
+ readonly trigger?: GitHubTrigger;
20
+ readonly variablesNamespace?: string;
21
+ }
22
+ /**
23
+ * @category Segments
24
+ */
25
+ export declare class GitHubSourceSegment extends SourceSegment {
26
+ private props;
27
+ constructor(props: GitHubSourceSegmentProps);
28
+ construct(scope: Pipeline): SegmentConstructed;
29
+ }
30
+ export interface GitHubSourceSegmentConstructedProps {
31
+ readonly output: Artifact;
32
+ readonly actionName: string;
33
+ readonly oauthToken: SecretValue;
34
+ readonly owner: string;
35
+ readonly repo: string;
36
+ readonly branch?: string;
37
+ readonly runOrder?: number;
38
+ readonly trigger?: GitHubTrigger;
39
+ readonly variablesNamespace?: string;
40
+ }
41
+ export declare class GitHubSourceSegmentConstructed extends SegmentConstructed {
42
+ readonly name: string;
43
+ readonly actions: IAction[];
44
+ constructor(scope: Pipeline, id: string, props: GitHubSourceSegmentConstructedProps);
45
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var _a, _b, _c;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.GitHubSourceSegmentConstructed = exports.GitHubSourceSegment = exports.SourceSegment = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_codepipeline_actions_1 = require("aws-cdk-lib/aws-codepipeline-actions");
7
+ const segment_1 = require("./segment");
8
+ class SourceSegment extends segment_1.Segment {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.isSource = true;
12
+ }
13
+ }
14
+ _a = JSII_RTTI_SYMBOL_1;
15
+ SourceSegment[_a] = { fqn: "@flit/cdk-pipeline.SourceSegment", version: "1.0.5" };
16
+ exports.SourceSegment = SourceSegment;
17
+ /**
18
+ * @category Segments
19
+ */
20
+ class GitHubSourceSegment extends SourceSegment {
21
+ constructor(props) {
22
+ super(props);
23
+ this.props = props;
24
+ }
25
+ construct(scope) {
26
+ return new GitHubSourceSegmentConstructed(scope, this.props.repo, {
27
+ ...this.props,
28
+ actionName: this.props.repo,
29
+ });
30
+ }
31
+ }
32
+ _b = JSII_RTTI_SYMBOL_1;
33
+ GitHubSourceSegment[_b] = { fqn: "@flit/cdk-pipeline.GitHubSourceSegment", version: "1.0.5" };
34
+ exports.GitHubSourceSegment = GitHubSourceSegment;
35
+ class GitHubSourceSegmentConstructed extends segment_1.SegmentConstructed {
36
+ constructor(scope, id, props) {
37
+ super(scope, id);
38
+ this.name = "Source";
39
+ this.actions = [new aws_codepipeline_actions_1.GitHubSourceAction(props)];
40
+ }
41
+ }
42
+ _c = JSII_RTTI_SYMBOL_1;
43
+ GitHubSourceSegmentConstructed[_c] = { fqn: "@flit/cdk-pipeline.GitHubSourceSegmentConstructed", version: "1.0.5" };
44
+ exports.GitHubSourceSegmentConstructed = GitHubSourceSegmentConstructed;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXNlZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc291cmNlLXNlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxtRkFHOEM7QUFLOUMsdUNBQXdEO0FBTXhELE1BQXNCLGFBQWMsU0FBUSxpQkFBTztJQUFuRDs7UUFDVyxhQUFRLEdBQVksSUFBSSxDQUFDO0tBQ25DOzs7O0FBRnFCLHNDQUFhO0FBY25DOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxhQUFhO0lBRXBELFlBQVksS0FBK0I7UUFDekMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFlO1FBQ3ZCLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDaEUsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztBQVhVLGtEQUFtQjtBQTBCaEMsTUFBYSw4QkFBK0IsU0FBUSw0QkFBa0I7SUFHcEUsWUFDRSxLQUFlLEVBQ2YsRUFBVSxFQUNWLEtBQTBDO1FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksNkNBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7O0FBWFUsd0VBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQge1xuICBHaXRIdWJTb3VyY2VBY3Rpb24sXG4gIEdpdEh1YlRyaWdnZXIsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lLWFjdGlvbnNcIjtcbmltcG9ydCB7IFBpcGVsaW5lIH0gZnJvbSBcIi4vcGlwZWxpbmVcIjtcbmltcG9ydCB7IFNlY3JldFZhbHVlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmltcG9ydCB7IEFydGlmYWN0IH0gZnJvbSBcIi4vYXJ0aWZhY3RcIjtcbmltcG9ydCB7IFNlZ21lbnQsIFNlZ21lbnRDb25zdHJ1Y3RlZCB9IGZyb20gXCIuL3NlZ21lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWdtZW50UHJvcHMge1xuICByZWFkb25seSBvdXRwdXQ6IEFydGlmYWN0O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU291cmNlU2VnbWVudCBleHRlbmRzIFNlZ21lbnQge1xuICByZWFkb25seSBpc1NvdXJjZTogYm9vbGVhbiA9IHRydWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViU291cmNlU2VnbWVudFByb3BzIGV4dGVuZHMgU291cmNlU2VnbWVudFByb3BzIHtcbiAgcmVhZG9ubHkgb2F1dGhUb2tlbjogU2VjcmV0VmFsdWU7XG4gIHJlYWRvbmx5IG93bmVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuICByZWFkb25seSBydW5PcmRlcj86IG51bWJlcjtcbiAgcmVhZG9ubHkgdHJpZ2dlcj86IEdpdEh1YlRyaWdnZXI7XG4gIHJlYWRvbmx5IHZhcmlhYmxlc05hbWVzcGFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgU2VnbWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIEdpdEh1YlNvdXJjZVNlZ21lbnQgZXh0ZW5kcyBTb3VyY2VTZWdtZW50IHtcbiAgcHJpdmF0ZSBwcm9wczogR2l0SHViU291cmNlU2VnbWVudFByb3BzO1xuICBjb25zdHJ1Y3Rvcihwcm9wczogR2l0SHViU291cmNlU2VnbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxuICBjb25zdHJ1Y3Qoc2NvcGU6IFBpcGVsaW5lKTogU2VnbWVudENvbnN0cnVjdGVkIHtcbiAgICByZXR1cm4gbmV3IEdpdEh1YlNvdXJjZVNlZ21lbnRDb25zdHJ1Y3RlZChzY29wZSwgdGhpcy5wcm9wcy5yZXBvLCB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgYWN0aW9uTmFtZTogdGhpcy5wcm9wcy5yZXBvLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViU291cmNlU2VnbWVudENvbnN0cnVjdGVkUHJvcHMge1xuICByZWFkb25seSBvdXRwdXQ6IEFydGlmYWN0O1xuICByZWFkb25seSBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9hdXRoVG9rZW46IFNlY3JldFZhbHVlO1xuICByZWFkb25seSBvd25lcjogc3RyaW5nO1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcbiAgcmVhZG9ubHkgcnVuT3JkZXI/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBHaXRIdWJUcmlnZ2VyO1xuICByZWFkb25seSB2YXJpYWJsZXNOYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJTb3VyY2VTZWdtZW50Q29uc3RydWN0ZWQgZXh0ZW5kcyBTZWdtZW50Q29uc3RydWN0ZWQge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFjdGlvbnM6IElBY3Rpb25bXTtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IFBpcGVsaW5lLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdpdEh1YlNvdXJjZVNlZ21lbnRDb25zdHJ1Y3RlZFByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5uYW1lID0gXCJTb3VyY2VcIjtcbiAgICB0aGlzLmFjdGlvbnMgPSBbbmV3IEdpdEh1YlNvdXJjZUFjdGlvbihwcm9wcyldO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { Stack } from "aws-cdk-lib";
2
+ import { BuildEnvironmentVariable } from "aws-cdk-lib/aws-codebuild";
3
+ import { IAction } from "aws-cdk-lib/aws-codepipeline";
4
+ import { Artifact } from "./artifact";
5
+ import { Segment, SegmentConstructed } from "./segment";
6
+ import { Pipeline } from "./pipeline";
7
+ export interface StackSegmentProps {
8
+ /**
9
+ * The stack to be deployed in this segment.
10
+ */
11
+ readonly stack: Stack;
12
+ /**
13
+ * The input arfifact for the build stage.
14
+ */
15
+ readonly input: Artifact | Artifact[];
16
+ /**
17
+ * The command(s) to build the stack.
18
+ * @example "cdk synth StackName --strict --exclusively"
19
+ */
20
+ readonly command: string | string[];
21
+ /**
22
+ * The environmental variables for the build stage.
23
+ */
24
+ readonly environmentVariables?: {
25
+ [key: string]: BuildEnvironmentVariable;
26
+ };
27
+ /**
28
+ * The name of the stack to deploy the changes to.
29
+ * @deafult The name of the given stack.
30
+ */
31
+ readonly stackName?: string;
32
+ /**
33
+ * The AWS account this Action is supposed to operate in.
34
+ */
35
+ readonly account?: string;
36
+ /**
37
+ * The AWS region the given Action resides in.
38
+ */
39
+ readonly region?: string;
40
+ /**
41
+ * The artifact to hold the stack deployment output file.
42
+ * @default no output artifact
43
+ */
44
+ readonly output?: Artifact;
45
+ /**
46
+ * Does this stage require manual approval of the change set?
47
+ * @default false
48
+ */
49
+ readonly manualApproval?: Boolean;
50
+ }
51
+ /**
52
+ * @category Segments
53
+ */
54
+ export declare class StackSegment extends Segment {
55
+ readonly props: StackSegmentProps;
56
+ constructor(props: StackSegmentProps);
57
+ construct(scope: Pipeline): SegmentConstructed;
58
+ }
59
+ export interface StackSegmentConstructedProps {
60
+ readonly stack: Stack;
61
+ readonly command: string | string[];
62
+ readonly environmentVariables?: {
63
+ [key: string]: BuildEnvironmentVariable;
64
+ };
65
+ readonly stackName?: string;
66
+ readonly account?: string;
67
+ readonly region?: string;
68
+ readonly input: Artifact;
69
+ readonly extraInputs?: Artifact[];
70
+ readonly output?: Artifact;
71
+ readonly manualApproval?: Boolean;
72
+ }
73
+ export declare class StackSegmentConstructed extends SegmentConstructed {
74
+ readonly name: string;
75
+ readonly actions: IAction[];
76
+ constructor(scope: Pipeline, id: string, props: StackSegmentConstructedProps);
77
+ }