projen-pipelines 0.2.15 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +375 -82
- package/API.md +238 -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.d.ts +7 -0
- package/lib/awscdk/base.js +8 -2
- package/lib/awscdk/bash.js +1 -1
- package/lib/awscdk/github.js +13 -9
- package/lib/awscdk/gitlab.js +1 -1
- package/lib/drift/base.d.ts +4 -0
- package/lib/drift/base.js +2 -2
- 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 +3 -2
- 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.d.ts +4 -0
- package/lib/steps/aws-assume-role.step.js +37 -13
- package/lib/steps/index.d.ts +1 -0
- package/lib/steps/index.js +2 -1
- package/lib/steps/registries.js +3 -3
- 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/.jsii
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"constructs": "^10.4.2",
|
|
19
|
-
"projen": ">=0.
|
|
19
|
+
"projen": ">=0.96.3 <1.0.0"
|
|
20
20
|
},
|
|
21
21
|
"dependencyClosure": {
|
|
22
22
|
"constructs": {
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"projen.gitlab": {},
|
|
58
58
|
"projen.java": {},
|
|
59
59
|
"projen.javascript": {},
|
|
60
|
+
"projen.javascript.biome_config": {},
|
|
60
61
|
"projen.python": {},
|
|
61
62
|
"projen.release": {},
|
|
62
63
|
"projen.typescript": {},
|
|
@@ -106,7 +107,7 @@
|
|
|
106
107
|
},
|
|
107
108
|
"name": "projen-pipelines",
|
|
108
109
|
"readme": {
|
|
109
|
-
"markdown": "# Projen Pipelines\n\n[](https://www.npmjs.com/package/projen-pipelines)\n\nProjen Pipelines is an open-source project that automates the generation of CI/CD pipelines using Projen,\na project configuration tool created by the inventor of AWS CDK.\nIt provides high-level abstractions for defining continuous delivery (CD) pipelines for applications,\nspecifically designed to work with the projen project configuration engine.\n\n### Key Features\n\n* Automates code generation for CI/CD pipelines\n* Supports multiple CI/CD platforms (currently GitHub Actions and GitLab CI, with more in development)\n* Provides baked-in proven defaults for pipeline configurations\n* Enables compliance-as-code integration\n* Allows easy switching between different CI/CD platforms without rewriting pipeline configurations\n* Handles complex deployment scenarios with less code\n* Manages AWS infrastructure more efficiently and straightforwardly\n* Automated drift detection for CloudFormation/CDK stacks with scheduled checks and issue creation\n* Automatic versioning with flexible strategies and multiple output targets\n\n### Benefits\n\n* Reduces repetitive work in writing and maintaining pipeline configurations\n* Ensures consistency across projects by using proven defaults\n* Simplifies compliance management by integrating it directly into pipeline definitions\n* Facilitates platform migrations (e.g., from GitHub to GitLab) by abstracting pipeline definitions\n* Provides automatic version tracking and exposure through CloudFormation and SSM Parameter Store\n\n## Beyond AWS CDK: A Vision for Universal CI/CD Pipeline Generation\n\nWhile Projen Pipelines currently focuses on AWS CDK applications, our vision extends far beyond this initial scope.\nWe aim to evolve into a universal CI/CD pipeline generator capable of supporting a wide variety of application types and deployment targets.\n\n### Future Direction:\n\n1. Diverse Application Support: We plan to expand our capabilities to generate pipelines for various application types, including but not limited to:\n * Traditional web applications\n * Terraform / OpenTOFU projects\n * Winglang applications\n1. 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.\n1. On-Premises and Hybrid Scenarios: We recognize the importance of on-premises and hybrid cloud setups and plan to cater to these deployment models.\n1. 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.\n1. Extensibility: We're designing the system to be easily extensible, allowing the community to contribute modules for new application types, deployment targets, or CI/CD platforms.\n\nBy broadening our scope, we aim to create a tool that can standardize and simplify CI/CD pipeline creation across the entire spectrum of modern application development and deployment scenarios.\nWe invite the community to join us in this journey, contributing ideas, use cases, and code to help realize this vision.\n\n## How Projen Pipelines work\n\n\nUnder the hood, after you define the pipeline and select the target engine you want to work on, we use code generation methods to create the required CI/CD pipeline in your project.\n\nWe are considering allowing the selection of multiple engines going forward - please let us know if this is a feature you would use!\n\n## Getting Started\n\n### Installation\n\nTo install the package, add the package `projen-pipelines` to your projects devDeps in your projen configuration file.\n\nAfter installing the package, you can import and use the constructs to define your CDK Pipelines.\n\nYou will also have to setup an IAM role that can be used by GitHub Actions. For example, create a role named `GithubDeploymentRole` in your deployment account (`123456789012`) with a policy like this to assume the CDK roles of the pipeline stages (AWS account IDs `123456789013` and `123456789014`):\n```json\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"Statement1\",\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Resource\": [\n \"arn:aws:iam::123456789013:role/cdk-*-123456789013-*\",\n \"arn:aws:iam::123456789014:role/cdk-*-123456789014-*\"\n ]\n }\n ]\n}\n```\n\nAdd a trust policy to this role as described in this tutorial: [Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)\n\n### Usage with AWS CDK\n\nYou can start using the constructs provided by Projen Pipelines in your AWS CDK applications. Here's a brief example:\n\n```typescript\nimport { awscdk } from 'projen';\nimport { GithubCDKPipeline } from 'projen-pipelines';\n\n// Define your AWS CDK TypeScript App\nconst app = new awscdk.AwsCdkTypeScriptApp({\n cdkVersion: '2.150.0',\n name: 'my-awesome-app',\n defaultReleaseBranch: 'main',\n devDeps: [\n 'projen-pipelines',\n ],\n});\n\n// Create the pipeline\nnew GithubCDKPipeline(app, {\n stackPrefix: 'MyApp',\n iamRoleArns: {\n default: 'arn:aws:iam::123456789012:role/GithubDeploymentRole',\n },\n pkgNamespace: '@company-assemblies',\n useGithubPackagesForAssembly: true,\n stages: [\n {\n name: 'dev',\n env: { account: '123456789013', region: 'eu-central-1' },\n }, {\n name: 'prod',\n manualApproval: true,\n env: { account: '123456789014', region: 'eu-central-1' },\n }],\n});\n```\n\nAfter running projen (`npx projen`) a new file called `src/app.ts` will be created and contain a specialized CDK App class for your project.\n\nYou can then use this in your `main.ts` to configure your deployment.\n\n```typescript\nimport { PipelineApp } from './app';\nimport { BackendStack } from './stack';\n\nconst app = new PipelineApp({\n provideDevStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: 'api-dev',\n myConfigSetting: 'value-for-dev',\n });\n },\n provideProdStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: 'api',\n myConfigSetting: 'value-for-prod',\n });\n },\n providePersonalStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: `api-${props.stageName}`,\n myConfigSetting: 'value-for-personal-stage',\n });\n },\n});\n\napp.synth();\n```\n\n### Drift Detection\n\nProjen Pipelines includes built-in support for automated drift detection of your CloudFormation/CDK stacks. This feature helps you identify when your deployed infrastructure has diverged from your code definitions.\n\n```typescript\nimport { GitHubDriftDetectionWorkflow } from 'projen-pipelines';\n\nnew GitHubDriftDetectionWorkflow(app, {\n schedule: '0 0 * * *', // Daily at midnight\n createIssues: true, // Automatically create GitHub issues\n stages: [\n {\n name: 'production',\n region: 'us-east-1',\n roleArn: 'arn:aws:iam::123456789012:role/DriftDetectionRole',\n failOnDrift: true,\n },\n ],\n});\n```\n\nSee the [drift detection documentation](docs/drift-detection.md) for detailed configuration options and examples.\n\n### Setting Up Trust Relationships Between Accounts\n\nWhen planning to manage multiple staging environments, you will need to establish trust relationships. This process centralizes deployment control, improving operational efficiency and security by consolidating deployment management through a singular, monitored channel. Here is a simplified diagram for the setup:\n\n\n\n#### Step 1: Bootstrapping Each Account\n\nBootstrapping initializes the AWS CDK environment in each account. It prepares the account to work with AWS CDK apps deployed from other accounts. Use the `cdk bootstrap` command for this purpose. Replace `<deployment_account_id>` with the actual AWS account ID of your deployment account.\n\nYou can use the [CloudShell](https://aws.amazon.com/cloudshell/) to bootstrap each staging account:\n\n```bash\ncdk bootstrap --trust <deployment_account_id> --cloudformation-execution-policies \"arn:aws:iam::aws:policy/AdministratorAccess\"\n```\n\n**Note:**\n\nWhile `AdministratorAccess` grants full access to all AWS services and resources, it's not recommended for production environments due to security risks. Instead, create custom IAM policies that grant only the necessary permissions required for deployment operations.\n\n### Deployment\n\nThe `<Engine>CDKPipeline` class creates and adds several tasks to the projen project that then can be used in your pipeline to deploy your application to AWS.\n\nHere's a brief description of each one:\n\n1. **deploy:personal** - This task deploys the application's personal stage, which is a distinct, isolated deployment of the application. The personal stage is intended for personal use, such as testing and development.\n\n2. **watch:personal** - This task deploys the personal stage of the application in watch mode. In this mode, the AWS CDK monitors your application source files for changes, automatically re-synthesizing and deploying when it detects any changes.\n\n3. **diff:personal** - This task compares the deployed personal stage with the current state of the application code. It's used to understand what changes would be made if the application were deployed.\n\n4. **destroy:personal** - This task destroys the resources created for the personal stage of the application.\n\n5. **deploy:feature** - This task deploys the application's feature stage. The feature stage is used for new features testing before these are merged into the main branch.\n\n6. **diff:feature** - This task is similar to `diff:personal`, but for the feature stage.\n\n7. **destroy:feature** - This task destroys the resources created for the feature stage of the application.\n\n8. **deploy:<stageName>** - This task deploys a specific stage of the application (like 'dev' or 'prod').\n\n9. **diff:<stageName>** - This task compares the specified application stage with the current state of the application code.\n\n10. **publish:assets** - This task publishes the CDK assets to all accounts. This is useful when the CDK application uses assets like Docker images or files from the S3 bucket.\n\n11. **bump** - This task bumps the version based on the latest git tag and pushes the updated tag to the git repository.\n\n12. **release:push-assembly** - This task creates a manifest, bumps the version without creating a git tag, and publishes the cloud assembly to your registry.\n\nRemember that these tasks are created and managed automatically by the `CDKPipeline` class. You can run these tasks using the `npx projen TASK_NAME` command.\n\n## Versioning\n\nProjen Pipelines includes a comprehensive versioning system that automatically tracks and exposes deployment versions through various AWS services. This feature enables deployment traceability, automated rollback decisions, and comprehensive audit trails.\n\n### Basic Versioning Configuration\n\nTo enable versioning in your pipeline, add the `versioning` configuration:\n\n```typescript\nimport { awscdk } from 'projen';\nimport { GithubCDKPipeline, VersioningStrategy, VersioningOutputs } from 'projen-pipelines';\n\nconst app = new awscdk.AwsCdkTypeScriptApp({\n // ... other config\n});\n\nnew GithubCDKPipeline(app, {\n // ... other pipeline config\n\n versioning: {\n enabled: true,\n strategy: VersioningStrategy.commitCount(),\n outputs: VersioningOutputs.standard()\n }\n});\n```\n\n### Versioning Strategies\n\nProjen Pipelines provides several built-in versioning strategies:\n\n#### Git Tag Strategy\nUses git tags as the version source, with optional prefix stripping:\n\n```typescript\n// Basic git tag strategy\nconst strategy = VersioningStrategy.gitTag();\n\n// With custom configuration\nconst strategy = VersioningStrategy.gitTag({\n stripPrefix: 'v', // Strip 'v' from tags (v1.2.3 → 1.2.3)\n annotatedOnly: true, // Only use annotated tags\n includeSinceTag: true // Include commits since tag\n});\n```\n\n#### Package.json Strategy\nUses the version from your package.json file:\n\n```typescript\n// Basic package.json strategy\nconst strategy = VersioningStrategy.packageJson();\n\n// With custom configuration\nconst strategy = VersioningStrategy.packageJson({\n path: './package.json',\n includePrerelease: true,\n appendCommitInfo: true\n});\n```\n\n#### Commit Count Strategy\nUses the number of commits as the version:\n\n```typescript\n// Basic commit count strategy\nconst strategy = VersioningStrategy.commitCount();\n\n// With custom configuration\nconst strategy = VersioningStrategy.commitCount({\n countFrom: 'all', // 'all' | 'since-tag'\n includeBranch: true, // Include branch name\n padding: 5 // Zero-pad count (00001)\n});\n```\n\n#### Build Number Strategy\nCreates a version from build metadata:\n\n```typescript\n// Basic build number strategy\nconst strategy = VersioningStrategy.buildNumber();\n\n// With custom configuration\nconst strategy = VersioningStrategy.buildNumber({\n prefix: 'release',\n commitCount: { countFrom: 'all', padding: 5 }\n});\n// Output: release-01234-3a4b5c6d\n```\n\n#### Custom Composite Strategy\nCreate your own version format using template variables:\n\n```typescript\nconst strategy = VersioningStrategy.create(\n '{git-tag}+{commit-count}-{commit-hash:8}',\n {\n gitTag: { stripPrefix: 'v' },\n commitCount: { countFrom: 'since-tag' }\n }\n);\n// Output: 1.2.3+45-3a4b5c6d\n```\n\n### Version Output Configurations\n\nControl how and where version information is exposed:\n\n#### CloudFormation Outputs\nExport version information as CloudFormation stack outputs:\n\n```typescript\n// Basic CloudFormation output\nconst outputs = VersioningOutputs.cloudFormationOnly();\n\n// With custom configuration\nconst outputs = VersioningOutputs.cloudFormationOnly({\n exportName: 'MyApp-{stage}-Version'\n});\n```\n\n#### SSM Parameter Store\nStore version information in AWS Systems Manager Parameter Store:\n\n```typescript\n// Basic parameter store\nconst outputs = VersioningOutputs.parameterStoreOnly('/myapp/{stage}/version');\n\n// Hierarchical parameters\nconst outputs = VersioningOutputs.hierarchicalParameters('/myapp/{stage}/version', {\n includeCloudFormation: true\n});\n```\n\nThis creates parameters like:\n- `/myapp/prod/version` → Full version JSON\n- `/myapp/prod/version/commit` → Commit hash\n- `/myapp/prod/version/tag` → Git tag\n- `/myapp/prod/version/count` → Commit count\n\n#### Standard Configuration\nThe recommended configuration that uses CloudFormation outputs with optional Parameter Store:\n\n```typescript\nconst outputs = VersioningOutputs.standard({\n parameterName: '/myapp/{stage}/version',\n});\n```\n\n### Output Formats\n\nVersion information can be output in two formats:\n\n**Plain Format:** Simple string values in CloudFormation\n```yaml\nOutputs:\n AppVersion:\n Value: \"1.2.3+45-3a4b5c6d\"\n Description: \"Application version\"\n AppCommitHash:\n Value: \"3a4b5c6def1234567890\"\n Description: \"Git commit hash\"\n```\n\n**Structured Format:** JSON object with comprehensive metadata in SSM\n```json\n{\n \"version\": \"1.2.3\",\n \"commitHash\": \"3a4b5c6def1234567890\",\n \"commitCount\": 1234,\n \"commitsSinceTag\": 45,\n \"branch\": \"main\",\n \"tag\": \"v1.2.3\",\n \"deployedAt\": \"2024-01-15T10:30:00Z\",\n \"deployedBy\": \"github-actions\",\n \"buildNumber\": \"456\",\n \"environment\": \"production\"\n}\n```\n\n### Stage-Specific Overrides\n\nConfigure different versioning strategies for different stages:\n\n```typescript\nnew GithubCDKPipeline(app, {\n versioning: {\n enabled: true,\n strategy: VersioningStrategy.gitTag(),\n outputs: VersioningOutputs.standard(),\n stageOverrides: {\n dev: {\n strategy: VersioningStrategy.commitCount(),\n outputs: VersioningOutputs.minimal()\n },\n prod: {\n validation: {\n requireTag: true,\n tagPattern: /^v\\d+\\.\\d+\\.\\d+$/\n }\n }\n }\n }\n});\n```\n\n### Template Variables\n\nAll strategies support these template variables:\n- `{git-tag}` - Git tag (with optional prefix stripping)\n- `{package-version}` - Version from package.json\n- `{commit-count}` - Number of commits\n- `{commit-hash}` - Full commit hash\n- `{commit-hash:8}` - Short commit hash (8 characters)\n- `{branch}` - Git branch name\n- `{build-number}` - CI/CD build number\n\n### Benefits of Versioning\n\n1. **Deployment Traceability**: Always know exactly which code version is deployed\n2. **Automated Rollback**: Use version information for automated rollback decisions\n3. **Audit Trail**: Comprehensive deployment history with metadata\n4. **Multi-Stage Support**: Different versioning strategies per environment\n5. **Zero Configuration**: Works out-of-the-box with sensible defaults\n6. **CI/CD Integration**: Automatically detects version info from CI/CD environments\n\n### Feature Branch Deployments\n\nProjen Pipelines supports automated feature branch deployments for GitHub Actions. This allows you to deploy and test your changes in isolated environments before merging to the main branch. Gitlab support is currently missing.\n\n#### Configuration\n\nTo enable feature branch deployments, add the `featureStages` configuration to your pipeline:\n\n```typescript\nnew GithubCDKPipeline(app, {\n stackPrefix: 'MyApp',\n iamRoleArns: {\n default: 'arn:aws:iam::123456789012:role/GithubDeploymentRole',\n },\n featureStages: {\n env: { account: '123456789013', region: 'eu-central-1' },\n },\n stages: [\n // ... your regular stages\n ],\n});\n```\n\n#### How It Works\n\nWhen feature stages are configured, two GitHub workflows are created:\n\n1. **deploy-feature** - Automatically deploys your feature branch when a pull request is labeled with `feature-deployment`\n2. **destroy-feature** - Automatically destroys the feature deployment when:\n - The pull request is closed\n - The `feature-deployment` label is removed from the pull request\n\n#### Using Feature Deployments\n\n1. Create a pull request with your changes\n2. Add the `feature-deployment` label to trigger deployment\n3. The feature environment will be deployed with a stack name including your branch name\n4. Remove the label or close the PR to destroy the feature environment\n\nThe feature deployment uses the `--force` flag when destroying to ensure cleanup without manual confirmation.\n\n## Current Status\n\nProjen-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.\n\n## Contributing\n\n### By raising feature requests or issues\n\nUse the Github integrated \"[Issues](https://github.com/taimos/projen-pipelines/issues/new)\" view to create an item that you would love to have added to our open source project.\n\n***No request is too big or too small*** - get your thoughts created and we'll get back to you if we have questions!\n\n### By committing code\n\nWe welcome all contributions to Projen Pipelines! Here's how you can get started:\n\n1. **Fork the Repository**: Click the 'Fork' button at the top right of this page to duplicate this repository in your GitHub account.\n\n2. **Clone your Fork**: Clone the forked repository to your local machine.\n\n```bash\ngit clone https://github.com/<your_username>/projen-pipelines.git\n```\n\n3. **Create a Branch**: To keep your work organized, create a branch for your contribution.\n\n```bash\ngit checkout -b my-branch\n```\n\n4. **Make your Changes**: Make your changes, additions, or fixes to the codebase. Remember to follow the existing code style.\n\n5. **Test your Changes**: Before committing your changes, make sure to test them to ensure they work as expected and do not introduce bugs.\n\n6. **Commit your Changes**: Commit your changes with a descriptive commit message using conventional commit messages.\n\n```bash\ngit commit -m \"feat: Your descriptive commit message\"\n```\n\n7. **Push to your Fork**: Push your commits to the branch in your forked repository.\n\n```bash\ngit push -u origin my-branch\n```\n\n8. **Submit a Pull Request**: Once your changes are ready to be reviewed, create a pull request from your forked repository's branch into the `main` branch of this repository.\n\nYour pull request will be reviewed and hopefully merged quickly. Thanks for contributing!\n\n### How to test changes?\nThe best way currently is to test things locally or - if you have a working stall of all supported CI/CD tools - manually test the functionalities there in diferent projects.\n\n_For local testing:_\nUsing `yalc push` you can install the project locally to your local yalc package manager. You can also use `npm run local-push` instead of this.\n\nWith `yalc add projen-pipelines` you can then use it in a local project.\n\n\n## Future Plans\n\n* Move the project to the Open Construct Foundation for broader community involvement\n* Continue expanding support for different CI/CD platforms and project types\n\nJoin us in elevating CI/CD pipeline discussions from implementation details to fundamental building blocks, and help create a more efficient, standardized approach to pipeline development!\n\n## Known issues\n\n### Environment variable not recognized during `npx projen`\n\nWhen attempting to run `npx projen`, users may encounter an error related to environment variable substitution within configuration files. Specifically, the `${GITHUB_TOKEN}` placeholder fails to be replaced.\n\n#### Solution\n\nTo resolve this issue, prefix the `npx projen` command with the `GITHUB_TOKEN=` environment variable:\n\n```bash\nGITHUB_TOKEN= npx projen\n```\n"
|
|
110
|
+
"markdown": "# Projen Pipelines\n\n[](https://www.npmjs.com/package/projen-pipelines)\n\nProjen Pipelines is an open-source project that automates the generation of CI/CD pipelines using Projen,\na project configuration tool created by the inventor of AWS CDK.\nIt provides high-level abstractions for defining continuous delivery (CD) pipelines for applications,\nspecifically designed to work with the projen project configuration engine.\n\n### Key Features\n\n* Automates code generation for CI/CD pipelines\n* Supports multiple CI/CD platforms (currently GitHub Actions and GitLab CI, with more in development)\n* Provides baked-in proven defaults for pipeline configurations\n* Enables compliance-as-code integration\n* Allows easy switching between different CI/CD platforms without rewriting pipeline configurations\n* Handles complex deployment scenarios with less code\n* Manages AWS infrastructure more efficiently and straightforwardly\n* Automated drift detection for CloudFormation/CDK stacks with scheduled checks and issue creation\n* Automatic versioning with flexible strategies and multiple output targets\n\n### Benefits\n\n* Reduces repetitive work in writing and maintaining pipeline configurations\n* Ensures consistency across projects by using proven defaults\n* Simplifies compliance management by integrating it directly into pipeline definitions\n* Facilitates platform migrations (e.g., from GitHub to GitLab) by abstracting pipeline definitions\n* Provides automatic version tracking and exposure through CloudFormation and SSM Parameter Store\n\n## Beyond AWS CDK: A Vision for Universal CI/CD Pipeline Generation\n\nWhile Projen Pipelines currently focuses on AWS CDK applications, our vision extends far beyond this initial scope.\nWe aim to evolve into a universal CI/CD pipeline generator capable of supporting a wide variety of application types and deployment targets.\n\n### Future Direction:\n\n1. Diverse Application Support: We plan to expand our capabilities to generate pipelines for various application types, including but not limited to:\n * Traditional web applications\n * Terraform / OpenTOFU projects\n * Winglang applications\n * Static websites and single-page applications\n1. 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.\n1. On-Premises and Hybrid Scenarios: We recognize the importance of on-premises and hybrid cloud setups and plan to cater to these deployment models.\n1. 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.\n1. Extensibility: We're designing the system to be easily extensible, allowing the community to contribute modules for new application types, deployment targets, or CI/CD platforms.\n\nBy broadening our scope, we aim to create a tool that can standardize and simplify CI/CD pipeline creation across the entire spectrum of modern application development and deployment scenarios.\nWe invite the community to join us in this journey, contributing ideas, use cases, and code to help realize this vision.\n\n## How Projen Pipelines work\n\n\nUnder the hood, after you define the pipeline and select the target engine you want to work on, we use code generation methods to create the required CI/CD pipeline in your project.\n\nWe are considering allowing the selection of multiple engines going forward - please let us know if this is a feature you would use!\n\n## Getting Started\n\n### Installation\n\nTo install the package, add the package `projen-pipelines` to your projects devDeps in your projen configuration file.\n\nAfter installing the package, you can import and use the constructs to define your CDK Pipelines.\n\nYou will also have to setup an IAM role that can be used by GitHub Actions. For example, create a role named `GithubDeploymentRole` in your deployment account (`123456789012`) with a policy like this to assume the CDK roles of the pipeline stages (AWS account IDs `123456789013` and `123456789014`):\n```json\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"Statement1\",\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Resource\": [\n \"arn:aws:iam::123456789013:role/cdk-*-123456789013-*\",\n \"arn:aws:iam::123456789014:role/cdk-*-123456789014-*\"\n ]\n }\n ]\n}\n```\n\nAdd a trust policy to this role as described in this tutorial: [Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)\n\n### Usage with AWS CDK\n\nYou can start using the constructs provided by Projen Pipelines in your AWS CDK applications. Here's a brief example:\n\n```typescript\nimport { awscdk } from 'projen';\nimport { GithubCDKPipeline } from 'projen-pipelines';\n\n// Define your AWS CDK TypeScript App\nconst app = new awscdk.AwsCdkTypeScriptApp({\n cdkVersion: '2.150.0',\n name: 'my-awesome-app',\n defaultReleaseBranch: 'main',\n devDeps: [\n 'projen-pipelines',\n ],\n});\n\n// Create the pipeline\nnew GithubCDKPipeline(app, {\n stackPrefix: 'MyApp',\n iamRoleArns: {\n default: 'arn:aws:iam::123456789012:role/GithubDeploymentRole',\n },\n pkgNamespace: '@company-assemblies',\n useGithubPackagesForAssembly: true,\n stages: [\n {\n name: 'dev',\n env: { account: '123456789013', region: 'eu-central-1' },\n }, {\n name: 'prod',\n manualApproval: true,\n env: { account: '123456789014', region: 'eu-central-1' },\n }],\n});\n```\n\nAfter running projen (`npx projen`) a new file called `src/app.ts` will be created and contain a specialized CDK App class for your project.\n\nYou can then use this in your `main.ts` to configure your deployment.\n\n```typescript\nimport { PipelineApp } from './app';\nimport { BackendStack } from './stack';\n\nconst app = new PipelineApp({\n provideDevStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: 'api-dev',\n myConfigSetting: 'value-for-dev',\n });\n },\n provideProdStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: 'api',\n myConfigSetting: 'value-for-prod',\n });\n },\n providePersonalStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: `api-${props.stageName}`,\n myConfigSetting: 'value-for-personal-stage',\n });\n },\n});\n\napp.synth();\n```\n\n### Drift Detection\n\nProjen Pipelines includes built-in support for automated drift detection of your CloudFormation/CDK stacks. This feature helps you identify when your deployed infrastructure has diverged from your code definitions.\n\n```typescript\nimport { GitHubDriftDetectionWorkflow } from 'projen-pipelines';\n\nnew GitHubDriftDetectionWorkflow(app, {\n schedule: '0 0 * * *', // Daily at midnight\n createIssues: true, // Automatically create GitHub issues\n stages: [\n {\n name: 'production',\n region: 'us-east-1',\n roleArn: 'arn:aws:iam::123456789012:role/DriftDetectionRole',\n failOnDrift: true,\n },\n ],\n});\n```\n\nSee the [drift detection documentation](docs/drift-detection.md) for detailed configuration options and examples.\n\n### Setting Up Trust Relationships Between Accounts\n\nWhen planning to manage multiple staging environments, you will need to establish trust relationships. This process centralizes deployment control, improving operational efficiency and security by consolidating deployment management through a singular, monitored channel. Here is a simplified diagram for the setup:\n\n\n\n#### Step 1: Bootstrapping Each Account\n\nBootstrapping initializes the AWS CDK environment in each account. It prepares the account to work with AWS CDK apps deployed from other accounts. Use the `cdk bootstrap` command for this purpose. Replace `<deployment_account_id>` with the actual AWS account ID of your deployment account.\n\nYou can use the [CloudShell](https://aws.amazon.com/cloudshell/) to bootstrap each staging account:\n\n```bash\ncdk bootstrap --trust <deployment_account_id> --cloudformation-execution-policies \"arn:aws:iam::aws:policy/AdministratorAccess\"\n```\n\n**Note:**\n\nWhile `AdministratorAccess` grants full access to all AWS services and resources, it's not recommended for production environments due to security risks. Instead, create custom IAM policies that grant only the necessary permissions required for deployment operations.\n\n### Deployment\n\nThe `<Engine>CDKPipeline` class creates and adds several tasks to the projen project that then can be used in your pipeline to deploy your application to AWS.\n\nHere's a brief description of each one:\n\n1. **deploy:personal** - This task deploys the application's personal stage, which is a distinct, isolated deployment of the application. The personal stage is intended for personal use, such as testing and development.\n\n2. **watch:personal** - This task deploys the personal stage of the application in watch mode. In this mode, the AWS CDK monitors your application source files for changes, automatically re-synthesizing and deploying when it detects any changes.\n\n3. **diff:personal** - This task compares the deployed personal stage with the current state of the application code. It's used to understand what changes would be made if the application were deployed.\n\n4. **destroy:personal** - This task destroys the resources created for the personal stage of the application.\n\n5. **deploy:feature** - This task deploys the application's feature stage. The feature stage is used for new features testing before these are merged into the main branch.\n\n6. **diff:feature** - This task is similar to `diff:personal`, but for the feature stage.\n\n7. **destroy:feature** - This task destroys the resources created for the feature stage of the application.\n\n8. **deploy:<stageName>** - This task deploys a specific stage of the application (like 'dev' or 'prod').\n\n9. **diff:<stageName>** - This task compares the specified application stage with the current state of the application code.\n\n10. **publish:assets** - This task publishes the CDK assets to all accounts. This is useful when the CDK application uses assets like Docker images or files from the S3 bucket.\n\n11. **bump** - This task bumps the version based on the latest git tag and pushes the updated tag to the git repository.\n\n12. **release:push-assembly** - This task creates a manifest, bumps the version without creating a git tag, and publishes the cloud assembly to your registry.\n\nRemember that these tasks are created and managed automatically by the `CDKPipeline` class. You can run these tasks using the `npx projen TASK_NAME` command.\n\n## Versioning\n\nProjen Pipelines includes a comprehensive versioning system that automatically tracks and exposes deployment versions through various AWS services. This feature enables deployment traceability, automated rollback decisions, and comprehensive audit trails.\n\n### Basic Versioning Configuration\n\nTo enable versioning in your pipeline, add the `versioning` configuration:\n\n```typescript\nimport { awscdk } from 'projen';\nimport { GithubCDKPipeline, VersioningStrategy, VersioningOutputs } from 'projen-pipelines';\n\nconst app = new awscdk.AwsCdkTypeScriptApp({\n // ... other config\n});\n\nnew GithubCDKPipeline(app, {\n // ... other pipeline config\n\n versioning: {\n enabled: true,\n strategy: VersioningStrategy.commitCount(),\n outputs: VersioningOutputs.standard()\n }\n});\n```\n\n### Versioning Strategies\n\nProjen Pipelines provides several built-in versioning strategies:\n\n#### Git Tag Strategy\nUses git tags as the version source, with optional prefix stripping:\n\n```typescript\n// Basic git tag strategy\nconst strategy = VersioningStrategy.gitTag();\n\n// With custom configuration\nconst strategy = VersioningStrategy.gitTag({\n stripPrefix: 'v', // Strip 'v' from tags (v1.2.3 → 1.2.3)\n annotatedOnly: true, // Only use annotated tags\n includeSinceTag: true // Include commits since tag\n});\n```\n\n#### Package.json Strategy\nUses the version from your package.json file:\n\n```typescript\n// Basic package.json strategy\nconst strategy = VersioningStrategy.packageJson();\n\n// With custom configuration\nconst strategy = VersioningStrategy.packageJson({\n path: './package.json',\n includePrerelease: true,\n appendCommitInfo: true\n});\n```\n\n#### Commit Count Strategy\nUses the number of commits as the version:\n\n```typescript\n// Basic commit count strategy\nconst strategy = VersioningStrategy.commitCount();\n\n// With custom configuration\nconst strategy = VersioningStrategy.commitCount({\n countFrom: 'all', // 'all' | 'since-tag'\n includeBranch: true, // Include branch name\n padding: 5 // Zero-pad count (00001)\n});\n```\n\n#### Build Number Strategy\nCreates a version from build metadata:\n\n```typescript\n// Basic build number strategy\nconst strategy = VersioningStrategy.buildNumber();\n\n// With custom configuration\nconst strategy = VersioningStrategy.buildNumber({\n prefix: 'release',\n commitCount: { countFrom: 'all', padding: 5 }\n});\n// Output: release-01234-3a4b5c6d\n```\n\n#### Custom Composite Strategy\nCreate your own version format using template variables:\n\n```typescript\nconst strategy = VersioningStrategy.create(\n '{git-tag}+{commit-count}-{commit-hash:8}',\n {\n gitTag: { stripPrefix: 'v' },\n commitCount: { countFrom: 'since-tag' }\n }\n);\n// Output: 1.2.3+45-3a4b5c6d\n```\n\n### Version Output Configurations\n\nControl how and where version information is exposed:\n\n#### CloudFormation Outputs\nExport version information as CloudFormation stack outputs:\n\n```typescript\n// Basic CloudFormation output\nconst outputs = VersioningOutputs.cloudFormationOnly();\n\n// With custom configuration\nconst outputs = VersioningOutputs.cloudFormationOnly({\n exportName: 'MyApp-{stage}-Version'\n});\n```\n\n#### SSM Parameter Store\nStore version information in AWS Systems Manager Parameter Store:\n\n```typescript\n// Basic parameter store\nconst outputs = VersioningOutputs.parameterStoreOnly('/myapp/{stage}/version');\n\n// Hierarchical parameters\nconst outputs = VersioningOutputs.hierarchicalParameters('/myapp/{stage}/version', {\n includeCloudFormation: true\n});\n```\n\nThis creates parameters like:\n- `/myapp/prod/version` → Full version JSON\n- `/myapp/prod/version/commit` → Commit hash\n- `/myapp/prod/version/tag` → Git tag\n- `/myapp/prod/version/count` → Commit count\n\n#### Standard Configuration\nThe recommended configuration that uses CloudFormation outputs with optional Parameter Store:\n\n```typescript\nconst outputs = VersioningOutputs.standard({\n parameterName: '/myapp/{stage}/version',\n});\n```\n\n### Output Formats\n\nVersion information can be output in two formats:\n\n**Plain Format:** Simple string values in CloudFormation\n```yaml\nOutputs:\n AppVersion:\n Value: \"1.2.3+45-3a4b5c6d\"\n Description: \"Application version\"\n AppCommitHash:\n Value: \"3a4b5c6def1234567890\"\n Description: \"Git commit hash\"\n```\n\n**Structured Format:** JSON object with comprehensive metadata in SSM\n```json\n{\n \"version\": \"1.2.3\",\n \"commitHash\": \"3a4b5c6def1234567890\",\n \"commitCount\": 1234,\n \"commitsSinceTag\": 45,\n \"branch\": \"main\",\n \"tag\": \"v1.2.3\",\n \"deployedAt\": \"2024-01-15T10:30:00Z\",\n \"deployedBy\": \"github-actions\",\n \"buildNumber\": \"456\",\n \"environment\": \"production\"\n}\n```\n\n### Stage-Specific Overrides\n\nConfigure different versioning strategies for different stages:\n\n```typescript\nnew GithubCDKPipeline(app, {\n versioning: {\n enabled: true,\n strategy: VersioningStrategy.gitTag(),\n outputs: VersioningOutputs.standard(),\n stageOverrides: {\n dev: {\n strategy: VersioningStrategy.commitCount(),\n outputs: VersioningOutputs.minimal()\n },\n prod: {\n validation: {\n requireTag: true,\n tagPattern: /^v\\d+\\.\\d+\\.\\d+$/\n }\n }\n }\n }\n});\n```\n\n### Template Variables\n\nAll strategies support these template variables:\n- `{git-tag}` - Git tag (with optional prefix stripping)\n- `{package-version}` - Version from package.json\n- `{commit-count}` - Number of commits\n- `{commit-hash}` - Full commit hash\n- `{commit-hash:8}` - Short commit hash (8 characters)\n- `{branch}` - Git branch name\n- `{build-number}` - CI/CD build number\n\n### Benefits of Versioning\n\n1. **Deployment Traceability**: Always know exactly which code version is deployed\n2. **Automated Rollback**: Use version information for automated rollback decisions\n3. **Audit Trail**: Comprehensive deployment history with metadata\n4. **Multi-Stage Support**: Different versioning strategies per environment\n5. **Zero Configuration**: Works out-of-the-box with sensible defaults\n6. **CI/CD Integration**: Automatically detects version info from CI/CD environments\n\n### Feature Branch Deployments\n\nProjen Pipelines supports automated feature branch deployments for GitHub Actions. This allows you to deploy and test your changes in isolated environments before merging to the main branch. Gitlab support is currently missing.\n\n#### Configuration\n\nTo enable feature branch deployments, add the `featureStages` configuration to your pipeline:\n\n```typescript\nnew GithubCDKPipeline(app, {\n stackPrefix: 'MyApp',\n iamRoleArns: {\n default: 'arn:aws:iam::123456789012:role/GithubDeploymentRole',\n },\n featureStages: {\n env: { account: '123456789013', region: 'eu-central-1' },\n },\n stages: [\n // ... your regular stages\n ],\n});\n```\n\n#### How It Works\n\nWhen feature stages are configured, two GitHub workflows are created:\n\n1. **deploy-feature** - Automatically deploys your feature branch when a pull request is labeled with `feature-deployment`\n2. **destroy-feature** - Automatically destroys the feature deployment when:\n - The pull request is closed\n - The `feature-deployment` label is removed from the pull request\n\n#### Using Feature Deployments\n\n1. Create a pull request with your changes\n2. Add the `feature-deployment` label to trigger deployment\n3. The feature environment will be deployed with a stack name including your branch name\n4. Remove the label or close the PR to destroy the feature environment\n\nThe feature deployment uses the `--force` flag when destroying to ensure cleanup without manual confirmation.\n\n### AWS Amplify Deployment\n\nProjen 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.\n\n#### Configuration\n\nTo add Amplify deployment to your pipeline, use the `AmplifyDeployStep`:\n\n```typescript\nimport { AmplifyDeployStep } from 'projen-pipelines';\n\n// Using a static Amplify app ID\nconst deployStep = new AmplifyDeployStep(project, {\n appId: 'd123gtgt770s1x',\n artifactFile: 'dist.zip',\n branchName: 'main', // optional, defaults to 'main'\n region: 'us-east-1', // optional, defaults to 'eu-central-1'\n});\n\n// Using dynamic app ID extraction from CDK outputs\nconst deployStep = new AmplifyDeployStep(project, {\n appIdCommand: 'jq -r \\'.MyStack.AmplifyAppId\\' cdk-outputs.json',\n artifactFile: 'build.zip',\n environment: 'production', // optional, for environment-specific deployments\n});\n```\n\n#### How It Works\n\nThe Amplify deployment step:\n1. Checks for any pending Amplify deployments and cancels them if needed\n2. Creates a new deployment with the Amplify service\n3. Uploads your build artifact (zip file) to Amplify\n4. Starts the deployment and monitors its progress\n5. Validates the deployment succeeded\n\n#### Build Artifact Preparation\n\nBefore using the Amplify deployment step, ensure your build process creates a zip file containing your static website assets:\n\n```bash\n# Example: Creating a deployment artifact\nnpm run build\ncd dist && zip -r ../dist.zip . && cd ..\n```\n\n#### Multi-Stage Deployments\n\nFor multi-stage deployments with different Amplify apps per environment:\n\n```typescript\n// In your CDK stack, output the Amplify app ID\nnew CfnOutput(this, 'AmplifyAppId', {\n key: 'AmplifyAppId',\n value: amplifyApp.appId,\n});\n\n// In your pipeline configuration\nconst deployStep = new AmplifyDeployStep(project, {\n appIdCommand: `jq -r '.${stackName}.AmplifyAppId' cdk-outputs-${stage}.json`,\n artifactFile: 'website.zip',\n environment: stage,\n branchName: stage === 'prod' ? 'main' : stage,\n});\n```\n\n## Current Status\n\nProjen-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.\n\n## Contributing\n\n### By raising feature requests or issues\n\nUse the Github integrated \"[Issues](https://github.com/taimos/projen-pipelines/issues/new)\" view to create an item that you would love to have added to our open source project.\n\n***No request is too big or too small*** - get your thoughts created and we'll get back to you if we have questions!\n\n### By committing code\n\nWe welcome all contributions to Projen Pipelines! Here's how you can get started:\n\n1. **Fork the Repository**: Click the 'Fork' button at the top right of this page to duplicate this repository in your GitHub account.\n\n2. **Clone your Fork**: Clone the forked repository to your local machine.\n\n```bash\ngit clone https://github.com/<your_username>/projen-pipelines.git\n```\n\n3. **Create a Branch**: To keep your work organized, create a branch for your contribution.\n\n```bash\ngit checkout -b my-branch\n```\n\n4. **Make your Changes**: Make your changes, additions, or fixes to the codebase. Remember to follow the existing code style.\n\n5. **Test your Changes**: Before committing your changes, make sure to test them to ensure they work as expected and do not introduce bugs.\n\n6. **Commit your Changes**: Commit your changes with a descriptive commit message using conventional commit messages.\n\n```bash\ngit commit -m \"feat: Your descriptive commit message\"\n```\n\n7. **Push to your Fork**: Push your commits to the branch in your forked repository.\n\n```bash\ngit push -u origin my-branch\n```\n\n8. **Submit a Pull Request**: Once your changes are ready to be reviewed, create a pull request from your forked repository's branch into the `main` branch of this repository.\n\nYour pull request will be reviewed and hopefully merged quickly. Thanks for contributing!\n\n### How to test changes?\nThe best way currently is to test things locally or - if you have a working stall of all supported CI/CD tools - manually test the functionalities there in diferent projects.\n\n_For local testing:_\nUsing `yalc push` you can install the project locally to your local yalc package manager. You can also use `npm run local-push` instead of this.\n\nWith `yalc add projen-pipelines` you can then use it in a local project.\n\n\n## Future Plans\n\n* Move the project to the Open Construct Foundation for broader community involvement\n* Continue expanding support for different CI/CD platforms and project types\n\nJoin us in elevating CI/CD pipeline discussions from implementation details to fundamental building blocks, and help create a more efficient, standardized approach to pipeline development!\n\n## Known issues\n\n### Environment variable not recognized during `npx projen`\n\nWhen attempting to run `npx projen`, users may encounter an error related to environment variable substitution within configuration files. Specifically, the `${GITHUB_TOKEN}` placeholder fails to be replaced.\n\n#### Solution\n\nTo resolve this issue, prefix the `npx projen` command with the `GITHUB_TOKEN=` environment variable:\n\n```bash\nGITHUB_TOKEN= npx projen\n```\n"
|
|
110
111
|
},
|
|
111
112
|
"repository": {
|
|
112
113
|
"type": "git",
|
|
@@ -119,6 +120,241 @@
|
|
|
119
120
|
}
|
|
120
121
|
},
|
|
121
122
|
"types": {
|
|
123
|
+
"projen-pipelines.AmplifyDeployStep": {
|
|
124
|
+
"assembly": "projen-pipelines",
|
|
125
|
+
"base": "projen-pipelines.PipelineStep",
|
|
126
|
+
"docs": {
|
|
127
|
+
"stability": "stable",
|
|
128
|
+
"summary": "A step that deploys a web application to AWS Amplify."
|
|
129
|
+
},
|
|
130
|
+
"fqn": "projen-pipelines.AmplifyDeployStep",
|
|
131
|
+
"initializer": {
|
|
132
|
+
"docs": {
|
|
133
|
+
"stability": "stable"
|
|
134
|
+
},
|
|
135
|
+
"locationInModule": {
|
|
136
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
137
|
+
"line": 30
|
|
138
|
+
},
|
|
139
|
+
"parameters": [
|
|
140
|
+
{
|
|
141
|
+
"docs": {
|
|
142
|
+
"summary": "- The projen project reference."
|
|
143
|
+
},
|
|
144
|
+
"name": "project",
|
|
145
|
+
"type": {
|
|
146
|
+
"fqn": "projen.Project"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "config",
|
|
151
|
+
"type": {
|
|
152
|
+
"fqn": "projen-pipelines.AmplifyDeployStepConfig"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
"kind": "class",
|
|
158
|
+
"locationInModule": {
|
|
159
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
160
|
+
"line": 25
|
|
161
|
+
},
|
|
162
|
+
"methods": [
|
|
163
|
+
{
|
|
164
|
+
"docs": {
|
|
165
|
+
"remarks": "Should be implemented by subclasses.",
|
|
166
|
+
"stability": "stable",
|
|
167
|
+
"summary": "Generates a configuration for a bash script step."
|
|
168
|
+
},
|
|
169
|
+
"locationInModule": {
|
|
170
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
171
|
+
"line": 165
|
|
172
|
+
},
|
|
173
|
+
"name": "toBash",
|
|
174
|
+
"overrides": "projen-pipelines.PipelineStep",
|
|
175
|
+
"returns": {
|
|
176
|
+
"type": {
|
|
177
|
+
"fqn": "projen-pipelines.BashStepConfig"
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"docs": {
|
|
183
|
+
"remarks": "Should be implemented by subclasses.",
|
|
184
|
+
"stability": "stable",
|
|
185
|
+
"summary": "Generates a configuration for a CodeCatalyst Actions step."
|
|
186
|
+
},
|
|
187
|
+
"locationInModule": {
|
|
188
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
189
|
+
"line": 181
|
|
190
|
+
},
|
|
191
|
+
"name": "toCodeCatalyst",
|
|
192
|
+
"overrides": "projen-pipelines.PipelineStep",
|
|
193
|
+
"returns": {
|
|
194
|
+
"type": {
|
|
195
|
+
"fqn": "projen-pipelines.CodeCatalystStepConfig"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"docs": {
|
|
201
|
+
"remarks": "Should be implemented by subclasses.",
|
|
202
|
+
"stability": "stable",
|
|
203
|
+
"summary": "Generates a configuration for a GitHub Actions step."
|
|
204
|
+
},
|
|
205
|
+
"locationInModule": {
|
|
206
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
207
|
+
"line": 124
|
|
208
|
+
},
|
|
209
|
+
"name": "toGithub",
|
|
210
|
+
"overrides": "projen-pipelines.PipelineStep",
|
|
211
|
+
"returns": {
|
|
212
|
+
"type": {
|
|
213
|
+
"fqn": "projen-pipelines.GithubStepConfig"
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"docs": {
|
|
219
|
+
"remarks": "Should be implemented by subclasses.",
|
|
220
|
+
"stability": "stable",
|
|
221
|
+
"summary": "Generates a configuration for a GitLab CI step."
|
|
222
|
+
},
|
|
223
|
+
"locationInModule": {
|
|
224
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
225
|
+
"line": 104
|
|
226
|
+
},
|
|
227
|
+
"name": "toGitlab",
|
|
228
|
+
"overrides": "projen-pipelines.PipelineStep",
|
|
229
|
+
"returns": {
|
|
230
|
+
"type": {
|
|
231
|
+
"fqn": "projen-pipelines.GitlabStepConfig"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
],
|
|
236
|
+
"name": "AmplifyDeployStep",
|
|
237
|
+
"symbolId": "src/steps/amplify-deploy.step:AmplifyDeployStep"
|
|
238
|
+
},
|
|
239
|
+
"projen-pipelines.AmplifyDeployStepConfig": {
|
|
240
|
+
"assembly": "projen-pipelines",
|
|
241
|
+
"datatype": true,
|
|
242
|
+
"docs": {
|
|
243
|
+
"stability": "stable",
|
|
244
|
+
"summary": "Configuration for an AWS Amplify deployment step."
|
|
245
|
+
},
|
|
246
|
+
"fqn": "projen-pipelines.AmplifyDeployStepConfig",
|
|
247
|
+
"kind": "interface",
|
|
248
|
+
"locationInModule": {
|
|
249
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
250
|
+
"line": 7
|
|
251
|
+
},
|
|
252
|
+
"name": "AmplifyDeployStepConfig",
|
|
253
|
+
"properties": [
|
|
254
|
+
{
|
|
255
|
+
"abstract": true,
|
|
256
|
+
"docs": {
|
|
257
|
+
"stability": "stable",
|
|
258
|
+
"summary": "The artifact file to deploy (zip file containing the build)."
|
|
259
|
+
},
|
|
260
|
+
"immutable": true,
|
|
261
|
+
"locationInModule": {
|
|
262
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
263
|
+
"line": 13
|
|
264
|
+
},
|
|
265
|
+
"name": "artifactFile",
|
|
266
|
+
"type": {
|
|
267
|
+
"primitive": "string"
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"abstract": true,
|
|
272
|
+
"docs": {
|
|
273
|
+
"stability": "stable",
|
|
274
|
+
"summary": "The Amplify app ID (static value)."
|
|
275
|
+
},
|
|
276
|
+
"immutable": true,
|
|
277
|
+
"locationInModule": {
|
|
278
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
279
|
+
"line": 9
|
|
280
|
+
},
|
|
281
|
+
"name": "appId",
|
|
282
|
+
"optional": true,
|
|
283
|
+
"type": {
|
|
284
|
+
"primitive": "string"
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"abstract": true,
|
|
289
|
+
"docs": {
|
|
290
|
+
"stability": "stable",
|
|
291
|
+
"summary": "Command to retrieve the Amplify app ID dynamically."
|
|
292
|
+
},
|
|
293
|
+
"immutable": true,
|
|
294
|
+
"locationInModule": {
|
|
295
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
296
|
+
"line": 11
|
|
297
|
+
},
|
|
298
|
+
"name": "appIdCommand",
|
|
299
|
+
"optional": true,
|
|
300
|
+
"type": {
|
|
301
|
+
"primitive": "string"
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"abstract": true,
|
|
306
|
+
"docs": {
|
|
307
|
+
"stability": "stable",
|
|
308
|
+
"summary": "The branch name to deploy to (defaults to 'main')."
|
|
309
|
+
},
|
|
310
|
+
"immutable": true,
|
|
311
|
+
"locationInModule": {
|
|
312
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
313
|
+
"line": 15
|
|
314
|
+
},
|
|
315
|
+
"name": "branchName",
|
|
316
|
+
"optional": true,
|
|
317
|
+
"type": {
|
|
318
|
+
"primitive": "string"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"abstract": true,
|
|
323
|
+
"docs": {
|
|
324
|
+
"stability": "stable",
|
|
325
|
+
"summary": "Environment name."
|
|
326
|
+
},
|
|
327
|
+
"immutable": true,
|
|
328
|
+
"locationInModule": {
|
|
329
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
330
|
+
"line": 19
|
|
331
|
+
},
|
|
332
|
+
"name": "environment",
|
|
333
|
+
"optional": true,
|
|
334
|
+
"type": {
|
|
335
|
+
"primitive": "string"
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"abstract": true,
|
|
340
|
+
"docs": {
|
|
341
|
+
"stability": "stable",
|
|
342
|
+
"summary": "The AWS region (defaults to 'eu-central-1')."
|
|
343
|
+
},
|
|
344
|
+
"immutable": true,
|
|
345
|
+
"locationInModule": {
|
|
346
|
+
"filename": "src/steps/amplify-deploy.step.ts",
|
|
347
|
+
"line": 17
|
|
348
|
+
},
|
|
349
|
+
"name": "region",
|
|
350
|
+
"optional": true,
|
|
351
|
+
"type": {
|
|
352
|
+
"primitive": "string"
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
],
|
|
356
|
+
"symbolId": "src/steps/amplify-deploy.step:AmplifyDeployStepConfig"
|
|
357
|
+
},
|
|
122
358
|
"projen-pipelines.ApproverMapping": {
|
|
123
359
|
"assembly": "projen-pipelines",
|
|
124
360
|
"datatype": true,
|
|
@@ -300,7 +536,7 @@
|
|
|
300
536
|
},
|
|
301
537
|
"locationInModule": {
|
|
302
538
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
303
|
-
"line":
|
|
539
|
+
"line": 31
|
|
304
540
|
},
|
|
305
541
|
"parameters": [
|
|
306
542
|
{
|
|
@@ -323,7 +559,7 @@
|
|
|
323
559
|
"kind": "class",
|
|
324
560
|
"locationInModule": {
|
|
325
561
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
326
|
-
"line":
|
|
562
|
+
"line": 30
|
|
327
563
|
},
|
|
328
564
|
"methods": [
|
|
329
565
|
{
|
|
@@ -334,7 +570,7 @@
|
|
|
334
570
|
},
|
|
335
571
|
"locationInModule": {
|
|
336
572
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
337
|
-
"line":
|
|
573
|
+
"line": 97
|
|
338
574
|
},
|
|
339
575
|
"name": "toBash",
|
|
340
576
|
"overrides": "projen-pipelines.PipelineStep",
|
|
@@ -352,7 +588,7 @@
|
|
|
352
588
|
},
|
|
353
589
|
"locationInModule": {
|
|
354
590
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
355
|
-
"line":
|
|
591
|
+
"line": 107
|
|
356
592
|
},
|
|
357
593
|
"name": "toCodeCatalyst",
|
|
358
594
|
"overrides": "projen-pipelines.PipelineStep",
|
|
@@ -370,7 +606,7 @@
|
|
|
370
606
|
},
|
|
371
607
|
"locationInModule": {
|
|
372
608
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
373
|
-
"line":
|
|
609
|
+
"line": 54
|
|
374
610
|
},
|
|
375
611
|
"name": "toGithub",
|
|
376
612
|
"overrides": "projen-pipelines.PipelineStep",
|
|
@@ -388,7 +624,7 @@
|
|
|
388
624
|
},
|
|
389
625
|
"locationInModule": {
|
|
390
626
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
391
|
-
"line":
|
|
627
|
+
"line": 38
|
|
392
628
|
},
|
|
393
629
|
"name": "toGitlab",
|
|
394
630
|
"overrides": "projen-pipelines.PipelineStep",
|
|
@@ -413,7 +649,7 @@
|
|
|
413
649
|
"kind": "interface",
|
|
414
650
|
"locationInModule": {
|
|
415
651
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
416
|
-
"line":
|
|
652
|
+
"line": 14
|
|
417
653
|
},
|
|
418
654
|
"name": "AwsAssumeRoleStepConfig",
|
|
419
655
|
"properties": [
|
|
@@ -426,13 +662,30 @@
|
|
|
426
662
|
"immutable": true,
|
|
427
663
|
"locationInModule": {
|
|
428
664
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
429
|
-
"line":
|
|
665
|
+
"line": 16
|
|
430
666
|
},
|
|
431
667
|
"name": "roleArn",
|
|
432
668
|
"type": {
|
|
433
669
|
"primitive": "string"
|
|
434
670
|
}
|
|
435
671
|
},
|
|
672
|
+
{
|
|
673
|
+
"abstract": true,
|
|
674
|
+
"docs": {
|
|
675
|
+
"stability": "stable",
|
|
676
|
+
"summary": "The ARN of the jump role to use for role chaining."
|
|
677
|
+
},
|
|
678
|
+
"immutable": true,
|
|
679
|
+
"locationInModule": {
|
|
680
|
+
"filename": "src/steps/aws-assume-role.step.ts",
|
|
681
|
+
"line": 24
|
|
682
|
+
},
|
|
683
|
+
"name": "jumpRoleArn",
|
|
684
|
+
"optional": true,
|
|
685
|
+
"type": {
|
|
686
|
+
"primitive": "string"
|
|
687
|
+
}
|
|
688
|
+
},
|
|
436
689
|
{
|
|
437
690
|
"abstract": true,
|
|
438
691
|
"docs": {
|
|
@@ -442,7 +695,7 @@
|
|
|
442
695
|
"immutable": true,
|
|
443
696
|
"locationInModule": {
|
|
444
697
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
445
|
-
"line":
|
|
698
|
+
"line": 20
|
|
446
699
|
},
|
|
447
700
|
"name": "region",
|
|
448
701
|
"optional": true,
|
|
@@ -459,7 +712,7 @@
|
|
|
459
712
|
"immutable": true,
|
|
460
713
|
"locationInModule": {
|
|
461
714
|
"filename": "src/steps/aws-assume-role.step.ts",
|
|
462
|
-
"line":
|
|
715
|
+
"line": 18
|
|
463
716
|
},
|
|
464
717
|
"name": "sessionName",
|
|
465
718
|
"optional": true,
|
|
@@ -724,7 +977,7 @@
|
|
|
724
977
|
},
|
|
725
978
|
"locationInModule": {
|
|
726
979
|
"filename": "src/awscdk/base.ts",
|
|
727
|
-
"line":
|
|
980
|
+
"line": 197
|
|
728
981
|
},
|
|
729
982
|
"parameters": [
|
|
730
983
|
{
|
|
@@ -744,7 +997,7 @@
|
|
|
744
997
|
"kind": "class",
|
|
745
998
|
"locationInModule": {
|
|
746
999
|
"filename": "src/awscdk/base.ts",
|
|
747
|
-
"line":
|
|
1000
|
+
"line": 193
|
|
748
1001
|
},
|
|
749
1002
|
"methods": [
|
|
750
1003
|
{
|
|
@@ -754,7 +1007,7 @@
|
|
|
754
1007
|
},
|
|
755
1008
|
"locationInModule": {
|
|
756
1009
|
"filename": "src/awscdk/base.ts",
|
|
757
|
-
"line":
|
|
1010
|
+
"line": 388
|
|
758
1011
|
},
|
|
759
1012
|
"name": "createApplicationEntrypoint",
|
|
760
1013
|
"protected": true
|
|
@@ -766,7 +1019,7 @@
|
|
|
766
1019
|
},
|
|
767
1020
|
"locationInModule": {
|
|
768
1021
|
"filename": "src/awscdk/base.ts",
|
|
769
|
-
"line":
|
|
1022
|
+
"line": 594
|
|
770
1023
|
},
|
|
771
1024
|
"name": "createFeatureStage",
|
|
772
1025
|
"protected": true
|
|
@@ -778,7 +1031,7 @@
|
|
|
778
1031
|
},
|
|
779
1032
|
"locationInModule": {
|
|
780
1033
|
"filename": "src/awscdk/base.ts",
|
|
781
|
-
"line":
|
|
1034
|
+
"line": 643
|
|
782
1035
|
},
|
|
783
1036
|
"name": "createIndependentStage",
|
|
784
1037
|
"parameters": [
|
|
@@ -801,7 +1054,7 @@
|
|
|
801
1054
|
},
|
|
802
1055
|
"locationInModule": {
|
|
803
1056
|
"filename": "src/awscdk/base.ts",
|
|
804
|
-
"line":
|
|
1057
|
+
"line": 571
|
|
805
1058
|
},
|
|
806
1059
|
"name": "createPersonalStage",
|
|
807
1060
|
"protected": true
|
|
@@ -813,7 +1066,7 @@
|
|
|
813
1066
|
},
|
|
814
1067
|
"locationInModule": {
|
|
815
1068
|
"filename": "src/awscdk/base.ts",
|
|
816
|
-
"line":
|
|
1069
|
+
"line": 617
|
|
817
1070
|
},
|
|
818
1071
|
"name": "createPipelineStage",
|
|
819
1072
|
"parameters": [
|
|
@@ -836,7 +1089,7 @@
|
|
|
836
1089
|
},
|
|
837
1090
|
"locationInModule": {
|
|
838
1091
|
"filename": "src/awscdk/base.ts",
|
|
839
|
-
"line":
|
|
1092
|
+
"line": 516
|
|
840
1093
|
},
|
|
841
1094
|
"name": "createReleaseTasks",
|
|
842
1095
|
"protected": true
|
|
@@ -847,7 +1100,7 @@
|
|
|
847
1100
|
},
|
|
848
1101
|
"locationInModule": {
|
|
849
1102
|
"filename": "src/awscdk/base.ts",
|
|
850
|
-
"line":
|
|
1103
|
+
"line": 374
|
|
851
1104
|
},
|
|
852
1105
|
"name": "createSafeStageName",
|
|
853
1106
|
"parameters": [
|
|
@@ -872,7 +1125,7 @@
|
|
|
872
1125
|
},
|
|
873
1126
|
"locationInModule": {
|
|
874
1127
|
"filename": "src/awscdk/base.ts",
|
|
875
|
-
"line":
|
|
1128
|
+
"line": 676
|
|
876
1129
|
},
|
|
877
1130
|
"name": "createVersionFetchTask",
|
|
878
1131
|
"parameters": [
|
|
@@ -892,7 +1145,7 @@
|
|
|
892
1145
|
},
|
|
893
1146
|
"locationInModule": {
|
|
894
1147
|
"filename": "src/awscdk/base.ts",
|
|
895
|
-
"line":
|
|
1148
|
+
"line": 250
|
|
896
1149
|
},
|
|
897
1150
|
"name": "engineType",
|
|
898
1151
|
"returns": {
|
|
@@ -908,7 +1161,7 @@
|
|
|
908
1161
|
},
|
|
909
1162
|
"locationInModule": {
|
|
910
1163
|
"filename": "src/awscdk/base.ts",
|
|
911
|
-
"line":
|
|
1164
|
+
"line": 722
|
|
912
1165
|
},
|
|
913
1166
|
"name": "generateVersioningAppCode",
|
|
914
1167
|
"parameters": [
|
|
@@ -932,7 +1185,7 @@
|
|
|
932
1185
|
},
|
|
933
1186
|
"locationInModule": {
|
|
934
1187
|
"filename": "src/awscdk/base.ts",
|
|
935
|
-
"line":
|
|
1188
|
+
"line": 736
|
|
936
1189
|
},
|
|
937
1190
|
"name": "generateVersioningImports",
|
|
938
1191
|
"returns": {
|
|
@@ -948,7 +1201,7 @@
|
|
|
948
1201
|
},
|
|
949
1202
|
"locationInModule": {
|
|
950
1203
|
"filename": "src/awscdk/base.ts",
|
|
951
|
-
"line":
|
|
1204
|
+
"line": 749
|
|
952
1205
|
},
|
|
953
1206
|
"name": "generateVersioningUtilities",
|
|
954
1207
|
"returns": {
|
|
@@ -963,7 +1216,7 @@
|
|
|
963
1216
|
},
|
|
964
1217
|
"locationInModule": {
|
|
965
1218
|
"filename": "src/awscdk/base.ts",
|
|
966
|
-
"line":
|
|
1219
|
+
"line": 665
|
|
967
1220
|
},
|
|
968
1221
|
"name": "getCliStackPattern",
|
|
969
1222
|
"parameters": [
|
|
@@ -987,7 +1240,7 @@
|
|
|
987
1240
|
},
|
|
988
1241
|
"locationInModule": {
|
|
989
1242
|
"filename": "src/awscdk/base.ts",
|
|
990
|
-
"line":
|
|
1243
|
+
"line": 319
|
|
991
1244
|
},
|
|
992
1245
|
"name": "provideAssemblyUploadStep",
|
|
993
1246
|
"protected": true,
|
|
@@ -1003,7 +1256,7 @@
|
|
|
1003
1256
|
},
|
|
1004
1257
|
"locationInModule": {
|
|
1005
1258
|
"filename": "src/awscdk/base.ts",
|
|
1006
|
-
"line":
|
|
1259
|
+
"line": 285
|
|
1007
1260
|
},
|
|
1008
1261
|
"name": "provideAssetUploadStep",
|
|
1009
1262
|
"parameters": [
|
|
@@ -1028,7 +1281,7 @@
|
|
|
1028
1281
|
},
|
|
1029
1282
|
"locationInModule": {
|
|
1030
1283
|
"filename": "src/awscdk/base.ts",
|
|
1031
|
-
"line":
|
|
1284
|
+
"line": 329
|
|
1032
1285
|
},
|
|
1033
1286
|
"name": "provideDeployStep",
|
|
1034
1287
|
"parameters": [
|
|
@@ -1052,7 +1305,7 @@
|
|
|
1052
1305
|
},
|
|
1053
1306
|
"locationInModule": {
|
|
1054
1307
|
"filename": "src/awscdk/base.ts",
|
|
1055
|
-
"line":
|
|
1308
|
+
"line": 341
|
|
1056
1309
|
},
|
|
1057
1310
|
"name": "provideDiffStep",
|
|
1058
1311
|
"parameters": [
|
|
@@ -1083,7 +1336,7 @@
|
|
|
1083
1336
|
},
|
|
1084
1337
|
"locationInModule": {
|
|
1085
1338
|
"filename": "src/awscdk/base.ts",
|
|
1086
|
-
"line":
|
|
1339
|
+
"line": 252
|
|
1087
1340
|
},
|
|
1088
1341
|
"name": "provideInstallStep",
|
|
1089
1342
|
"protected": true,
|
|
@@ -1099,7 +1352,7 @@
|
|
|
1099
1352
|
},
|
|
1100
1353
|
"locationInModule": {
|
|
1101
1354
|
"filename": "src/awscdk/base.ts",
|
|
1102
|
-
"line":
|
|
1355
|
+
"line": 261
|
|
1103
1356
|
},
|
|
1104
1357
|
"name": "provideSynthStep",
|
|
1105
1358
|
"protected": true,
|
|
@@ -1115,7 +1368,7 @@
|
|
|
1115
1368
|
},
|
|
1116
1369
|
"locationInModule": {
|
|
1117
1370
|
"filename": "src/awscdk/base.ts",
|
|
1118
|
-
"line":
|
|
1371
|
+
"line": 355
|
|
1119
1372
|
},
|
|
1120
1373
|
"name": "renderInstallPackageCommands",
|
|
1121
1374
|
"parameters": [
|
|
@@ -1155,7 +1408,7 @@
|
|
|
1155
1408
|
"immutable": true,
|
|
1156
1409
|
"locationInModule": {
|
|
1157
1410
|
"filename": "src/awscdk/base.ts",
|
|
1158
|
-
"line":
|
|
1411
|
+
"line": 195
|
|
1159
1412
|
},
|
|
1160
1413
|
"name": "branchName",
|
|
1161
1414
|
"type": {
|
|
@@ -1169,7 +1422,7 @@
|
|
|
1169
1422
|
"immutable": true,
|
|
1170
1423
|
"locationInModule": {
|
|
1171
1424
|
"filename": "src/awscdk/base.ts",
|
|
1172
|
-
"line":
|
|
1425
|
+
"line": 194
|
|
1173
1426
|
},
|
|
1174
1427
|
"name": "stackPrefix",
|
|
1175
1428
|
"type": {
|
|
@@ -1182,7 +1435,7 @@
|
|
|
1182
1435
|
},
|
|
1183
1436
|
"locationInModule": {
|
|
1184
1437
|
"filename": "src/awscdk/base.ts",
|
|
1185
|
-
"line":
|
|
1438
|
+
"line": 197
|
|
1186
1439
|
},
|
|
1187
1440
|
"name": "app",
|
|
1188
1441
|
"protected": true,
|
|
@@ -1196,7 +1449,7 @@
|
|
|
1196
1449
|
},
|
|
1197
1450
|
"locationInModule": {
|
|
1198
1451
|
"filename": "src/awscdk/base.ts",
|
|
1199
|
-
"line":
|
|
1452
|
+
"line": 197
|
|
1200
1453
|
},
|
|
1201
1454
|
"name": "baseOptions",
|
|
1202
1455
|
"protected": true,
|
|
@@ -1219,7 +1472,7 @@
|
|
|
1219
1472
|
"kind": "interface",
|
|
1220
1473
|
"locationInModule": {
|
|
1221
1474
|
"filename": "src/awscdk/base.ts",
|
|
1222
|
-
"line":
|
|
1475
|
+
"line": 114
|
|
1223
1476
|
},
|
|
1224
1477
|
"name": "CDKPipelineOptions",
|
|
1225
1478
|
"properties": [
|
|
@@ -1232,7 +1485,7 @@
|
|
|
1232
1485
|
"immutable": true,
|
|
1233
1486
|
"locationInModule": {
|
|
1234
1487
|
"filename": "src/awscdk/base.ts",
|
|
1235
|
-
"line":
|
|
1488
|
+
"line": 150
|
|
1236
1489
|
},
|
|
1237
1490
|
"name": "iamRoleArns",
|
|
1238
1491
|
"type": {
|
|
@@ -1248,7 +1501,7 @@
|
|
|
1248
1501
|
"immutable": true,
|
|
1249
1502
|
"locationInModule": {
|
|
1250
1503
|
"filename": "src/awscdk/base.ts",
|
|
1251
|
-
"line":
|
|
1504
|
+
"line": 155
|
|
1252
1505
|
},
|
|
1253
1506
|
"name": "stages",
|
|
1254
1507
|
"type": {
|
|
@@ -1270,7 +1523,7 @@
|
|
|
1270
1523
|
"immutable": true,
|
|
1271
1524
|
"locationInModule": {
|
|
1272
1525
|
"filename": "src/awscdk/base.ts",
|
|
1273
|
-
"line":
|
|
1526
|
+
"line": 120
|
|
1274
1527
|
},
|
|
1275
1528
|
"name": "branchName",
|
|
1276
1529
|
"optional": true,
|
|
@@ -1289,7 +1542,7 @@
|
|
|
1289
1542
|
"immutable": true,
|
|
1290
1543
|
"locationInModule": {
|
|
1291
1544
|
"filename": "src/awscdk/base.ts",
|
|
1292
|
-
"line":
|
|
1545
|
+
"line": 136
|
|
1293
1546
|
},
|
|
1294
1547
|
"name": "deploySubStacks",
|
|
1295
1548
|
"optional": true,
|
|
@@ -1306,7 +1559,7 @@
|
|
|
1306
1559
|
"immutable": true,
|
|
1307
1560
|
"locationInModule": {
|
|
1308
1561
|
"filename": "src/awscdk/base.ts",
|
|
1309
|
-
"line":
|
|
1562
|
+
"line": 164
|
|
1310
1563
|
},
|
|
1311
1564
|
"name": "featureStages",
|
|
1312
1565
|
"optional": true,
|
|
@@ -1323,7 +1576,7 @@
|
|
|
1323
1576
|
"immutable": true,
|
|
1324
1577
|
"locationInModule": {
|
|
1325
1578
|
"filename": "src/awscdk/base.ts",
|
|
1326
|
-
"line":
|
|
1579
|
+
"line": 158
|
|
1327
1580
|
},
|
|
1328
1581
|
"name": "independentStages",
|
|
1329
1582
|
"optional": true,
|
|
@@ -1345,7 +1598,7 @@
|
|
|
1345
1598
|
"immutable": true,
|
|
1346
1599
|
"locationInModule": {
|
|
1347
1600
|
"filename": "src/awscdk/base.ts",
|
|
1348
|
-
"line":
|
|
1601
|
+
"line": 161
|
|
1349
1602
|
},
|
|
1350
1603
|
"name": "personalStage",
|
|
1351
1604
|
"optional": true,
|
|
@@ -1364,7 +1617,7 @@
|
|
|
1364
1617
|
"immutable": true,
|
|
1365
1618
|
"locationInModule": {
|
|
1366
1619
|
"filename": "src/awscdk/base.ts",
|
|
1367
|
-
"line":
|
|
1620
|
+
"line": 147
|
|
1368
1621
|
},
|
|
1369
1622
|
"name": "pkgNamespace",
|
|
1370
1623
|
"optional": true,
|
|
@@ -1380,7 +1633,7 @@
|
|
|
1380
1633
|
"immutable": true,
|
|
1381
1634
|
"locationInModule": {
|
|
1382
1635
|
"filename": "src/awscdk/base.ts",
|
|
1383
|
-
"line":
|
|
1636
|
+
"line": 177
|
|
1384
1637
|
},
|
|
1385
1638
|
"name": "postSynthCommands",
|
|
1386
1639
|
"optional": true,
|
|
@@ -1401,7 +1654,7 @@
|
|
|
1401
1654
|
"immutable": true,
|
|
1402
1655
|
"locationInModule": {
|
|
1403
1656
|
"filename": "src/awscdk/base.ts",
|
|
1404
|
-
"line":
|
|
1657
|
+
"line": 181
|
|
1405
1658
|
},
|
|
1406
1659
|
"name": "postSynthSteps",
|
|
1407
1660
|
"optional": true,
|
|
@@ -1422,7 +1675,7 @@
|
|
|
1422
1675
|
"immutable": true,
|
|
1423
1676
|
"locationInModule": {
|
|
1424
1677
|
"filename": "src/awscdk/base.ts",
|
|
1425
|
-
"line":
|
|
1678
|
+
"line": 175
|
|
1426
1679
|
},
|
|
1427
1680
|
"name": "preInstallCommands",
|
|
1428
1681
|
"optional": true,
|
|
@@ -1443,7 +1696,7 @@
|
|
|
1443
1696
|
"immutable": true,
|
|
1444
1697
|
"locationInModule": {
|
|
1445
1698
|
"filename": "src/awscdk/base.ts",
|
|
1446
|
-
"line":
|
|
1699
|
+
"line": 179
|
|
1447
1700
|
},
|
|
1448
1701
|
"name": "preInstallSteps",
|
|
1449
1702
|
"optional": true,
|
|
@@ -1464,7 +1717,7 @@
|
|
|
1464
1717
|
"immutable": true,
|
|
1465
1718
|
"locationInModule": {
|
|
1466
1719
|
"filename": "src/awscdk/base.ts",
|
|
1467
|
-
"line":
|
|
1720
|
+
"line": 176
|
|
1468
1721
|
},
|
|
1469
1722
|
"name": "preSynthCommands",
|
|
1470
1723
|
"optional": true,
|
|
@@ -1485,7 +1738,7 @@
|
|
|
1485
1738
|
"immutable": true,
|
|
1486
1739
|
"locationInModule": {
|
|
1487
1740
|
"filename": "src/awscdk/base.ts",
|
|
1488
|
-
"line":
|
|
1741
|
+
"line": 180
|
|
1489
1742
|
},
|
|
1490
1743
|
"name": "preSynthSteps",
|
|
1491
1744
|
"optional": true,
|
|
@@ -1508,7 +1761,7 @@
|
|
|
1508
1761
|
"immutable": true,
|
|
1509
1762
|
"locationInModule": {
|
|
1510
1763
|
"filename": "src/awscdk/base.ts",
|
|
1511
|
-
"line":
|
|
1764
|
+
"line": 128
|
|
1512
1765
|
},
|
|
1513
1766
|
"name": "stackPrefix",
|
|
1514
1767
|
"optional": true,
|
|
@@ -1525,7 +1778,7 @@
|
|
|
1525
1778
|
"immutable": true,
|
|
1526
1779
|
"locationInModule": {
|
|
1527
1780
|
"filename": "src/awscdk/base.ts",
|
|
1528
|
-
"line":
|
|
1781
|
+
"line": 186
|
|
1529
1782
|
},
|
|
1530
1783
|
"name": "versioning",
|
|
1531
1784
|
"optional": true,
|
|
@@ -2673,7 +2926,7 @@
|
|
|
2673
2926
|
"immutable": true,
|
|
2674
2927
|
"locationInModule": {
|
|
2675
2928
|
"filename": "src/drift/base.ts",
|
|
2676
|
-
"line":
|
|
2929
|
+
"line": 38
|
|
2677
2930
|
},
|
|
2678
2931
|
"name": "environment",
|
|
2679
2932
|
"optional": true,
|
|
@@ -2696,7 +2949,7 @@
|
|
|
2696
2949
|
"immutable": true,
|
|
2697
2950
|
"locationInModule": {
|
|
2698
2951
|
"filename": "src/drift/base.ts",
|
|
2699
|
-
"line":
|
|
2952
|
+
"line": 33
|
|
2700
2953
|
},
|
|
2701
2954
|
"name": "failOnDrift",
|
|
2702
2955
|
"optional": true,
|
|
@@ -2704,6 +2957,23 @@
|
|
|
2704
2957
|
"primitive": "boolean"
|
|
2705
2958
|
}
|
|
2706
2959
|
},
|
|
2960
|
+
{
|
|
2961
|
+
"abstract": true,
|
|
2962
|
+
"docs": {
|
|
2963
|
+
"stability": "stable",
|
|
2964
|
+
"summary": "Jump role to assume before the main role."
|
|
2965
|
+
},
|
|
2966
|
+
"immutable": true,
|
|
2967
|
+
"locationInModule": {
|
|
2968
|
+
"filename": "src/drift/base.ts",
|
|
2969
|
+
"line": 22
|
|
2970
|
+
},
|
|
2971
|
+
"name": "jumpRoleArn",
|
|
2972
|
+
"optional": true,
|
|
2973
|
+
"type": {
|
|
2974
|
+
"primitive": "string"
|
|
2975
|
+
}
|
|
2976
|
+
},
|
|
2707
2977
|
{
|
|
2708
2978
|
"abstract": true,
|
|
2709
2979
|
"docs": {
|
|
@@ -2730,7 +3000,7 @@
|
|
|
2730
3000
|
"immutable": true,
|
|
2731
3001
|
"locationInModule": {
|
|
2732
3002
|
"filename": "src/drift/base.ts",
|
|
2733
|
-
"line":
|
|
3003
|
+
"line": 27
|
|
2734
3004
|
},
|
|
2735
3005
|
"name": "stackNames",
|
|
2736
3006
|
"optional": true,
|
|
@@ -2839,7 +3109,7 @@
|
|
|
2839
3109
|
},
|
|
2840
3110
|
"locationInModule": {
|
|
2841
3111
|
"filename": "src/drift/base.ts",
|
|
2842
|
-
"line":
|
|
3112
|
+
"line": 82
|
|
2843
3113
|
},
|
|
2844
3114
|
"parameters": [
|
|
2845
3115
|
{
|
|
@@ -2859,7 +3129,7 @@
|
|
|
2859
3129
|
"kind": "class",
|
|
2860
3130
|
"locationInModule": {
|
|
2861
3131
|
"filename": "src/drift/base.ts",
|
|
2862
|
-
"line":
|
|
3132
|
+
"line": 77
|
|
2863
3133
|
},
|
|
2864
3134
|
"name": "DriftDetectionWorkflow",
|
|
2865
3135
|
"properties": [
|
|
@@ -2870,7 +3140,7 @@
|
|
|
2870
3140
|
"immutable": true,
|
|
2871
3141
|
"locationInModule": {
|
|
2872
3142
|
"filename": "src/drift/base.ts",
|
|
2873
|
-
"line":
|
|
3143
|
+
"line": 78
|
|
2874
3144
|
},
|
|
2875
3145
|
"name": "name",
|
|
2876
3146
|
"type": {
|
|
@@ -2884,7 +3154,7 @@
|
|
|
2884
3154
|
"immutable": true,
|
|
2885
3155
|
"locationInModule": {
|
|
2886
3156
|
"filename": "src/drift/base.ts",
|
|
2887
|
-
"line":
|
|
3157
|
+
"line": 79
|
|
2888
3158
|
},
|
|
2889
3159
|
"name": "schedule",
|
|
2890
3160
|
"type": {
|
|
@@ -2898,7 +3168,7 @@
|
|
|
2898
3168
|
"immutable": true,
|
|
2899
3169
|
"locationInModule": {
|
|
2900
3170
|
"filename": "src/drift/base.ts",
|
|
2901
|
-
"line":
|
|
3171
|
+
"line": 80
|
|
2902
3172
|
},
|
|
2903
3173
|
"name": "stages",
|
|
2904
3174
|
"protected": true,
|
|
@@ -2924,7 +3194,7 @@
|
|
|
2924
3194
|
"kind": "interface",
|
|
2925
3195
|
"locationInModule": {
|
|
2926
3196
|
"filename": "src/drift/base.ts",
|
|
2927
|
-
"line":
|
|
3197
|
+
"line": 58
|
|
2928
3198
|
},
|
|
2929
3199
|
"name": "DriftDetectionWorkflowOptions",
|
|
2930
3200
|
"properties": [
|
|
@@ -2937,7 +3207,7 @@
|
|
|
2937
3207
|
"immutable": true,
|
|
2938
3208
|
"locationInModule": {
|
|
2939
3209
|
"filename": "src/drift/base.ts",
|
|
2940
|
-
"line":
|
|
3210
|
+
"line": 74
|
|
2941
3211
|
},
|
|
2942
3212
|
"name": "stages",
|
|
2943
3213
|
"type": {
|
|
@@ -2959,7 +3229,7 @@
|
|
|
2959
3229
|
"immutable": true,
|
|
2960
3230
|
"locationInModule": {
|
|
2961
3231
|
"filename": "src/drift/base.ts",
|
|
2962
|
-
"line":
|
|
3232
|
+
"line": 63
|
|
2963
3233
|
},
|
|
2964
3234
|
"name": "name",
|
|
2965
3235
|
"optional": true,
|
|
@@ -2977,7 +3247,7 @@
|
|
|
2977
3247
|
"immutable": true,
|
|
2978
3248
|
"locationInModule": {
|
|
2979
3249
|
"filename": "src/drift/base.ts",
|
|
2980
|
-
"line":
|
|
3250
|
+
"line": 69
|
|
2981
3251
|
},
|
|
2982
3252
|
"name": "schedule",
|
|
2983
3253
|
"optional": true,
|
|
@@ -2998,7 +3268,7 @@
|
|
|
2998
3268
|
"kind": "interface",
|
|
2999
3269
|
"locationInModule": {
|
|
3000
3270
|
"filename": "src/drift/base.ts",
|
|
3001
|
-
"line":
|
|
3271
|
+
"line": 41
|
|
3002
3272
|
},
|
|
3003
3273
|
"name": "DriftErrorHandler",
|
|
3004
3274
|
"properties": [
|
|
@@ -3011,7 +3281,7 @@
|
|
|
3011
3281
|
"immutable": true,
|
|
3012
3282
|
"locationInModule": {
|
|
3013
3283
|
"filename": "src/drift/base.ts",
|
|
3014
|
-
"line":
|
|
3284
|
+
"line": 50
|
|
3015
3285
|
},
|
|
3016
3286
|
"name": "action",
|
|
3017
3287
|
"type": {
|
|
@@ -3027,7 +3297,7 @@
|
|
|
3027
3297
|
"immutable": true,
|
|
3028
3298
|
"locationInModule": {
|
|
3029
3299
|
"filename": "src/drift/base.ts",
|
|
3030
|
-
"line":
|
|
3300
|
+
"line": 45
|
|
3031
3301
|
},
|
|
3032
3302
|
"name": "pattern",
|
|
3033
3303
|
"type": {
|
|
@@ -3043,7 +3313,7 @@
|
|
|
3043
3313
|
"immutable": true,
|
|
3044
3314
|
"locationInModule": {
|
|
3045
3315
|
"filename": "src/drift/base.ts",
|
|
3046
|
-
"line":
|
|
3316
|
+
"line": 55
|
|
3047
3317
|
},
|
|
3048
3318
|
"name": "message",
|
|
3049
3319
|
"optional": true,
|
|
@@ -3785,7 +4055,7 @@
|
|
|
3785
4055
|
},
|
|
3786
4056
|
"locationInModule": {
|
|
3787
4057
|
"filename": "src/awscdk/github.ts",
|
|
3788
|
-
"line":
|
|
4058
|
+
"line": 286
|
|
3789
4059
|
},
|
|
3790
4060
|
"name": "createAssetUpload"
|
|
3791
4061
|
},
|
|
@@ -3796,7 +4066,7 @@
|
|
|
3796
4066
|
},
|
|
3797
4067
|
"locationInModule": {
|
|
3798
4068
|
"filename": "src/awscdk/github.ts",
|
|
3799
|
-
"line":
|
|
4069
|
+
"line": 341
|
|
3800
4070
|
},
|
|
3801
4071
|
"name": "createDeployment",
|
|
3802
4072
|
"parameters": [
|
|
@@ -3830,7 +4100,7 @@
|
|
|
3830
4100
|
},
|
|
3831
4101
|
"locationInModule": {
|
|
3832
4102
|
"filename": "src/awscdk/github.ts",
|
|
3833
|
-
"line":
|
|
4103
|
+
"line": 457
|
|
3834
4104
|
},
|
|
3835
4105
|
"name": "createIndependentDeployment",
|
|
3836
4106
|
"parameters": [
|
|
@@ -5055,7 +5325,7 @@
|
|
|
5055
5325
|
"immutable": true,
|
|
5056
5326
|
"locationInModule": {
|
|
5057
5327
|
"filename": "src/awscdk/base.ts",
|
|
5058
|
-
"line":
|
|
5328
|
+
"line": 94
|
|
5059
5329
|
},
|
|
5060
5330
|
"name": "assetPublishing",
|
|
5061
5331
|
"optional": true,
|
|
@@ -5072,7 +5342,7 @@
|
|
|
5072
5342
|
"immutable": true,
|
|
5073
5343
|
"locationInModule": {
|
|
5074
5344
|
"filename": "src/awscdk/base.ts",
|
|
5075
|
-
"line":
|
|
5345
|
+
"line": 96
|
|
5076
5346
|
},
|
|
5077
5347
|
"name": "assetPublishingPerStage",
|
|
5078
5348
|
"optional": true,
|
|
@@ -5094,7 +5364,7 @@
|
|
|
5094
5364
|
"immutable": true,
|
|
5095
5365
|
"locationInModule": {
|
|
5096
5366
|
"filename": "src/awscdk/base.ts",
|
|
5097
|
-
"line":
|
|
5367
|
+
"line": 90
|
|
5098
5368
|
},
|
|
5099
5369
|
"name": "default",
|
|
5100
5370
|
"optional": true,
|
|
@@ -5111,7 +5381,7 @@
|
|
|
5111
5381
|
"immutable": true,
|
|
5112
5382
|
"locationInModule": {
|
|
5113
5383
|
"filename": "src/awscdk/base.ts",
|
|
5114
|
-
"line":
|
|
5384
|
+
"line": 100
|
|
5115
5385
|
},
|
|
5116
5386
|
"name": "deployment",
|
|
5117
5387
|
"optional": true,
|
|
@@ -5133,7 +5403,7 @@
|
|
|
5133
5403
|
"immutable": true,
|
|
5134
5404
|
"locationInModule": {
|
|
5135
5405
|
"filename": "src/awscdk/base.ts",
|
|
5136
|
-
"line":
|
|
5406
|
+
"line": 98
|
|
5137
5407
|
},
|
|
5138
5408
|
"name": "diff",
|
|
5139
5409
|
"optional": true,
|
|
@@ -5146,6 +5416,29 @@
|
|
|
5146
5416
|
}
|
|
5147
5417
|
}
|
|
5148
5418
|
},
|
|
5419
|
+
{
|
|
5420
|
+
"abstract": true,
|
|
5421
|
+
"docs": {
|
|
5422
|
+
"remarks": "https://github.com/aws-actions/configure-aws-credentials?tab=readme-ov-file#assumerole-with-role-previously-assumed-by-action-in-same-workflow",
|
|
5423
|
+
"stability": "stable",
|
|
5424
|
+
"summary": "IAM role ARNs for using a \"jump\" role to assume the deploy role in a different AWS account using Role Chaining."
|
|
5425
|
+
},
|
|
5426
|
+
"immutable": true,
|
|
5427
|
+
"locationInModule": {
|
|
5428
|
+
"filename": "src/awscdk/base.ts",
|
|
5429
|
+
"line": 105
|
|
5430
|
+
},
|
|
5431
|
+
"name": "jump",
|
|
5432
|
+
"optional": true,
|
|
5433
|
+
"type": {
|
|
5434
|
+
"collection": {
|
|
5435
|
+
"elementtype": {
|
|
5436
|
+
"primitive": "string"
|
|
5437
|
+
},
|
|
5438
|
+
"kind": "map"
|
|
5439
|
+
}
|
|
5440
|
+
}
|
|
5441
|
+
},
|
|
5149
5442
|
{
|
|
5150
5443
|
"abstract": true,
|
|
5151
5444
|
"docs": {
|
|
@@ -5155,7 +5448,7 @@
|
|
|
5155
5448
|
"immutable": true,
|
|
5156
5449
|
"locationInModule": {
|
|
5157
5450
|
"filename": "src/awscdk/base.ts",
|
|
5158
|
-
"line":
|
|
5451
|
+
"line": 92
|
|
5159
5452
|
},
|
|
5160
5453
|
"name": "synth",
|
|
5161
5454
|
"optional": true,
|
|
@@ -8314,6 +8607,6 @@
|
|
|
8314
8607
|
"symbolId": "src/versioning/types:VersioningStrategyComponents"
|
|
8315
8608
|
}
|
|
8316
8609
|
},
|
|
8317
|
-
"version": "0.
|
|
8318
|
-
"fingerprint": "
|
|
8610
|
+
"version": "0.3.1",
|
|
8611
|
+
"fingerprint": "/Dh1dkONriPLiq2XjHGBkswiOHyrd5xGEA1Ot0CgsCE="
|
|
8319
8612
|
}
|