projen-pipelines 0.2.14 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +378 -21
- package/API.md +330 -0
- package/README.md +67 -0
- package/lib/assign-approver/base.js +1 -1
- package/lib/assign-approver/github.js +3 -3
- package/lib/awscdk/base.js +1 -1
- package/lib/awscdk/bash.js +1 -1
- package/lib/awscdk/github.js +12 -9
- package/lib/awscdk/gitlab.js +1 -1
- package/lib/drift/base.js +1 -1
- package/lib/drift/bash.js +1 -1
- package/lib/drift/github.js +6 -6
- package/lib/drift/gitlab.js +1 -1
- package/lib/drift/step.js +1 -1
- package/lib/steps/amplify-deploy.step.d.ts +40 -0
- package/lib/steps/amplify-deploy.step.js +148 -0
- package/lib/steps/artifact-steps.js +5 -5
- package/lib/steps/aws-assume-role.step.js +3 -3
- package/lib/steps/index.d.ts +1 -0
- package/lib/steps/index.js +2 -1
- package/lib/steps/registries.d.ts +39 -0
- package/lib/steps/registries.js +43 -7
- package/lib/steps/step.js +4 -4
- package/lib/versioning/computation.js +3 -3
- package/lib/versioning/config.js +2 -2
- package/lib/versioning/outputs.js +5 -5
- package/lib/versioning/setup.js +1 -1
- package/lib/versioning/strategy.js +1 -1
- package/lib/versioning/version-info.js +2 -2
- package/llm.md +69 -0
- package/package.json +3 -3
package/API.md
CHANGED
|
@@ -2116,6 +2116,103 @@ public readonly schedule: string;
|
|
|
2116
2116
|
|
|
2117
2117
|
## Structs <a name="Structs" id="Structs"></a>
|
|
2118
2118
|
|
|
2119
|
+
### AmplifyDeployStepConfig <a name="AmplifyDeployStepConfig" id="projen-pipelines.AmplifyDeployStepConfig"></a>
|
|
2120
|
+
|
|
2121
|
+
Configuration for an AWS Amplify deployment step.
|
|
2122
|
+
|
|
2123
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.AmplifyDeployStepConfig.Initializer"></a>
|
|
2124
|
+
|
|
2125
|
+
```typescript
|
|
2126
|
+
import { AmplifyDeployStepConfig } from 'projen-pipelines'
|
|
2127
|
+
|
|
2128
|
+
const amplifyDeployStepConfig: AmplifyDeployStepConfig = { ... }
|
|
2129
|
+
```
|
|
2130
|
+
|
|
2131
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
2132
|
+
|
|
2133
|
+
| **Name** | **Type** | **Description** |
|
|
2134
|
+
| --- | --- | --- |
|
|
2135
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStepConfig.property.artifactFile">artifactFile</a></code> | <code>string</code> | The artifact file to deploy (zip file containing the build). |
|
|
2136
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStepConfig.property.appId">appId</a></code> | <code>string</code> | The Amplify app ID (static value). |
|
|
2137
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStepConfig.property.appIdCommand">appIdCommand</a></code> | <code>string</code> | Command to retrieve the Amplify app ID dynamically. |
|
|
2138
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStepConfig.property.branchName">branchName</a></code> | <code>string</code> | The branch name to deploy to (defaults to 'main'). |
|
|
2139
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStepConfig.property.environment">environment</a></code> | <code>string</code> | Environment name. |
|
|
2140
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStepConfig.property.region">region</a></code> | <code>string</code> | The AWS region (defaults to 'eu-central-1'). |
|
|
2141
|
+
|
|
2142
|
+
---
|
|
2143
|
+
|
|
2144
|
+
##### `artifactFile`<sup>Required</sup> <a name="artifactFile" id="projen-pipelines.AmplifyDeployStepConfig.property.artifactFile"></a>
|
|
2145
|
+
|
|
2146
|
+
```typescript
|
|
2147
|
+
public readonly artifactFile: string;
|
|
2148
|
+
```
|
|
2149
|
+
|
|
2150
|
+
- *Type:* string
|
|
2151
|
+
|
|
2152
|
+
The artifact file to deploy (zip file containing the build).
|
|
2153
|
+
|
|
2154
|
+
---
|
|
2155
|
+
|
|
2156
|
+
##### `appId`<sup>Optional</sup> <a name="appId" id="projen-pipelines.AmplifyDeployStepConfig.property.appId"></a>
|
|
2157
|
+
|
|
2158
|
+
```typescript
|
|
2159
|
+
public readonly appId: string;
|
|
2160
|
+
```
|
|
2161
|
+
|
|
2162
|
+
- *Type:* string
|
|
2163
|
+
|
|
2164
|
+
The Amplify app ID (static value).
|
|
2165
|
+
|
|
2166
|
+
---
|
|
2167
|
+
|
|
2168
|
+
##### `appIdCommand`<sup>Optional</sup> <a name="appIdCommand" id="projen-pipelines.AmplifyDeployStepConfig.property.appIdCommand"></a>
|
|
2169
|
+
|
|
2170
|
+
```typescript
|
|
2171
|
+
public readonly appIdCommand: string;
|
|
2172
|
+
```
|
|
2173
|
+
|
|
2174
|
+
- *Type:* string
|
|
2175
|
+
|
|
2176
|
+
Command to retrieve the Amplify app ID dynamically.
|
|
2177
|
+
|
|
2178
|
+
---
|
|
2179
|
+
|
|
2180
|
+
##### `branchName`<sup>Optional</sup> <a name="branchName" id="projen-pipelines.AmplifyDeployStepConfig.property.branchName"></a>
|
|
2181
|
+
|
|
2182
|
+
```typescript
|
|
2183
|
+
public readonly branchName: string;
|
|
2184
|
+
```
|
|
2185
|
+
|
|
2186
|
+
- *Type:* string
|
|
2187
|
+
|
|
2188
|
+
The branch name to deploy to (defaults to 'main').
|
|
2189
|
+
|
|
2190
|
+
---
|
|
2191
|
+
|
|
2192
|
+
##### `environment`<sup>Optional</sup> <a name="environment" id="projen-pipelines.AmplifyDeployStepConfig.property.environment"></a>
|
|
2193
|
+
|
|
2194
|
+
```typescript
|
|
2195
|
+
public readonly environment: string;
|
|
2196
|
+
```
|
|
2197
|
+
|
|
2198
|
+
- *Type:* string
|
|
2199
|
+
|
|
2200
|
+
Environment name.
|
|
2201
|
+
|
|
2202
|
+
---
|
|
2203
|
+
|
|
2204
|
+
##### `region`<sup>Optional</sup> <a name="region" id="projen-pipelines.AmplifyDeployStepConfig.property.region"></a>
|
|
2205
|
+
|
|
2206
|
+
```typescript
|
|
2207
|
+
public readonly region: string;
|
|
2208
|
+
```
|
|
2209
|
+
|
|
2210
|
+
- *Type:* string
|
|
2211
|
+
|
|
2212
|
+
The AWS region (defaults to 'eu-central-1').
|
|
2213
|
+
|
|
2214
|
+
---
|
|
2215
|
+
|
|
2119
2216
|
### ApproverMapping <a name="ApproverMapping" id="projen-pipelines.ApproverMapping"></a>
|
|
2120
2217
|
|
|
2121
2218
|
#### Initializer <a name="Initializer" id="projen-pipelines.ApproverMapping.Initializer"></a>
|
|
@@ -2944,6 +3041,8 @@ public readonly exportName: string;
|
|
|
2944
3041
|
|
|
2945
3042
|
### CodeArtifactLoginStepOptions <a name="CodeArtifactLoginStepOptions" id="projen-pipelines.CodeArtifactLoginStepOptions"></a>
|
|
2946
3043
|
|
|
3044
|
+
Options for the CodeArtifactLoginStep.
|
|
3045
|
+
|
|
2947
3046
|
#### Initializer <a name="Initializer" id="projen-pipelines.CodeArtifactLoginStepOptions.Initializer"></a>
|
|
2948
3047
|
|
|
2949
3048
|
```typescript
|
|
@@ -2960,6 +3059,7 @@ const codeArtifactLoginStepOptions: CodeArtifactLoginStepOptions = { ... }
|
|
|
2960
3059
|
| <code><a href="#projen-pipelines.CodeArtifactLoginStepOptions.property.ownerAccount">ownerAccount</a></code> | <code>string</code> | *No description.* |
|
|
2961
3060
|
| <code><a href="#projen-pipelines.CodeArtifactLoginStepOptions.property.region">region</a></code> | <code>string</code> | *No description.* |
|
|
2962
3061
|
| <code><a href="#projen-pipelines.CodeArtifactLoginStepOptions.property.role">role</a></code> | <code>string</code> | *No description.* |
|
|
3062
|
+
| <code><a href="#projen-pipelines.CodeArtifactLoginStepOptions.property.envVariableName">envVariableName</a></code> | <code>string</code> | The environment variable name to set. |
|
|
2963
3063
|
|
|
2964
3064
|
---
|
|
2965
3065
|
|
|
@@ -3003,6 +3103,19 @@ public readonly role: string;
|
|
|
3003
3103
|
|
|
3004
3104
|
---
|
|
3005
3105
|
|
|
3106
|
+
##### `envVariableName`<sup>Optional</sup> <a name="envVariableName" id="projen-pipelines.CodeArtifactLoginStepOptions.property.envVariableName"></a>
|
|
3107
|
+
|
|
3108
|
+
```typescript
|
|
3109
|
+
public readonly envVariableName: string;
|
|
3110
|
+
```
|
|
3111
|
+
|
|
3112
|
+
- *Type:* string
|
|
3113
|
+
- *Default:* 'CODEARTIFACT_AUTH_TOKEN'
|
|
3114
|
+
|
|
3115
|
+
The environment variable name to set.
|
|
3116
|
+
|
|
3117
|
+
---
|
|
3118
|
+
|
|
3006
3119
|
### CodeCatalystStepConfig <a name="CodeCatalystStepConfig" id="projen-pipelines.CodeCatalystStepConfig"></a>
|
|
3007
3120
|
|
|
3008
3121
|
Configuration interface for a CodeCatalyst Actions step.
|
|
@@ -5402,6 +5515,37 @@ public readonly watchable: boolean;
|
|
|
5402
5515
|
|
|
5403
5516
|
---
|
|
5404
5517
|
|
|
5518
|
+
### NpmSecretStepOptions <a name="NpmSecretStepOptions" id="projen-pipelines.NpmSecretStepOptions"></a>
|
|
5519
|
+
|
|
5520
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.NpmSecretStepOptions.Initializer"></a>
|
|
5521
|
+
|
|
5522
|
+
```typescript
|
|
5523
|
+
import { NpmSecretStepOptions } from 'projen-pipelines'
|
|
5524
|
+
|
|
5525
|
+
const npmSecretStepOptions: NpmSecretStepOptions = { ... }
|
|
5526
|
+
```
|
|
5527
|
+
|
|
5528
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
5529
|
+
|
|
5530
|
+
| **Name** | **Type** | **Description** |
|
|
5531
|
+
| --- | --- | --- |
|
|
5532
|
+
| <code><a href="#projen-pipelines.NpmSecretStepOptions.property.secretName">secretName</a></code> | <code>string</code> | Name of the secret to set for the environment variable NPM_TOKEN. |
|
|
5533
|
+
|
|
5534
|
+
---
|
|
5535
|
+
|
|
5536
|
+
##### `secretName`<sup>Optional</sup> <a name="secretName" id="projen-pipelines.NpmSecretStepOptions.property.secretName"></a>
|
|
5537
|
+
|
|
5538
|
+
```typescript
|
|
5539
|
+
public readonly secretName: string;
|
|
5540
|
+
```
|
|
5541
|
+
|
|
5542
|
+
- *Type:* string
|
|
5543
|
+
- *Default:* 'NPM_TOKEN'
|
|
5544
|
+
|
|
5545
|
+
Name of the secret to set for the environment variable NPM_TOKEN.
|
|
5546
|
+
|
|
5547
|
+
---
|
|
5548
|
+
|
|
5405
5549
|
### PackageJsonConfig <a name="PackageJsonConfig" id="projen-pipelines.PackageJsonConfig"></a>
|
|
5406
5550
|
|
|
5407
5551
|
#### Initializer <a name="Initializer" id="projen-pipelines.PackageJsonConfig.Initializer"></a>
|
|
@@ -5855,6 +5999,93 @@ public readonly packageJson: PackageJsonConfig;
|
|
|
5855
5999
|
|
|
5856
6000
|
## Classes <a name="Classes" id="Classes"></a>
|
|
5857
6001
|
|
|
6002
|
+
### AmplifyDeployStep <a name="AmplifyDeployStep" id="projen-pipelines.AmplifyDeployStep"></a>
|
|
6003
|
+
|
|
6004
|
+
A step that deploys a web application to AWS Amplify.
|
|
6005
|
+
|
|
6006
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.AmplifyDeployStep.Initializer"></a>
|
|
6007
|
+
|
|
6008
|
+
```typescript
|
|
6009
|
+
import { AmplifyDeployStep } from 'projen-pipelines'
|
|
6010
|
+
|
|
6011
|
+
new AmplifyDeployStep(project: Project, config: AmplifyDeployStepConfig)
|
|
6012
|
+
```
|
|
6013
|
+
|
|
6014
|
+
| **Name** | **Type** | **Description** |
|
|
6015
|
+
| --- | --- | --- |
|
|
6016
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStep.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - The projen project reference. |
|
|
6017
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStep.Initializer.parameter.config">config</a></code> | <code><a href="#projen-pipelines.AmplifyDeployStepConfig">AmplifyDeployStepConfig</a></code> | *No description.* |
|
|
6018
|
+
|
|
6019
|
+
---
|
|
6020
|
+
|
|
6021
|
+
##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.AmplifyDeployStep.Initializer.parameter.project"></a>
|
|
6022
|
+
|
|
6023
|
+
- *Type:* projen.Project
|
|
6024
|
+
|
|
6025
|
+
The projen project reference.
|
|
6026
|
+
|
|
6027
|
+
---
|
|
6028
|
+
|
|
6029
|
+
##### `config`<sup>Required</sup> <a name="config" id="projen-pipelines.AmplifyDeployStep.Initializer.parameter.config"></a>
|
|
6030
|
+
|
|
6031
|
+
- *Type:* <a href="#projen-pipelines.AmplifyDeployStepConfig">AmplifyDeployStepConfig</a>
|
|
6032
|
+
|
|
6033
|
+
---
|
|
6034
|
+
|
|
6035
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
6036
|
+
|
|
6037
|
+
| **Name** | **Description** |
|
|
6038
|
+
| --- | --- |
|
|
6039
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStep.toBash">toBash</a></code> | Generates a configuration for a bash script step. |
|
|
6040
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStep.toCodeCatalyst">toCodeCatalyst</a></code> | Generates a configuration for a CodeCatalyst Actions step. |
|
|
6041
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStep.toGithub">toGithub</a></code> | Generates a configuration for a GitHub Actions step. |
|
|
6042
|
+
| <code><a href="#projen-pipelines.AmplifyDeployStep.toGitlab">toGitlab</a></code> | Generates a configuration for a GitLab CI step. |
|
|
6043
|
+
|
|
6044
|
+
---
|
|
6045
|
+
|
|
6046
|
+
##### `toBash` <a name="toBash" id="projen-pipelines.AmplifyDeployStep.toBash"></a>
|
|
6047
|
+
|
|
6048
|
+
```typescript
|
|
6049
|
+
public toBash(): BashStepConfig
|
|
6050
|
+
```
|
|
6051
|
+
|
|
6052
|
+
Generates a configuration for a bash script step.
|
|
6053
|
+
|
|
6054
|
+
Should be implemented by subclasses.
|
|
6055
|
+
|
|
6056
|
+
##### `toCodeCatalyst` <a name="toCodeCatalyst" id="projen-pipelines.AmplifyDeployStep.toCodeCatalyst"></a>
|
|
6057
|
+
|
|
6058
|
+
```typescript
|
|
6059
|
+
public toCodeCatalyst(): CodeCatalystStepConfig
|
|
6060
|
+
```
|
|
6061
|
+
|
|
6062
|
+
Generates a configuration for a CodeCatalyst Actions step.
|
|
6063
|
+
|
|
6064
|
+
Should be implemented by subclasses.
|
|
6065
|
+
|
|
6066
|
+
##### `toGithub` <a name="toGithub" id="projen-pipelines.AmplifyDeployStep.toGithub"></a>
|
|
6067
|
+
|
|
6068
|
+
```typescript
|
|
6069
|
+
public toGithub(): GithubStepConfig
|
|
6070
|
+
```
|
|
6071
|
+
|
|
6072
|
+
Generates a configuration for a GitHub Actions step.
|
|
6073
|
+
|
|
6074
|
+
Should be implemented by subclasses.
|
|
6075
|
+
|
|
6076
|
+
##### `toGitlab` <a name="toGitlab" id="projen-pipelines.AmplifyDeployStep.toGitlab"></a>
|
|
6077
|
+
|
|
6078
|
+
```typescript
|
|
6079
|
+
public toGitlab(): GitlabStepConfig
|
|
6080
|
+
```
|
|
6081
|
+
|
|
6082
|
+
Generates a configuration for a GitLab CI step.
|
|
6083
|
+
|
|
6084
|
+
Should be implemented by subclasses.
|
|
6085
|
+
|
|
6086
|
+
|
|
6087
|
+
|
|
6088
|
+
|
|
5858
6089
|
### AwsAssumeRoleStep <a name="AwsAssumeRoleStep" id="projen-pipelines.AwsAssumeRoleStep"></a>
|
|
5859
6090
|
|
|
5860
6091
|
A step that assumes a role in AWS.
|
|
@@ -6046,6 +6277,11 @@ public readonly TYPE: string;
|
|
|
6046
6277
|
|
|
6047
6278
|
### CodeArtifactLoginStep <a name="CodeArtifactLoginStep" id="projen-pipelines.CodeArtifactLoginStep"></a>
|
|
6048
6279
|
|
|
6280
|
+
Step to login to CodeArtifact.
|
|
6281
|
+
|
|
6282
|
+
The environment variable name can be configured to avoid conflicts with other environment variables.
|
|
6283
|
+
The default is CODEARTIFACT_AUTH_TOKEN.
|
|
6284
|
+
|
|
6049
6285
|
#### Initializers <a name="Initializers" id="projen-pipelines.CodeArtifactLoginStep.Initializer"></a>
|
|
6050
6286
|
|
|
6051
6287
|
```typescript
|
|
@@ -6416,6 +6652,10 @@ public prependSteps(steps: ...PipelineStep[]): void
|
|
|
6416
6652
|
|
|
6417
6653
|
### GithubPackagesLoginStep <a name="GithubPackagesLoginStep" id="projen-pipelines.GithubPackagesLoginStep"></a>
|
|
6418
6654
|
|
|
6655
|
+
Step to set the GITHUB_TOKEN environment variable from a secret.
|
|
6656
|
+
|
|
6657
|
+
Only supported for GitHub as it is GitHub specific.
|
|
6658
|
+
|
|
6419
6659
|
#### Initializers <a name="Initializers" id="projen-pipelines.GithubPackagesLoginStep.Initializer"></a>
|
|
6420
6660
|
|
|
6421
6661
|
```typescript
|
|
@@ -6499,6 +6739,96 @@ Should be implemented by subclasses.
|
|
|
6499
6739
|
|
|
6500
6740
|
|
|
6501
6741
|
|
|
6742
|
+
### NpmSecretStep <a name="NpmSecretStep" id="projen-pipelines.NpmSecretStep"></a>
|
|
6743
|
+
|
|
6744
|
+
Step to set the NPM_TOKEN environment variable from a secret.
|
|
6745
|
+
|
|
6746
|
+
Currently only supported and needed for GitHub.
|
|
6747
|
+
Gitlab sets the NPM_TOKEN environment variable automatically from the project's settings.
|
|
6748
|
+
|
|
6749
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.NpmSecretStep.Initializer"></a>
|
|
6750
|
+
|
|
6751
|
+
```typescript
|
|
6752
|
+
import { NpmSecretStep } from 'projen-pipelines'
|
|
6753
|
+
|
|
6754
|
+
new NpmSecretStep(project: Project, options: NpmSecretStepOptions)
|
|
6755
|
+
```
|
|
6756
|
+
|
|
6757
|
+
| **Name** | **Type** | **Description** |
|
|
6758
|
+
| --- | --- | --- |
|
|
6759
|
+
| <code><a href="#projen-pipelines.NpmSecretStep.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - The projen project reference. |
|
|
6760
|
+
| <code><a href="#projen-pipelines.NpmSecretStep.Initializer.parameter.options">options</a></code> | <code><a href="#projen-pipelines.NpmSecretStepOptions">NpmSecretStepOptions</a></code> | *No description.* |
|
|
6761
|
+
|
|
6762
|
+
---
|
|
6763
|
+
|
|
6764
|
+
##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.NpmSecretStep.Initializer.parameter.project"></a>
|
|
6765
|
+
|
|
6766
|
+
- *Type:* projen.Project
|
|
6767
|
+
|
|
6768
|
+
The projen project reference.
|
|
6769
|
+
|
|
6770
|
+
---
|
|
6771
|
+
|
|
6772
|
+
##### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.NpmSecretStep.Initializer.parameter.options"></a>
|
|
6773
|
+
|
|
6774
|
+
- *Type:* <a href="#projen-pipelines.NpmSecretStepOptions">NpmSecretStepOptions</a>
|
|
6775
|
+
|
|
6776
|
+
---
|
|
6777
|
+
|
|
6778
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
6779
|
+
|
|
6780
|
+
| **Name** | **Description** |
|
|
6781
|
+
| --- | --- |
|
|
6782
|
+
| <code><a href="#projen-pipelines.NpmSecretStep.toBash">toBash</a></code> | Generates a configuration for a bash script step. |
|
|
6783
|
+
| <code><a href="#projen-pipelines.NpmSecretStep.toCodeCatalyst">toCodeCatalyst</a></code> | Generates a configuration for a CodeCatalyst Actions step. |
|
|
6784
|
+
| <code><a href="#projen-pipelines.NpmSecretStep.toGithub">toGithub</a></code> | Generates a configuration for a GitHub Actions step. |
|
|
6785
|
+
| <code><a href="#projen-pipelines.NpmSecretStep.toGitlab">toGitlab</a></code> | Generates a configuration for a GitLab CI step. |
|
|
6786
|
+
|
|
6787
|
+
---
|
|
6788
|
+
|
|
6789
|
+
##### `toBash` <a name="toBash" id="projen-pipelines.NpmSecretStep.toBash"></a>
|
|
6790
|
+
|
|
6791
|
+
```typescript
|
|
6792
|
+
public toBash(): BashStepConfig
|
|
6793
|
+
```
|
|
6794
|
+
|
|
6795
|
+
Generates a configuration for a bash script step.
|
|
6796
|
+
|
|
6797
|
+
Should be implemented by subclasses.
|
|
6798
|
+
|
|
6799
|
+
##### `toCodeCatalyst` <a name="toCodeCatalyst" id="projen-pipelines.NpmSecretStep.toCodeCatalyst"></a>
|
|
6800
|
+
|
|
6801
|
+
```typescript
|
|
6802
|
+
public toCodeCatalyst(): CodeCatalystStepConfig
|
|
6803
|
+
```
|
|
6804
|
+
|
|
6805
|
+
Generates a configuration for a CodeCatalyst Actions step.
|
|
6806
|
+
|
|
6807
|
+
Should be implemented by subclasses.
|
|
6808
|
+
|
|
6809
|
+
##### `toGithub` <a name="toGithub" id="projen-pipelines.NpmSecretStep.toGithub"></a>
|
|
6810
|
+
|
|
6811
|
+
```typescript
|
|
6812
|
+
public toGithub(): GithubStepConfig
|
|
6813
|
+
```
|
|
6814
|
+
|
|
6815
|
+
Generates a configuration for a GitHub Actions step.
|
|
6816
|
+
|
|
6817
|
+
Should be implemented by subclasses.
|
|
6818
|
+
|
|
6819
|
+
##### `toGitlab` <a name="toGitlab" id="projen-pipelines.NpmSecretStep.toGitlab"></a>
|
|
6820
|
+
|
|
6821
|
+
```typescript
|
|
6822
|
+
public toGitlab(): GitlabStepConfig
|
|
6823
|
+
```
|
|
6824
|
+
|
|
6825
|
+
Generates a configuration for a GitLab CI step.
|
|
6826
|
+
|
|
6827
|
+
Should be implemented by subclasses.
|
|
6828
|
+
|
|
6829
|
+
|
|
6830
|
+
|
|
6831
|
+
|
|
6502
6832
|
### OutputConfigBase <a name="OutputConfigBase" id="projen-pipelines.OutputConfigBase"></a>
|
|
6503
6833
|
|
|
6504
6834
|
Base class for output configurations.
|
package/README.md
CHANGED
|
@@ -38,6 +38,7 @@ We aim to evolve into a universal CI/CD pipeline generator capable of supporting
|
|
|
38
38
|
* Traditional web applications
|
|
39
39
|
* Terraform / OpenTOFU projects
|
|
40
40
|
* Winglang applications
|
|
41
|
+
* Static websites and single-page applications
|
|
41
42
|
1. Multi-Cloud Deployment: While we started with AWS, we aim to support deployments to other major cloud providers like Azure, Google Cloud Platform, and others.
|
|
42
43
|
1. On-Premises and Hybrid Scenarios: We recognize the importance of on-premises and hybrid cloud setups and plan to cater to these deployment models.
|
|
43
44
|
1. Framework Agnostic: Our goal is to make Projen Pipelines adaptable to work with various development frameworks and tools, not just those related to AWS or cloud deployments.
|
|
@@ -497,6 +498,72 @@ When feature stages are configured, two GitHub workflows are created:
|
|
|
497
498
|
|
|
498
499
|
The feature deployment uses the `--force` flag when destroying to ensure cleanup without manual confirmation.
|
|
499
500
|
|
|
501
|
+
### AWS Amplify Deployment
|
|
502
|
+
|
|
503
|
+
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.
|
|
504
|
+
|
|
505
|
+
#### Configuration
|
|
506
|
+
|
|
507
|
+
To add Amplify deployment to your pipeline, use the `AmplifyDeployStep`:
|
|
508
|
+
|
|
509
|
+
```typescript
|
|
510
|
+
import { AmplifyDeployStep } from 'projen-pipelines';
|
|
511
|
+
|
|
512
|
+
// Using a static Amplify app ID
|
|
513
|
+
const deployStep = new AmplifyDeployStep(project, {
|
|
514
|
+
appId: 'd123gtgt770s1x',
|
|
515
|
+
artifactFile: 'dist.zip',
|
|
516
|
+
branchName: 'main', // optional, defaults to 'main'
|
|
517
|
+
region: 'us-east-1', // optional, defaults to 'eu-central-1'
|
|
518
|
+
});
|
|
519
|
+
|
|
520
|
+
// Using dynamic app ID extraction from CDK outputs
|
|
521
|
+
const deployStep = new AmplifyDeployStep(project, {
|
|
522
|
+
appIdCommand: 'jq -r \'.MyStack.AmplifyAppId\' cdk-outputs.json',
|
|
523
|
+
artifactFile: 'build.zip',
|
|
524
|
+
environment: 'production', // optional, for environment-specific deployments
|
|
525
|
+
});
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
#### How It Works
|
|
529
|
+
|
|
530
|
+
The Amplify deployment step:
|
|
531
|
+
1. Checks for any pending Amplify deployments and cancels them if needed
|
|
532
|
+
2. Creates a new deployment with the Amplify service
|
|
533
|
+
3. Uploads your build artifact (zip file) to Amplify
|
|
534
|
+
4. Starts the deployment and monitors its progress
|
|
535
|
+
5. Validates the deployment succeeded
|
|
536
|
+
|
|
537
|
+
#### Build Artifact Preparation
|
|
538
|
+
|
|
539
|
+
Before using the Amplify deployment step, ensure your build process creates a zip file containing your static website assets:
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
# Example: Creating a deployment artifact
|
|
543
|
+
npm run build
|
|
544
|
+
cd dist && zip -r ../dist.zip . && cd ..
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
#### Multi-Stage Deployments
|
|
548
|
+
|
|
549
|
+
For multi-stage deployments with different Amplify apps per environment:
|
|
550
|
+
|
|
551
|
+
```typescript
|
|
552
|
+
// In your CDK stack, output the Amplify app ID
|
|
553
|
+
new CfnOutput(this, 'AmplifyAppId', {
|
|
554
|
+
key: 'AmplifyAppId',
|
|
555
|
+
value: amplifyApp.appId,
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
// In your pipeline configuration
|
|
559
|
+
const deployStep = new AmplifyDeployStep(project, {
|
|
560
|
+
appIdCommand: `jq -r '.${stackName}.AmplifyAppId' cdk-outputs-${stage}.json`,
|
|
561
|
+
artifactFile: 'website.zip',
|
|
562
|
+
environment: stage,
|
|
563
|
+
branchName: stage === 'prod' ? 'main' : stage,
|
|
564
|
+
});
|
|
565
|
+
```
|
|
566
|
+
|
|
500
567
|
## Current Status
|
|
501
568
|
|
|
502
569
|
Projen-Pipelines is currently in version 0.x, awaiting Projen's 1.0 release. Despite its pre-1.0 status, it's being used in several production environments.
|
|
@@ -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.
|
|
15
|
+
AssignApprover[_a] = { fqn: "projen-pipelines.AssignApprover", version: "0.3.0" };
|
|
16
16
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NpZ24tYXBwcm92ZXIvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUE0QztBQXVCNUMsTUFBc0IsY0FBZSxTQUFRLGtCQUFTO0lBR3BELFlBQVksS0FBYyxFQUFxQixXQUFrQztRQUMvRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEZ0MsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO0lBRWpGLENBQUM7O0FBTEgsd0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmVyTWFwcGluZyB7XG5cbiAgcmVhZG9ubHkgYXV0aG9yOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwcHJvdmVyczogc3RyaW5nW107XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NpZ25BcHByb3Zlck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgbWFwcGluZyBvZiBhdXRob3JzIHRvIGFwcHJvdmVycy5cbiAgICovXG4gIHJlYWRvbmx5IGFwcHJvdmVyTWFwcGluZzogQXBwcm92ZXJNYXBwaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgdG9rZW4gdG8gdXNlIGZvciB0aGUgQVBJIGNhbGxzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEFwcHJvdmVyczogc3RyaW5nW107XG5cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFzc2lnbkFwcHJvdmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBQcm9qZWN0LCBwcm90ZWN0ZWQgcmVhZG9ubHkgYmFzZU9wdGlvbnM6IEFzc2lnbkFwcHJvdmVyT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlKTtcbiAgfVxuXG59Il19
|
|
@@ -35,7 +35,7 @@ class GitHubAssignApprover extends base_1.AssignApprover {
|
|
|
35
35
|
steps: [
|
|
36
36
|
{
|
|
37
37
|
name: 'Assign approver based on author',
|
|
38
|
-
uses: 'actions/github-script@
|
|
38
|
+
uses: 'actions/github-script@v8',
|
|
39
39
|
with: {
|
|
40
40
|
script: approverMappingScript,
|
|
41
41
|
},
|
|
@@ -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.
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
GitHubAssignApprover[_a] = { fqn: "projen-pipelines.GitHubAssignApprover", version: "0.3.0" };
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fzc2lnbi1hcHByb3Zlci9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSx1RUFBa0Y7QUFDbEYsaUNBQStEO0FBYS9ELE1BQWEsb0JBQXFCLFNBQVEscUJBQWM7SUFJdEQsWUFBWSxLQUFvQixFQUFFLE9BQW9DO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNmLGlCQUFpQixFQUFFO2dCQUNqQixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUM7YUFDdEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU87WUFDTCxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRVMsYUFBYTtRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFFbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUU7WUFDdEMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNyQyxLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsSUFBSSxFQUFFLDBCQUEwQjtvQkFDaEMsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxxQkFBcUI7cUJBQzlCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsNkJBQTZCO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZTthQUNwRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxNQUFNLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDN0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjthQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVkLE9BQU87Ozs7RUFJVCxjQUFjLEdBQUcsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkMsZ0JBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFxQjlCLENBQUM7SUFDRCxDQUFDOztBQXBGSCxvREFxRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRIdWJQcm9qZWN0LCBHaXRodWJXb3JrZmxvdyB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViJztcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlBlcm1pc3Npb25zIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IEFzc2lnbkFwcHJvdmVyLCBBc3NpZ25BcHByb3Zlck9wdGlvbnMgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdpdEh1YkFzc2lnbkFwcHJvdmVyT3B0aW9ucyBleHRlbmRzIEFzc2lnbkFwcHJvdmVyT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIHJ1bm5lciB0YWdzIHRvIHVzZSB0byBzZWxlY3QgcnVubmVyc1xuICAgKlxuICAgKiBAZGVmYXVsdCBbJ3VidW50dS1sYXRlc3QnXVxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyVGFncz86IHN0cmluZ1tdO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJBc3NpZ25BcHByb3ZlciBleHRlbmRzIEFzc2lnbkFwcHJvdmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdzogR2l0aHViV29ya2Zsb3c7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogR2l0SHViQXNzaWduQXBwcm92ZXJPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBHaXRIdWJQcm9qZWN0LCBvcHRpb25zOiBHaXRIdWJBc3NpZ25BcHByb3Zlck9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIC8vIEluaXRpYWxpemUgdGhlIGRlcGxveW1lbnQgd29ya2Zsb3cgb24gR2l0SHViLlxuICAgIHRoaXMud29ya2Zsb3cgPSBzY29wZS5naXRodWIhLmFkZFdvcmtmbG93KCdhc3NpZ24tYXBwcm92ZXInKTtcbiAgICB0aGlzLndvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0VGFyZ2V0OiB7XG4gICAgICAgIHR5cGVzOiBbJ29wZW5lZCcsICdyZWFkeV9mb3JfcmV2aWV3J10sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXR1cFdvcmtmbG93KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByZXF1aXJlZCBwZXJtaXNzaW9ucyBmb3IgdGhlIEdpdEh1YiB3b3JrZmxvd1xuICAgKi9cbiAgcHVibGljIHJlbmRlclBlcm1pc3Npb25zKCk6IEpvYlBlcm1pc3Npb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBXb3JrZmxvdygpOiB2b2lkIHtcbiAgICBjb25zdCBydW5uZXJUYWdzID0gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gWyd1YnVudHUtbGF0ZXN0J107XG5cbiAgICBjb25zdCBhcHByb3Zlck1hcHBpbmdTY3JpcHQgPSB0aGlzLmdlbmVyYXRlQXBwcm92ZXJNYXBwaW5nU2NyaXB0KCk7XG5cbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYignYXNzaWduLWFwcHJvdmVyJywge1xuICAgICAgcnVuc09uOiBydW5uZXJUYWdzLFxuICAgICAgcGVybWlzc2lvbnM6IHRoaXMucmVuZGVyUGVybWlzc2lvbnMoKSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQXNzaWduIGFwcHJvdmVyIGJhc2VkIG9uIGF1dGhvcicsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvZ2l0aHViLXNjcmlwdEB2OCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgc2NyaXB0OiBhcHByb3Zlck1hcHBpbmdTY3JpcHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVBcHByb3Zlck1hcHBpbmdTY3JpcHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXBwaW5nRW50cmllcyA9IHRoaXMuYmFzZU9wdGlvbnMuYXBwcm92ZXJNYXBwaW5nXG4gICAgICAubWFwKG1hcHBpbmcgPT4gYCAgJyR7bWFwcGluZy5hdXRob3J9JzogWyR7bWFwcGluZy5hcHByb3ZlcnMubWFwKGEgPT4gYCcke2F9J2ApLmpvaW4oJywgJyl9XWApXG4gICAgICAuam9pbignLFxcbicpO1xuXG4gICAgY29uc3QgZGVmYXVsdEFwcHJvdmVycyA9IHRoaXMuYmFzZU9wdGlvbnMuZGVmYXVsdEFwcHJvdmVyc1xuICAgICAgLm1hcChhID0+IGAnJHthfSdgKVxuICAgICAgLmpvaW4oJywgJyk7XG5cbiAgICByZXR1cm4gYGNvbnN0IGF1dGhvciA9IGNvbnRleHQucGF5bG9hZC5wdWxsX3JlcXVlc3QudXNlci5sb2dpbjtcblxuLy8gRGVmaW5lIGFwcHJvdmVyIG1hcHBpbmdcbmNvbnN0IGFwcHJvdmVyTWFwcGluZyA9IHtcbiR7bWFwcGluZ0VudHJpZXN9JHttYXBwaW5nRW50cmllcy5sZW5ndGggPiAwID8gJywnIDogJyd9XG4gICdkZWZhdWx0JzogWyR7ZGVmYXVsdEFwcHJvdmVyc31dIC8vIERlZmF1bHQgYXBwcm92ZXIocykgaWYgYXV0aG9yIG5vdCBpbiBtYXBwaW5nXG59O1xuXG4vLyBHZXQgYXBwcm92ZXJzIGZvciB0aGUgUFIgYXV0aG9yXG5jb25zdCBhcHByb3ZlcnMgPSBhcHByb3Zlck1hcHBpbmdbYXV0aG9yXSB8fCBhcHByb3Zlck1hcHBpbmdbJ2RlZmF1bHQnXTtcblxuLy8gRmlsdGVyIG91dCB0aGUgYXV0aG9yIGZyb20gYXBwcm92ZXJzIGxpc3QgKGNhbid0IGFwcHJvdmUgb3duIFBSKVxuY29uc3QgZmlsdGVyZWRBcHByb3ZlcnMgPSBhcHByb3ZlcnMuZmlsdGVyKGFwcHJvdmVyID0+IGFwcHJvdmVyICE9PSBhdXRob3IpO1xuXG5pZiAoZmlsdGVyZWRBcHByb3ZlcnMubGVuZ3RoID4gMCkge1xuICAvLyBSZXF1ZXN0IHJldmlld3MgZnJvbSB0aGUgYXBwcm92ZXJzXG4gIGF3YWl0IGdpdGh1Yi5yZXN0LnB1bGxzLnJlcXVlc3RSZXZpZXdlcnMoe1xuICAgIG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsXG4gICAgcmVwbzogY29udGV4dC5yZXBvLnJlcG8sXG4gICAgcHVsbF9udW1iZXI6IGNvbnRleHQuaXNzdWUubnVtYmVyLFxuICAgIHJldmlld2VyczogZmlsdGVyZWRBcHByb3ZlcnNcbiAgfSk7XG4gIFxuICBjb25zb2xlLmxvZyhcXGBBc3NpZ25lZCByZXZpZXdlcnM6IFxcJHtmaWx0ZXJlZEFwcHJvdmVycy5qb2luKCcsICcpfVxcYCk7XG59IGVsc2Uge1xuICBjb25zb2xlLmxvZygnTm8gZWxpZ2libGUgcmV2aWV3ZXJzIGZvdW5kIGZvciB0aGlzIFBSIGF1dGhvcicpO1xufWA7XG4gIH1cbn1cbiJdfQ==
|