projen-pipelines 0.3.13 → 0.3.15

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/API.md CHANGED
@@ -2624,6 +2624,7 @@ const bashCDKPipelineOptions: BashCDKPipelineOptions = { ... }
2624
2624
  | <code><a href="#projen-pipelines.BashCDKPipelineOptions.property.deploySubStacks">deploySubStacks</a></code> | <code>boolean</code> | If set to true all CDK actions will also include <stackName>/* to deploy/diff/destroy sub stacks of the main stack. |
2625
2625
  | <code><a href="#projen-pipelines.BashCDKPipelineOptions.property.featureStages">featureStages</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for feature stages. |
2626
2626
  | <code><a href="#projen-pipelines.BashCDKPipelineOptions.property.independentStages">independentStages</a></code> | <code><a href="#projen-pipelines.IndependentStage">IndependentStage</a>[]</code> | This specifies details for independent stages. |
2627
+ | <code><a href="#projen-pipelines.BashCDKPipelineOptions.property.paths">paths</a></code> | <code>string[]</code> | File path patterns that should trigger the pipeline when changed. |
2627
2628
  | <code><a href="#projen-pipelines.BashCDKPipelineOptions.property.personalStage">personalStage</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for a personal stage. |
2628
2629
  | <code><a href="#projen-pipelines.BashCDKPipelineOptions.property.pipelineName">pipelineName</a></code> | <code>string</code> | A unique name for this pipeline, used as a prefix for workflow files, concurrency groups, and artifact names to prevent collisions in monorepos. |
2629
2630
  | <code><a href="#projen-pipelines.BashCDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> | This field determines the NPM namespace to be used when packaging CDK cloud assemblies. |
@@ -2714,6 +2715,32 @@ This specifies details for independent stages.
2714
2715
 
2715
2716
  ---
2716
2717
 
2718
+ ##### `paths`<sup>Optional</sup> <a name="paths" id="projen-pipelines.BashCDKPipelineOptions.property.paths"></a>
2719
+
2720
+ ```typescript
2721
+ public readonly paths: string[];
2722
+ ```
2723
+
2724
+ - *Type:* string[]
2725
+ - *Default:* all paths trigger the pipeline
2726
+
2727
+ File path patterns that should trigger the pipeline when changed.
2728
+
2729
+ This is useful for monorepos where you only want to run the pipeline
2730
+ when files in a specific subproject are modified.
2731
+
2732
+ For GitHub, these are used as `on.push.paths` and `on.pull_request.paths` filters.
2733
+ For GitLab, these are used as `only.changes` filters.
2734
+
2735
+ ---
2736
+
2737
+ *Example*
2738
+
2739
+ ```typescript
2740
+ ['packages/my-app/**', 'shared-libs/**']
2741
+ ```
2742
+
2743
+
2717
2744
  ##### `personalStage`<sup>Optional</sup> <a name="personalStage" id="projen-pipelines.BashCDKPipelineOptions.property.personalStage"></a>
2718
2745
 
2719
2746
  ```typescript
@@ -3057,6 +3084,7 @@ const cDKPipelineOptions: CDKPipelineOptions = { ... }
3057
3084
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.deploySubStacks">deploySubStacks</a></code> | <code>boolean</code> | If set to true all CDK actions will also include <stackName>/* to deploy/diff/destroy sub stacks of the main stack. |
3058
3085
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.featureStages">featureStages</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for feature stages. |
3059
3086
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.independentStages">independentStages</a></code> | <code><a href="#projen-pipelines.IndependentStage">IndependentStage</a>[]</code> | This specifies details for independent stages. |
3087
+ | <code><a href="#projen-pipelines.CDKPipelineOptions.property.paths">paths</a></code> | <code>string[]</code> | File path patterns that should trigger the pipeline when changed. |
3060
3088
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.personalStage">personalStage</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for a personal stage. |
3061
3089
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.pipelineName">pipelineName</a></code> | <code>string</code> | A unique name for this pipeline, used as a prefix for workflow files, concurrency groups, and artifact names to prevent collisions in monorepos. |
3062
3090
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> | This field determines the NPM namespace to be used when packaging CDK cloud assemblies. |
@@ -3147,6 +3175,32 @@ This specifies details for independent stages.
3147
3175
 
3148
3176
  ---
3149
3177
 
3178
+ ##### `paths`<sup>Optional</sup> <a name="paths" id="projen-pipelines.CDKPipelineOptions.property.paths"></a>
3179
+
3180
+ ```typescript
3181
+ public readonly paths: string[];
3182
+ ```
3183
+
3184
+ - *Type:* string[]
3185
+ - *Default:* all paths trigger the pipeline
3186
+
3187
+ File path patterns that should trigger the pipeline when changed.
3188
+
3189
+ This is useful for monorepos where you only want to run the pipeline
3190
+ when files in a specific subproject are modified.
3191
+
3192
+ For GitHub, these are used as `on.push.paths` and `on.pull_request.paths` filters.
3193
+ For GitLab, these are used as `only.changes` filters.
3194
+
3195
+ ---
3196
+
3197
+ *Example*
3198
+
3199
+ ```typescript
3200
+ ['packages/my-app/**', 'shared-libs/**']
3201
+ ```
3202
+
3203
+
3150
3204
  ##### `personalStage`<sup>Optional</sup> <a name="personalStage" id="projen-pipelines.CDKPipelineOptions.property.personalStage"></a>
3151
3205
 
3152
3206
  ```typescript
@@ -4351,6 +4405,7 @@ const githubCDKPipelineOptions: GithubCDKPipelineOptions = { ... }
4351
4405
  | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.deploySubStacks">deploySubStacks</a></code> | <code>boolean</code> | If set to true all CDK actions will also include <stackName>/* to deploy/diff/destroy sub stacks of the main stack. |
4352
4406
  | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.featureStages">featureStages</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for feature stages. |
4353
4407
  | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.independentStages">independentStages</a></code> | <code><a href="#projen-pipelines.IndependentStage">IndependentStage</a>[]</code> | This specifies details for independent stages. |
4408
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.paths">paths</a></code> | <code>string[]</code> | File path patterns that should trigger the pipeline when changed. |
4354
4409
  | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.personalStage">personalStage</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for a personal stage. |
4355
4410
  | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.pipelineName">pipelineName</a></code> | <code>string</code> | A unique name for this pipeline, used as a prefix for workflow files, concurrency groups, and artifact names to prevent collisions in monorepos. |
4356
4411
  | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> | This field determines the NPM namespace to be used when packaging CDK cloud assemblies. |
@@ -4445,6 +4500,32 @@ This specifies details for independent stages.
4445
4500
 
4446
4501
  ---
4447
4502
 
4503
+ ##### `paths`<sup>Optional</sup> <a name="paths" id="projen-pipelines.GithubCDKPipelineOptions.property.paths"></a>
4504
+
4505
+ ```typescript
4506
+ public readonly paths: string[];
4507
+ ```
4508
+
4509
+ - *Type:* string[]
4510
+ - *Default:* all paths trigger the pipeline
4511
+
4512
+ File path patterns that should trigger the pipeline when changed.
4513
+
4514
+ This is useful for monorepos where you only want to run the pipeline
4515
+ when files in a specific subproject are modified.
4516
+
4517
+ For GitHub, these are used as `on.push.paths` and `on.pull_request.paths` filters.
4518
+ For GitLab, these are used as `only.changes` filters.
4519
+
4520
+ ---
4521
+
4522
+ *Example*
4523
+
4524
+ ```typescript
4525
+ ['packages/my-app/**', 'shared-libs/**']
4526
+ ```
4527
+
4528
+
4448
4529
  ##### `personalStage`<sup>Optional</sup> <a name="personalStage" id="projen-pipelines.GithubCDKPipelineOptions.property.personalStage"></a>
4449
4530
 
4450
4531
  ```typescript
@@ -5022,6 +5103,7 @@ const gitlabCDKPipelineOptions: GitlabCDKPipelineOptions = { ... }
5022
5103
  | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.deploySubStacks">deploySubStacks</a></code> | <code>boolean</code> | If set to true all CDK actions will also include <stackName>/* to deploy/diff/destroy sub stacks of the main stack. |
5023
5104
  | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.featureStages">featureStages</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for feature stages. |
5024
5105
  | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.independentStages">independentStages</a></code> | <code><a href="#projen-pipelines.IndependentStage">IndependentStage</a>[]</code> | This specifies details for independent stages. |
5106
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.paths">paths</a></code> | <code>string[]</code> | File path patterns that should trigger the pipeline when changed. |
5025
5107
  | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.personalStage">personalStage</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | This specifies details for a personal stage. |
5026
5108
  | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.pipelineName">pipelineName</a></code> | <code>string</code> | A unique name for this pipeline, used as a prefix for workflow files, concurrency groups, and artifact names to prevent collisions in monorepos. |
5027
5109
  | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> | This field determines the NPM namespace to be used when packaging CDK cloud assemblies. |
@@ -5114,6 +5196,32 @@ This specifies details for independent stages.
5114
5196
 
5115
5197
  ---
5116
5198
 
5199
+ ##### `paths`<sup>Optional</sup> <a name="paths" id="projen-pipelines.GitlabCDKPipelineOptions.property.paths"></a>
5200
+
5201
+ ```typescript
5202
+ public readonly paths: string[];
5203
+ ```
5204
+
5205
+ - *Type:* string[]
5206
+ - *Default:* all paths trigger the pipeline
5207
+
5208
+ File path patterns that should trigger the pipeline when changed.
5209
+
5210
+ This is useful for monorepos where you only want to run the pipeline
5211
+ when files in a specific subproject are modified.
5212
+
5213
+ For GitHub, these are used as `on.push.paths` and `on.pull_request.paths` filters.
5214
+ For GitLab, these are used as `only.changes` filters.
5215
+
5216
+ ---
5217
+
5218
+ *Example*
5219
+
5220
+ ```typescript
5221
+ ['packages/my-app/**', 'shared-libs/**']
5222
+ ```
5223
+
5224
+
5117
5225
  ##### `personalStage`<sup>Optional</sup> <a name="personalStage" id="projen-pipelines.GitlabCDKPipelineOptions.property.personalStage"></a>
5118
5226
 
5119
5227
  ```typescript
@@ -6990,6 +7098,79 @@ public readonly strategy: VersioningStrategy;
6990
7098
  ---
6991
7099
 
6992
7100
 
7101
+ ### CorepackSetupStep <a name="CorepackSetupStep" id="projen-pipelines.CorepackSetupStep"></a>
7102
+
7103
+ Step to enable corepack for Yarn Berry support.
7104
+
7105
+ This step is automatically injected when a project uses Yarn Berry as its package manager.
7106
+ It ensures corepack is enabled in the CI environment before running any yarn commands,
7107
+ which is required for Yarn Berry (v2+) to work correctly.
7108
+
7109
+ #### Initializers <a name="Initializers" id="projen-pipelines.CorepackSetupStep.Initializer"></a>
7110
+
7111
+ ```typescript
7112
+ import { CorepackSetupStep } from 'projen-pipelines'
7113
+
7114
+ new CorepackSetupStep(project: Project)
7115
+ ```
7116
+
7117
+ | **Name** | **Type** | **Description** |
7118
+ | --- | --- | --- |
7119
+ | <code><a href="#projen-pipelines.CorepackSetupStep.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - The projen project reference. |
7120
+
7121
+ ---
7122
+
7123
+ ##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.CorepackSetupStep.Initializer.parameter.project"></a>
7124
+
7125
+ - *Type:* projen.Project
7126
+
7127
+ The projen project reference.
7128
+
7129
+ ---
7130
+
7131
+ #### Methods <a name="Methods" id="Methods"></a>
7132
+
7133
+ | **Name** | **Description** |
7134
+ | --- | --- |
7135
+ | <code><a href="#projen-pipelines.CorepackSetupStep.toBash">toBash</a></code> | Generates a configuration for a bash script step. |
7136
+ | <code><a href="#projen-pipelines.CorepackSetupStep.toGithub">toGithub</a></code> | Generates a configuration for a GitHub Actions step. |
7137
+ | <code><a href="#projen-pipelines.CorepackSetupStep.toGitlab">toGitlab</a></code> | Generates a configuration for a GitLab CI step. |
7138
+
7139
+ ---
7140
+
7141
+ ##### `toBash` <a name="toBash" id="projen-pipelines.CorepackSetupStep.toBash"></a>
7142
+
7143
+ ```typescript
7144
+ public toBash(): BashStepConfig
7145
+ ```
7146
+
7147
+ Generates a configuration for a bash script step.
7148
+
7149
+ Should be implemented by subclasses.
7150
+
7151
+ ##### `toGithub` <a name="toGithub" id="projen-pipelines.CorepackSetupStep.toGithub"></a>
7152
+
7153
+ ```typescript
7154
+ public toGithub(): GithubStepConfig
7155
+ ```
7156
+
7157
+ Generates a configuration for a GitHub Actions step.
7158
+
7159
+ Should be implemented by subclasses.
7160
+
7161
+ ##### `toGitlab` <a name="toGitlab" id="projen-pipelines.CorepackSetupStep.toGitlab"></a>
7162
+
7163
+ ```typescript
7164
+ public toGitlab(): GitlabStepConfig
7165
+ ```
7166
+
7167
+ Generates a configuration for a GitLab CI step.
7168
+
7169
+ Should be implemented by subclasses.
7170
+
7171
+
7172
+
7173
+
6993
7174
  ### DownloadArtifactStep <a name="DownloadArtifactStep" id="projen-pipelines.DownloadArtifactStep"></a>
6994
7175
 
6995
7176
  #### Initializers <a name="Initializers" id="projen-pipelines.DownloadArtifactStep.Initializer"></a>
package/README.md CHANGED
@@ -498,6 +498,32 @@ When feature stages are configured, two GitHub workflows are created:
498
498
 
499
499
  The feature deployment uses the `--force` flag when destroying to ensure cleanup without manual confirmation.
500
500
 
501
+ ### Monorepo / Path Filtering
502
+
503
+ In monorepo setups, you may want to only trigger a pipeline when changes are made to specific paths. Use the `paths` option to configure path-based filtering:
504
+
505
+ ```typescript
506
+ new GithubCDKPipeline(app, {
507
+ stackPrefix: 'MyApp',
508
+ iamRoleArns: {
509
+ default: 'arn:aws:iam::123456789012:role/GithubDeploymentRole',
510
+ },
511
+ paths: ['packages/my-app/**', 'shared-libs/**'],
512
+ stages: [
513
+ {
514
+ name: 'dev',
515
+ env: { account: '123456789013', region: 'eu-central-1' },
516
+ },
517
+ ],
518
+ });
519
+ ```
520
+
521
+ When `paths` is specified:
522
+ - **GitHub Actions**: The deploy workflow will only trigger on pushes that include changes to the matching paths. Feature branch workflows (deploy/destroy) are also filtered. Manual dispatch (`workflow_dispatch`) remains unfiltered and can always be triggered.
523
+ - **GitLab CI**: Deployment and diff jobs use `only.changes` to only run when matching files are modified.
524
+
525
+ This allows you to have multiple pipelines in the same repository, each responsible for a different subproject, without triggering unnecessary deployments.
526
+
501
527
  ### AWS Amplify Deployment
502
528
 
503
529
  Projen Pipelines includes support for deploying static websites and single-page applications to AWS Amplify Hosting. This feature provides automated deployment of build artifacts to Amplify, with built-in support for multiple environments and branch-based deployments.
@@ -12,5 +12,5 @@ class AssignApprover extends projen_1.Component {
12
12
  }
13
13
  exports.AssignApprover = AssignApprover;
14
14
  _a = JSII_RTTI_SYMBOL_1;
15
- AssignApprover[_a] = { fqn: "projen-pipelines.AssignApprover", version: "0.3.13" };
15
+ AssignApprover[_a] = { fqn: "projen-pipelines.AssignApprover", version: "0.3.15" };
16
16
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NpZ24tYXBwcm92ZXIvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUE0QztBQXVCNUMsTUFBc0IsY0FBZSxTQUFRLGtCQUFTO0lBR3BELFlBQVksS0FBYyxFQUFxQixXQUFrQztRQUMvRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEZ0MsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO0lBRWpGLENBQUM7O0FBTEgsd0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmVyTWFwcGluZyB7XG5cbiAgcmVhZG9ubHkgYXV0aG9yOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwcHJvdmVyczogc3RyaW5nW107XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NpZ25BcHByb3Zlck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgbWFwcGluZyBvZiBhdXRob3JzIHRvIGFwcHJvdmVycy5cbiAgICovXG4gIHJlYWRvbmx5IGFwcHJvdmVyTWFwcGluZzogQXBwcm92ZXJNYXBwaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgdG9rZW4gdG8gdXNlIGZvciB0aGUgQVBJIGNhbGxzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEFwcHJvdmVyczogc3RyaW5nW107XG5cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFzc2lnbkFwcHJvdmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBQcm9qZWN0LCBwcm90ZWN0ZWQgcmVhZG9ubHkgYmFzZU9wdGlvbnM6IEFzc2lnbkFwcHJvdmVyT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlKTtcbiAgfVxuXG59Il19
@@ -81,5 +81,5 @@ if (filteredApprovers.length > 0) {
81
81
  }
82
82
  exports.GitHubAssignApprover = GitHubAssignApprover;
83
83
  _a = JSII_RTTI_SYMBOL_1;
84
- GitHubAssignApprover[_a] = { fqn: "projen-pipelines.GitHubAssignApprover", version: "0.3.13" };
84
+ GitHubAssignApprover[_a] = { fqn: "projen-pipelines.GitHubAssignApprover", version: "0.3.15" };
85
85
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fzc2lnbi1hcHByb3Zlci9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSx1RUFBa0Y7QUFDbEYsaUNBQStEO0FBYS9ELE1BQWEsb0JBQXFCLFNBQVEscUJBQWM7SUFJdEQsWUFBWSxLQUFvQixFQUFFLE9BQW9DO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNmLGlCQUFpQixFQUFFO2dCQUNqQixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUM7YUFDdEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU87WUFDTCxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRVMsYUFBYTtRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFFbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUU7WUFDdEMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNyQyxLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsSUFBSSxFQUFFLDBCQUEwQjtvQkFDaEMsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxxQkFBcUI7cUJBQzlCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsNkJBQTZCO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZTthQUNwRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxNQUFNLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDN0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjthQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVkLE9BQU87Ozs7RUFJVCxjQUFjLEdBQUcsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkMsZ0JBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFxQjlCLENBQUM7SUFDRCxDQUFDOztBQXBGSCxvREFxRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRIdWJQcm9qZWN0LCBHaXRodWJXb3JrZmxvdyB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViJztcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlBlcm1pc3Npb25zIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IEFzc2lnbkFwcHJvdmVyLCBBc3NpZ25BcHByb3Zlck9wdGlvbnMgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdpdEh1YkFzc2lnbkFwcHJvdmVyT3B0aW9ucyBleHRlbmRzIEFzc2lnbkFwcHJvdmVyT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIHJ1bm5lciB0YWdzIHRvIHVzZSB0byBzZWxlY3QgcnVubmVyc1xuICAgKlxuICAgKiBAZGVmYXVsdCBbJ3VidW50dS1sYXRlc3QnXVxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyVGFncz86IHN0cmluZ1tdO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJBc3NpZ25BcHByb3ZlciBleHRlbmRzIEFzc2lnbkFwcHJvdmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdzogR2l0aHViV29ya2Zsb3c7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogR2l0SHViQXNzaWduQXBwcm92ZXJPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBHaXRIdWJQcm9qZWN0LCBvcHRpb25zOiBHaXRIdWJBc3NpZ25BcHByb3Zlck9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIC8vIEluaXRpYWxpemUgdGhlIGRlcGxveW1lbnQgd29ya2Zsb3cgb24gR2l0SHViLlxuICAgIHRoaXMud29ya2Zsb3cgPSBzY29wZS5naXRodWIhLmFkZFdvcmtmbG93KCdhc3NpZ24tYXBwcm92ZXInKTtcbiAgICB0aGlzLndvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0VGFyZ2V0OiB7XG4gICAgICAgIHR5cGVzOiBbJ29wZW5lZCcsICdyZWFkeV9mb3JfcmV2aWV3J10sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXR1cFdvcmtmbG93KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByZXF1aXJlZCBwZXJtaXNzaW9ucyBmb3IgdGhlIEdpdEh1YiB3b3JrZmxvd1xuICAgKi9cbiAgcHVibGljIHJlbmRlclBlcm1pc3Npb25zKCk6IEpvYlBlcm1pc3Npb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBXb3JrZmxvdygpOiB2b2lkIHtcbiAgICBjb25zdCBydW5uZXJUYWdzID0gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gWyd1YnVudHUtbGF0ZXN0J107XG5cbiAgICBjb25zdCBhcHByb3Zlck1hcHBpbmdTY3JpcHQgPSB0aGlzLmdlbmVyYXRlQXBwcm92ZXJNYXBwaW5nU2NyaXB0KCk7XG5cbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYignYXNzaWduLWFwcHJvdmVyJywge1xuICAgICAgcnVuc09uOiBydW5uZXJUYWdzLFxuICAgICAgcGVybWlzc2lvbnM6IHRoaXMucmVuZGVyUGVybWlzc2lvbnMoKSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQXNzaWduIGFwcHJvdmVyIGJhc2VkIG9uIGF1dGhvcicsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvZ2l0aHViLXNjcmlwdEB2OCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgc2NyaXB0OiBhcHByb3Zlck1hcHBpbmdTY3JpcHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVBcHByb3Zlck1hcHBpbmdTY3JpcHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXBwaW5nRW50cmllcyA9IHRoaXMuYmFzZU9wdGlvbnMuYXBwcm92ZXJNYXBwaW5nXG4gICAgICAubWFwKG1hcHBpbmcgPT4gYCAgJyR7bWFwcGluZy5hdXRob3J9JzogWyR7bWFwcGluZy5hcHByb3ZlcnMubWFwKGEgPT4gYCcke2F9J2ApLmpvaW4oJywgJyl9XWApXG4gICAgICAuam9pbignLFxcbicpO1xuXG4gICAgY29uc3QgZGVmYXVsdEFwcHJvdmVycyA9IHRoaXMuYmFzZU9wdGlvbnMuZGVmYXVsdEFwcHJvdmVyc1xuICAgICAgLm1hcChhID0+IGAnJHthfSdgKVxuICAgICAgLmpvaW4oJywgJyk7XG5cbiAgICByZXR1cm4gYGNvbnN0IGF1dGhvciA9IGNvbnRleHQucGF5bG9hZC5wdWxsX3JlcXVlc3QudXNlci5sb2dpbjtcblxuLy8gRGVmaW5lIGFwcHJvdmVyIG1hcHBpbmdcbmNvbnN0IGFwcHJvdmVyTWFwcGluZyA9IHtcbiR7bWFwcGluZ0VudHJpZXN9JHttYXBwaW5nRW50cmllcy5sZW5ndGggPiAwID8gJywnIDogJyd9XG4gICdkZWZhdWx0JzogWyR7ZGVmYXVsdEFwcHJvdmVyc31dIC8vIERlZmF1bHQgYXBwcm92ZXIocykgaWYgYXV0aG9yIG5vdCBpbiBtYXBwaW5nXG59O1xuXG4vLyBHZXQgYXBwcm92ZXJzIGZvciB0aGUgUFIgYXV0aG9yXG5jb25zdCBhcHByb3ZlcnMgPSBhcHByb3Zlck1hcHBpbmdbYXV0aG9yXSB8fCBhcHByb3Zlck1hcHBpbmdbJ2RlZmF1bHQnXTtcblxuLy8gRmlsdGVyIG91dCB0aGUgYXV0aG9yIGZyb20gYXBwcm92ZXJzIGxpc3QgKGNhbid0IGFwcHJvdmUgb3duIFBSKVxuY29uc3QgZmlsdGVyZWRBcHByb3ZlcnMgPSBhcHByb3ZlcnMuZmlsdGVyKGFwcHJvdmVyID0+IGFwcHJvdmVyICE9PSBhdXRob3IpO1xuXG5pZiAoZmlsdGVyZWRBcHByb3ZlcnMubGVuZ3RoID4gMCkge1xuICAvLyBSZXF1ZXN0IHJldmlld3MgZnJvbSB0aGUgYXBwcm92ZXJzXG4gIGF3YWl0IGdpdGh1Yi5yZXN0LnB1bGxzLnJlcXVlc3RSZXZpZXdlcnMoe1xuICAgIG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsXG4gICAgcmVwbzogY29udGV4dC5yZXBvLnJlcG8sXG4gICAgcHVsbF9udW1iZXI6IGNvbnRleHQuaXNzdWUubnVtYmVyLFxuICAgIHJldmlld2VyczogZmlsdGVyZWRBcHByb3ZlcnNcbiAgfSk7XG4gIFxuICBjb25zb2xlLmxvZyhcXGBBc3NpZ25lZCByZXZpZXdlcnM6IFxcJHtmaWx0ZXJlZEFwcHJvdmVycy5qb2luKCcsICcpfVxcYCk7XG59IGVsc2Uge1xuICBjb25zb2xlLmxvZygnTm8gZWxpZ2libGUgcmV2aWV3ZXJzIGZvdW5kIGZvciB0aGlzIFBSIGF1dGhvcicpO1xufWA7XG4gIH1cbn1cbiJdfQ==
@@ -118,6 +118,18 @@ export interface CDKPipelineOptions {
118
118
  * @default main
119
119
  */
120
120
  readonly branchName?: string;
121
+ /**
122
+ * File path patterns that should trigger the pipeline when changed.
123
+ * This is useful for monorepos where you only want to run the pipeline
124
+ * when files in a specific subproject are modified.
125
+ *
126
+ * For GitHub, these are used as `on.push.paths` and `on.pull_request.paths` filters.
127
+ * For GitLab, these are used as `only.changes` filters.
128
+ *
129
+ * @example ['packages/my-app/**', 'shared-libs/**']
130
+ * @default - all paths trigger the pipeline
131
+ */
132
+ readonly paths?: string[];
121
133
  /**
122
134
  * This field is used to define a prefix for the AWS Stack resources created
123
135
  * during the pipeline's operation.