{ "author": { "email": "info@taimos.de", "name": "The Open Construct Foundation", "organization": true, "roles": [ "author" ] }, "bin": { "detect-drift": "lib/drift/detect-drift.js", "pipelines-release": "lib/release.js" }, "bundled": { "commit-and-tag-version": "^12.7.3" }, "dependencies": { "constructs": "^10.5.1", "projen": ">=0.103.5 <1.0.0" }, "dependencyClosure": { "constructs": { "targets": { "dotnet": { "namespace": "Constructs", "packageId": "Constructs" }, "go": { "moduleName": "github.com/aws/constructs-go" }, "java": { "maven": { "artifactId": "constructs", "groupId": "software.constructs" }, "package": "software.constructs" }, "js": { "npm": "constructs" }, "python": { "distName": "constructs", "module": "constructs" } } }, "projen": { "submodules": { "projen.awscdk": {}, "projen.build": {}, "projen.cdk": {}, "projen.cdk8s": {}, "projen.cdktf": {}, "projen.cdktn": {}, "projen.circleci": {}, "projen.github": {}, "projen.github.workflows": {}, "projen.gitlab": {}, "projen.java": {}, "projen.javascript": {}, "projen.javascript.biome_config": {}, "projen.python": {}, "projen.python.uvConfig": {}, "projen.release": {}, "projen.sonarqube": {}, "projen.typescript": {}, "projen.vscode": {}, "projen.web": {} }, "targets": { "go": { "moduleName": "github.com/projen/projen-go" }, "java": { "maven": { "artifactId": "projen", "groupId": "io.github.cdklabs" }, "package": "io.github.cdklabs.projen" }, "js": { "npm": "projen" }, "python": { "distName": "projen", "module": "projen" } } } }, "description": "projen-pipelines", "docs": { "stability": "stable" }, "homepage": "https://github.com/open-constructs/projen-pipelines.git", "jsiiVersion": "5.9.53 (build 16812ce)", "keywords": [ "aws", "cdk", "projen" ], "license": "Apache-2.0", "metadata": { "jsii": { "pacmak": { "hasDefaultInterfaces": true } }, "tscOutDir": "lib", "tscRootDir": "src" }, "name": "projen-pipelines", "readme": { "markdown": "# Projen Pipelines\n\n[![npm version](https://badge.fury.io/js/projen-pipelines.svg)](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![High level Projen Pipelines Overview](documentation/overview.png)\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![Trust relationship](documentation/trust.svg)\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 `` 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 --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 `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:** - This task deploys a specific stage of the application (like 'dev' or 'prod').\n\n9. **diff:** - 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### Monorepo / Path Filtering\n\nIn monorepo setups, you may want to only trigger a pipeline when changes are made to specific paths. Use the `paths` option to configure path-based filtering:\n\n```typescript\nnew GithubCDKPipeline(app, {\n stackPrefix: 'MyApp',\n iamRoleArns: {\n default: 'arn:aws:iam::123456789012:role/GithubDeploymentRole',\n },\n paths: ['packages/my-app/**', 'shared-libs/**'],\n stages: [\n {\n name: 'dev',\n env: { account: '123456789013', region: 'eu-central-1' },\n },\n ],\n});\n```\n\nWhen `paths` is specified:\n- **GitHub Actions**: The deploy workflow will only trigger on pushes that include changes to the matching paths. Feature branch workflows (deploy/destroy) are also filtered. Manual dispatch (`workflow_dispatch`) remains unfiltered and can always be triggered.\n- **GitLab CI**: Deployment and diff jobs use `only.changes` to only run when matching files are modified.\n\nThis allows you to have multiple pipelines in the same repository, each responsible for a different subproject, without triggering unnecessary deployments.\n\n### Monorepo Subproject Pipelines\n\nFor monorepos using projen subprojects, you can attach a pipeline directly to a subproject. The library automatically detects that the project is a subproject and configures CI to run commands in the correct subdirectory.\n\n```typescript\nimport { awscdk } from 'projen';\nimport { GithubCDKPipeline } from 'projen-pipelines';\n\n// Root monorepo project\nconst root = new awscdk.AwsCdkTypeScriptApp({\n cdkVersion: '2.150.0',\n name: 'my-monorepo',\n defaultReleaseBranch: 'main',\n});\n\n// Subproject at packages/backend\nconst backend = new awscdk.AwsCdkTypeScriptApp({\n cdkVersion: '2.150.0',\n name: 'backend',\n defaultReleaseBranch: 'main',\n parent: root,\n outdir: 'packages/backend',\n devDeps: ['projen-pipelines'],\n});\n\n// Pipeline for the subproject - automatically sets working directory\nnew GithubCDKPipeline(backend, {\n iamRoleArns: {\n default: 'arn:aws:iam::123456789012:role/DeployRole',\n },\n // Optional: build workspace dependencies first\n preBuildCommand: 'pnpm -r --filter backend^... run build',\n stages: [\n { name: 'dev', env: { account: '123456789012', region: 'eu-central-1' } },\n { name: 'prod', env: { account: '123456789013', region: 'eu-central-1' } },\n ],\n});\n```\n\nWhen the pipeline is attached to a subproject:\n- **GitHub Actions**: Every job gets `defaults.run.working-directory: packages/backend`, and artifact paths are prefixed with `packages/backend/`. Workflows are placed in the root `.github/workflows/` directory (since GitHub only discovers workflows there).\n- **GitLab CI**: Job scripts are prefixed with `cd packages/backend`, and artifact paths are adjusted.\n- **Bash**: The pipeline.md instructions include `cd packages/backend` before each command block.\n\n#### preBuildCommand\n\nIn monorepos, workspace sibling packages may need to be built before the app can compile. Use `preBuildCommand` to inject a build step that runs from the repository root before the synth/build:\n\n| Package Manager | preBuildCommand |\n|-----------------|-----------------|\n| pnpm | `pnpm -r --filter ^... run build` |\n| npm | `npm run build --workspaces --if-present` |\n| yarn | `yarn workspaces foreach -Rt run build` |\n\n#### workingDirectory\n\nThe working directory is automatically computed from the project hierarchy. You can also set it explicitly via the `workingDirectory` option if needed (for example, when the pipeline project is not a projen subproject):\n\n```typescript\nnew GithubCDKPipeline(app, {\n workingDirectory: 'packages/backend',\n // ...\n});\n```\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//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" }, "repository": { "type": "git", "url": "https://github.com/open-constructs/projen-pipelines.git" }, "schema": "jsii/0.10.0", "targets": { "js": { "npm": "projen-pipelines" } }, "types": { "projen-pipelines.AmplifyDeployStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "stability": "stable", "summary": "A step that deploys a web application to AWS Amplify." }, "fqn": "projen-pipelines.AmplifyDeployStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 30 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "config", "type": { "fqn": "projen-pipelines.AmplifyDeployStepConfig" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 25 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a bash script step." }, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 165 }, "name": "toBash", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.BashStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 124 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitLab CI step." }, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 104 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "AmplifyDeployStep", "symbolId": "src/steps/amplify-deploy.step:AmplifyDeployStep" }, "projen-pipelines.AmplifyDeployStepConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration for an AWS Amplify deployment step." }, "fqn": "projen-pipelines.AmplifyDeployStepConfig", "kind": "interface", "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 7 }, "name": "AmplifyDeployStepConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The artifact file to deploy (zip file containing the build)." }, "immutable": true, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 13 }, "name": "artifactFile", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The Amplify app ID (static value)." }, "immutable": true, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 9 }, "name": "appId", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Command to retrieve the Amplify app ID dynamically." }, "immutable": true, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 11 }, "name": "appIdCommand", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The branch name to deploy to (defaults to 'main')." }, "immutable": true, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 15 }, "name": "branchName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Environment name." }, "immutable": true, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 19 }, "name": "environment", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The AWS region (defaults to 'eu-central-1')." }, "immutable": true, "locationInModule": { "filename": "src/steps/amplify-deploy.step.ts", "line": 17 }, "name": "region", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/steps/amplify-deploy.step:AmplifyDeployStepConfig" }, "projen-pipelines.ApproverMapping": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.ApproverMapping", "kind": "interface", "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 3 }, "name": "ApproverMapping", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 6 }, "name": "approvers", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 5 }, "name": "author", "type": { "primitive": "string" } } ], "symbolId": "src/assign-approver/base:ApproverMapping" }, "projen-pipelines.AssignApprover": { "abstract": true, "assembly": "projen-pipelines", "base": "projen.Component", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.AssignApprover", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 27 }, "parameters": [ { "name": "scope", "type": { "fqn": "projen.Project" } }, { "name": "baseOptions", "type": { "fqn": "projen-pipelines.AssignApproverOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 24 }, "name": "AssignApprover", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 27 }, "name": "baseOptions", "protected": true, "type": { "fqn": "projen-pipelines.AssignApproverOptions" } } ], "symbolId": "src/assign-approver/base:AssignApprover" }, "projen-pipelines.AssignApproverOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.AssignApproverOptions", "kind": "interface", "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 10 }, "name": "AssignApproverOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The mapping of authors to approvers." }, "immutable": true, "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 15 }, "name": "approverMapping", "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.ApproverMapping" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The GitHub token to use for the API calls." }, "immutable": true, "locationInModule": { "filename": "src/assign-approver/base.ts", "line": 20 }, "name": "defaultApprovers", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "src/assign-approver/base:AssignApproverOptions" }, "projen-pipelines.AwsAssumeRoleStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "stability": "stable", "summary": "A step that assumes a role in AWS." }, "fqn": "projen-pipelines.AwsAssumeRoleStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 30 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "config", "type": { "fqn": "projen-pipelines.AwsAssumeRoleStepConfig" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 29 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a bash script step." }, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 96 }, "name": "toBash", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.BashStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 53 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitLab CI step." }, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 37 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "AwsAssumeRoleStep", "symbolId": "src/steps/aws-assume-role.step:AwsAssumeRoleStep" }, "projen-pipelines.AwsAssumeRoleStepConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration for an AWS AssumeRoleStep." }, "fqn": "projen-pipelines.AwsAssumeRoleStepConfig", "kind": "interface", "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 13 }, "name": "AwsAssumeRoleStepConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The ARN of the role to assume." }, "immutable": true, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 15 }, "name": "roleArn", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The ARN of the jump role to use for role chaining." }, "immutable": true, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 23 }, "name": "jumpRoleArn", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The AWS region that should be set." }, "immutable": true, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 19 }, "name": "region", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "An identifier for the assumed role session." }, "immutable": true, "locationInModule": { "filename": "src/steps/aws-assume-role.step.ts", "line": 17 }, "name": "sessionName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/steps/aws-assume-role.step:AwsAssumeRoleStepConfig" }, "projen-pipelines.BashCDKPipeline": { "assembly": "projen-pipelines", "base": "projen-pipelines.CDKPipeline", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.BashCDKPipeline", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/bash.ts", "line": 11 }, "parameters": [ { "name": "app", "type": { "fqn": "projen.awscdk.AwsCdkTypeScriptApp" } }, { "name": "options", "type": { "fqn": "projen-pipelines.BashCDKPipelineOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/awscdk/bash.ts", "line": 9 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/bash.ts", "line": 106 }, "name": "engineType", "overrides": "projen-pipelines.CDKPipeline", "returns": { "type": { "fqn": "projen-pipelines.PipelineEngine" } } } ], "name": "BashCDKPipeline", "symbolId": "src/awscdk/bash:BashCDKPipeline" }, "projen-pipelines.BashCDKPipelineOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.BashCDKPipelineOptions", "interfaces": [ "projen-pipelines.CDKPipelineOptions" ], "kind": "interface", "locationInModule": { "filename": "src/awscdk/bash.ts", "line": 5 }, "name": "BashCDKPipelineOptions", "symbolId": "src/awscdk/bash:BashCDKPipelineOptions" }, "projen-pipelines.BashDriftDetectionWorkflow": { "assembly": "projen-pipelines", "base": "projen-pipelines.DriftDetectionWorkflow", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.BashDriftDetectionWorkflow", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/drift/bash.ts", "line": 16 }, "parameters": [ { "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.BashDriftDetectionWorkflowOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/drift/bash.ts", "line": 13 }, "name": "BashDriftDetectionWorkflow", "symbolId": "src/drift/bash:BashDriftDetectionWorkflow" }, "projen-pipelines.BashDriftDetectionWorkflowOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.BashDriftDetectionWorkflowOptions", "interfaces": [ "projen-pipelines.DriftDetectionWorkflowOptions" ], "kind": "interface", "locationInModule": { "filename": "src/drift/bash.ts", "line": 5 }, "name": "BashDriftDetectionWorkflowOptions", "properties": [ { "abstract": true, "docs": { "default": "\"drift-detection.sh\"", "stability": "stable", "summary": "Path to the output script." }, "immutable": true, "locationInModule": { "filename": "src/drift/bash.ts", "line": 10 }, "name": "scriptPath", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/drift/bash:BashDriftDetectionWorkflowOptions" }, "projen-pipelines.BashStepConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration interface for a bash script step." }, "fqn": "projen-pipelines.BashStepConfig", "kind": "interface", "locationInModule": { "filename": "src/steps/step.ts", "line": 45 }, "name": "BashStepConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Shell commands to execute." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 48 }, "name": "commands", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "src/steps/step:BashStepConfig" }, "projen-pipelines.BuildNumberConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.BuildNumberConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 130 }, "name": "BuildNumberConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 132 }, "name": "commitCount", "optional": true, "type": { "fqn": "projen-pipelines.CommitCountConfig" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 131 }, "name": "prefix", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:BuildNumberConfig" }, "projen-pipelines.CDKPipeline": { "abstract": true, "assembly": "projen-pipelines", "base": "projen.Component", "docs": { "remarks": "It also manages tasks such as publishing CDK assets, bumping version based on git tags, and cleaning up conflicting tasks.", "stability": "stable", "summary": "The CDKPipeline class extends the Component class and sets up the necessary configuration for deploying AWS CDK (Cloud Development Kit) applications across multiple stages." }, "fqn": "projen-pipelines.CDKPipeline", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 262 }, "parameters": [ { "name": "app", "type": { "fqn": "projen.awscdk.AwsCdkTypeScriptApp" } }, { "name": "baseOptions", "type": { "fqn": "projen-pipelines.CDKPipelineOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 249 }, "methods": [ { "docs": { "stability": "stable", "summary": "This method generates the entry point for the application, including interfaces and classes necessary to set up the pipeline and define the AWS CDK stacks for different environments." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 504 }, "name": "createApplicationEntrypoint", "protected": true }, { "docs": { "stability": "stable", "summary": "This method sets up tasks for the feature deployment stage, including deployment, comparing changes (diff), and destroying the stack when no longer needed." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 710 }, "name": "createFeatureStage", "protected": true }, { "docs": { "stability": "stable", "summary": "This method sets up tasks for the independent stages including deployment and comparing changes (diff)." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 759 }, "name": "createIndependentStage", "parameters": [ { "docs": { "summary": "- The stage to create." }, "name": "stage", "type": { "fqn": "projen-pipelines.IndependentStage" } } ], "protected": true }, { "docs": { "stability": "stable", "summary": "This method sets up tasks for the personal deployment stage, including deployment, watching for changes, comparing changes (diff), and destroying the stack when no longer needed." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 687 }, "name": "createPersonalStage", "protected": true }, { "docs": { "stability": "stable", "summary": "This method sets up tasks for the general pipeline stages (dev, prod), including deployment and comparing changes (diff)." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 733 }, "name": "createPipelineStage", "parameters": [ { "docs": { "summary": "- The stage to create." }, "name": "stage", "type": { "fqn": "projen-pipelines.DeploymentStage" } } ], "protected": true }, { "docs": { "stability": "stable", "summary": "This method sets up tasks to publish CDK assets to all accounts and handle versioning, including bumping the version based on the latest git tag and pushing the CDK assembly to the package repository." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 632 }, "name": "createReleaseTasks", "protected": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 490 }, "name": "createSafeStageName", "parameters": [ { "name": "name", "type": { "primitive": "string" } } ], "protected": true, "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Create version:fetch: task to fetch version data from deployed stack." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 792 }, "name": "createVersionFetchTask", "parameters": [ { "name": "stage", "type": { "fqn": "projen-pipelines.NamedStageOptions" } } ], "protected": true }, { "abstract": true, "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 324 }, "name": "engineType", "returns": { "type": { "fqn": "projen-pipelines.PipelineEngine" } } }, { "docs": { "stability": "stable", "summary": "Generate CDK application code for versioning." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 838 }, "name": "generateVersioningAppCode", "parameters": [ { "name": "config", "type": { "fqn": "projen-pipelines.VersioningConfig" } } ], "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Generate versioning imports for CDK application." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 852 }, "name": "generateVersioningImports", "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Generate versioning utility functions for CDK application." }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 865 }, "name": "generateVersioningUtilities", "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 781 }, "name": "getCliStackPattern", "parameters": [ { "name": "stage", "type": { "primitive": "string" } } ], "protected": true, "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 432 }, "name": "provideAssemblyUploadStep", "protected": true, "returns": { "type": { "fqn": "projen-pipelines.PipelineStep" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 398 }, "name": "provideAssetUploadStep", "parameters": [ { "name": "stageName", "optional": true, "type": { "primitive": "string" } } ], "protected": true, "returns": { "type": { "fqn": "projen-pipelines.PipelineStep" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 442 }, "name": "provideDeployStep", "parameters": [ { "name": "stage", "type": { "fqn": "projen-pipelines.NamedStageOptions" } } ], "protected": true, "returns": { "type": { "fqn": "projen-pipelines.PipelineStep" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 454 }, "name": "provideDiffStep", "parameters": [ { "name": "stage", "type": { "fqn": "projen-pipelines.NamedStageOptions" } }, { "name": "fast", "optional": true, "type": { "primitive": "boolean" } } ], "protected": true, "returns": { "type": { "fqn": "projen-pipelines.PipelineStep" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 326 }, "name": "provideInstallStep", "protected": true, "returns": { "type": { "fqn": "projen-pipelines.PipelineStep" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 348 }, "name": "provideSynthStep", "protected": true, "returns": { "type": { "fqn": "projen-pipelines.PipelineStep" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 468 }, "name": "renderInstallPackageCommands", "parameters": [ { "name": "packageName", "type": { "primitive": "string" } }, { "name": "runPreInstallCommands", "optional": true, "type": { "primitive": "boolean" } } ], "protected": true, "returns": { "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } } ], "name": "CDKPipeline", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 251 }, "name": "branchName", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Prefix for workflow files, concurrency groups, and artifact names to prevent collisions in monorepos." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 254 }, "name": "namePrefix", "protected": true, "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 250 }, "name": "stackPrefix", "type": { "primitive": "string" } }, { "docs": { "remarks": "Undefined when the pipeline is at the repository root.", "stability": "stable", "summary": "The working directory relative to the repository root for this pipeline." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 260 }, "name": "workingDirectory", "optional": true, "protected": true, "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 262 }, "name": "app", "protected": true, "type": { "fqn": "projen.awscdk.AwsCdkTypeScriptApp" } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 262 }, "name": "baseOptions", "protected": true, "type": { "fqn": "projen-pipelines.CDKPipelineOptions" } } ], "symbolId": "src/awscdk/base:CDKPipeline" }, "projen-pipelines.CDKPipelineOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "remarks": "It allows the definition\nof settings such as the stack prefix and package namespace to be used in the\nAWS stack, along with the environments configuration to be used.", "stability": "stable", "summary": "The CDKPipelineOptions interface is designed to provide configuration options for a CDK (Cloud Development Kit) pipeline." }, "fqn": "projen-pipelines.CDKPipelineOptions", "kind": "interface", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 124 }, "name": "CDKPipelineOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "IAM config." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 181 }, "name": "iamRoleArns", "type": { "fqn": "projen-pipelines.IamRoleConfig" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "This field specifies a list of stages that should be deployed using a CI/CD pipeline." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 186 }, "name": "stages", "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.DeploymentStage" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "main", "stability": "stable", "summary": "the name of the branch to deploy from." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 138 }, "name": "branchName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "false", "remarks": "You can use this to deploy CDk applications containing multiple stacks.", "stability": "stable", "summary": "If set to true all CDK actions will also include /* to deploy/diff/destroy sub stacks of the main stack." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 167 }, "name": "deploySubStacks", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "This specifies details for feature stages." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 195 }, "name": "featureStages", "optional": true, "type": { "fqn": "projen-pipelines.StageOptions" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "This specifies details for independent stages." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 189 }, "name": "independentStages", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.IndependentStage" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- all paths trigger the pipeline", "example": "['packages/my-app/**', 'shared-libs/**']", "remarks": "This is useful for monorepos where you only want to run the pipeline\nwhen files in a specific subproject are modified.\n\nFor GitHub, these are used as `on.push.paths` and `on.pull_request.paths` filters.\nFor GitLab, these are used as `only.changes` filters.", "stability": "stable", "summary": "File path patterns that should trigger the pipeline when changed." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 151 }, "name": "paths", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "This specifies details for a personal stage." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 192 }, "name": "personalStage", "optional": true, "type": { "fqn": "projen-pipelines.StageOptions" } }, { "abstract": true, "docs": { "default": "- the project name if the project has a parent (monorepo subproject), otherwise no prefix", "stability": "stable", "summary": "A unique name for this pipeline, used as a prefix for workflow files, concurrency groups, and artifact names to prevent collisions in monorepos." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 132 }, "name": "pipelineName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "-", "remarks": "A namespace helps group related resources together, providing\nbetter organization and ease of management.\n\nThis is only needed if you need to version and upload the cloud assembly to a package repository.", "stability": "stable", "summary": "This field determines the NPM namespace to be used when packaging CDK cloud assemblies." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 178 }, "name": "pkgNamespace", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 208 }, "name": "postSynthCommands", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 212 }, "name": "postSynthSteps", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- no pre-build command", "remarks": "When a workingDirectory is set (monorepo subproject), the command is\nautomatically wrapped to execute from the repository root regardless of\nthe job's working directory setting.\n\nFor pnpm workspaces: `pnpm -r --filter ^... run build`\nFor npm workspaces: `npm run build --workspaces --if-present`\nFor yarn workspaces: `yarn workspaces foreach -Rt run build`", "stability": "stable", "summary": "A command to run before the build step, executed from the repository root." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 237 }, "name": "preBuildCommand", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 206 }, "name": "preInstallCommands", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 210 }, "name": "preInstallSteps", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 207 }, "name": "preSynthCommands", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 211 }, "name": "preSynthSteps", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "project name", "stability": "stable", "summary": "This field is used to define a prefix for the AWS Stack resources created during the pipeline's operation." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 159 }, "name": "stackPrefix", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Versioning configuration." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 242 }, "name": "versioning", "optional": true, "type": { "fqn": "projen-pipelines.VersioningConfig" } }, { "abstract": true, "docs": { "default": "- automatically computed from the project's position in the monorepo (empty string for root projects)", "remarks": "This is automatically computed for subprojects but can be explicitly set.\n\nWhen set, CI jobs will run commands in this directory, and artifact paths\nwill be prefixed accordingly.", "stability": "stable", "summary": "The working directory for the pipeline relative to the repository root." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 223 }, "name": "workingDirectory", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/awscdk/base:CDKPipelineOptions" }, "projen-pipelines.CdkDiffType": { "assembly": "projen-pipelines", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.CdkDiffType", "kind": "enum", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 40 }, "members": [ { "docs": { "stability": "stable", "summary": "Do not perform a diff." }, "name": "NONE" }, { "docs": { "stability": "stable", "summary": "Perform a fast template diff (--no-changeset)." }, "name": "FAST" }, { "docs": { "stability": "stable", "summary": "Perform a full CloudFormation diff (--changeset)." }, "name": "FULL" } ], "name": "CdkDiffType", "symbolId": "src/awscdk/base:CdkDiffType" }, "projen-pipelines.CdkOutputsSummaryStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "remarks": "For GitHub Actions: Writes outputs as a markdown table to the job summary.\nFor GitLab CI: Displays outputs in a collapsible section in the job log.\n\nThis step reads the outputs JSON file generated by CDK deploy and formats\nit for display in the respective CI/CD platform.", "stability": "stable", "summary": "A pipeline step that writes CDK stack outputs to the CI/CD job summary." }, "fqn": "projen-pipelines.CdkOutputsSummaryStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/github-summary.step.ts", "line": 23 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.CdkOutputsSummaryStepOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/github-summary.step.ts", "line": 21 }, "methods": [ { "docs": { "stability": "stable", "summary": "Converts the step into a GitHub Actions step configuration." }, "locationInModule": { "filename": "src/steps/github-summary.step.ts", "line": 33 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "remarks": "Creates a collapsible section in the job log to display CDK outputs.", "stability": "stable", "summary": "Converts the step into a GitLab CI step configuration." }, "locationInModule": { "filename": "src/steps/github-summary.step.ts", "line": 81 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "CdkOutputsSummaryStep", "symbolId": "src/steps/github-summary.step:CdkOutputsSummaryStep" }, "projen-pipelines.CdkOutputsSummaryStepOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for the CDK outputs summary step." }, "fqn": "projen-pipelines.CdkOutputsSummaryStepOptions", "kind": "interface", "locationInModule": { "filename": "src/steps/github-summary.step.ts", "line": 7 }, "name": "CdkOutputsSummaryStepOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The stage name used to identify the outputs file." }, "immutable": true, "locationInModule": { "filename": "src/steps/github-summary.step.ts", "line": 9 }, "name": "stageName", "type": { "primitive": "string" } } ], "symbolId": "src/steps/github-summary.step:CdkOutputsSummaryStepOptions" }, "projen-pipelines.CloudFormationOnlyOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.CloudFormationOnlyOptions", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 154 }, "name": "CloudFormationOnlyOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 157 }, "name": "exportName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 155 }, "name": "format", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 156 }, "name": "stackOutputName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:CloudFormationOnlyOptions" }, "projen-pipelines.CloudFormationOutput": { "assembly": "projen-pipelines", "base": "projen-pipelines.OutputConfigBase", "docs": { "stability": "stable", "summary": "CloudFormation output configuration." }, "fqn": "projen-pipelines.CloudFormationOutput", "kind": "class", "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 18 }, "methods": [ { "docs": { "stability": "stable", "summary": "Disable CloudFormation outputs." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 31 }, "name": "disabled", "returns": { "type": { "fqn": "projen-pipelines.CloudFormationOutput" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Enable CloudFormation outputs with default configuration." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 24 }, "name": "enabled", "returns": { "type": { "fqn": "projen-pipelines.CloudFormationOutput" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Configure CloudFormation outputs with custom settings." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 38 }, "name": "withConfig", "parameters": [ { "name": "config", "type": { "fqn": "projen-pipelines.CloudFormationOutputConfig" } } ], "returns": { "type": { "fqn": "projen-pipelines.CloudFormationOutput" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Convert to configuration object." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 46 }, "name": "toConfig", "overrides": "projen-pipelines.OutputConfigBase", "returns": { "type": { "primitive": "any" } } } ], "name": "CloudFormationOutput", "properties": [ { "const": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 19 }, "name": "TYPE", "static": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/outputs:CloudFormationOutput" }, "projen-pipelines.CloudFormationOutputConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.CloudFormationOutputConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 116 }, "name": "CloudFormationOutputConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 117 }, "name": "enabled", "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 118 }, "name": "exportName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:CloudFormationOutputConfig" }, "projen-pipelines.CodeArtifactLoginStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.StepSequence", "docs": { "remarks": "The environment variable name can be configured to avoid conflicts with other environment variables.\nThe default is CODEARTIFACT_AUTH_TOKEN.", "stability": "stable", "summary": "Step to login to CodeArtifact." }, "fqn": "projen-pipelines.CodeArtifactLoginStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/registries.ts", "line": 96 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.CodeArtifactLoginStepOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/registries.ts", "line": 95 }, "name": "CodeArtifactLoginStep", "properties": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/registries.ts", "line": 96 }, "name": "options", "protected": true, "type": { "fqn": "projen-pipelines.CodeArtifactLoginStepOptions" } } ], "symbolId": "src/steps/registries:CodeArtifactLoginStep" }, "projen-pipelines.CodeArtifactLoginStepOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for the CodeArtifactLoginStep." }, "fqn": "projen-pipelines.CodeArtifactLoginStepOptions", "kind": "interface", "locationInModule": { "filename": "src/steps/registries.ts", "line": 75 }, "name": "CodeArtifactLoginStepOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/registries.ts", "line": 78 }, "name": "domainName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/registries.ts", "line": 76 }, "name": "ownerAccount", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/registries.ts", "line": 77 }, "name": "region", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/registries.ts", "line": 79 }, "name": "role", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "'CODEARTIFACT_AUTH_TOKEN'", "stability": "stable", "summary": "The environment variable name to set." }, "immutable": true, "locationInModule": { "filename": "src/steps/registries.ts", "line": 86 }, "name": "envVariableName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/steps/registries:CodeArtifactLoginStepOptions" }, "projen-pipelines.CommitCountConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.CommitCountConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 82 }, "name": "CommitCountConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Count from: 'all' | 'branch' | 'since-tag'." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 86 }, "name": "countFrom", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Include branch name." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 90 }, "name": "includeBranch", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Padding for count." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 98 }, "name": "padding", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Reset on major version." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 94 }, "name": "resetOnMajor", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/versioning/types:CommitCountConfig" }, "projen-pipelines.CompositeComputation": { "assembly": "projen-pipelines", "base": "projen-pipelines.VersionComputationStrategy", "docs": { "stability": "stable", "summary": "Composite version computation that combines multiple strategies." }, "fqn": "projen-pipelines.CompositeComputation", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 71 }, "parameters": [ { "name": "strategy", "type": { "fqn": "projen-pipelines.VersioningStrategy" } } ] }, "kind": "class", "locationInModule": { "filename": "src/versioning/computation.ts", "line": 70 }, "methods": [ { "docs": { "stability": "stable", "summary": "Compute version string from context." }, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 77 }, "name": "computeVersion", "overrides": "projen-pipelines.VersionComputationStrategy", "parameters": [ { "name": "context", "type": { "fqn": "projen-pipelines.ComputationContext" } } ], "returns": { "type": { "primitive": "string" } } } ], "name": "CompositeComputation", "symbolId": "src/versioning/computation:CompositeComputation" }, "projen-pipelines.ComputationContext": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Context for version computation." }, "fqn": "projen-pipelines.ComputationContext", "kind": "interface", "locationInModule": { "filename": "src/versioning/computation.ts", "line": 21 }, "name": "ComputationContext", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 24 }, "name": "deployedBy", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 23 }, "name": "environment", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 22 }, "name": "gitInfo", "type": { "fqn": "projen-pipelines.GitInfo" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 25 }, "name": "buildNumber", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 27 }, "name": "pipelineVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 26 }, "name": "repository", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/computation:ComputationContext" }, "projen-pipelines.CorepackSetupStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "remarks": "This step is automatically injected when a project uses Yarn Berry as its package manager.\nIt ensures corepack is enabled in the CI environment before running any yarn commands,\nwhich is required for Yarn Berry (v2+) to work correctly.", "stability": "stable", "summary": "Step to enable corepack for Yarn Berry support." }, "fqn": "projen-pipelines.CorepackSetupStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 67 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 65 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a bash script step." }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 91 }, "name": "toBash", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.BashStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 71 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitLab CI step." }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 82 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "CorepackSetupStep", "symbolId": "src/steps/package-manager-setup.step:CorepackSetupStep" }, "projen-pipelines.CustomVersioningConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.CustomVersioningConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/config.ts", "line": 6 }, "name": "CustomVersioningConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/config.ts", "line": 9 }, "name": "outputs", "type": { "fqn": "projen-pipelines.VersioningOutputConfig" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/config.ts", "line": 8 }, "name": "strategy", "type": { "fqn": "projen-pipelines.IVersioningStrategy" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/config.ts", "line": 7 }, "name": "enabled", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/config.ts", "line": 10 }, "name": "stageOverrides", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.VersioningConfig" }, "kind": "map" } } } ], "symbolId": "src/versioning/config:CustomVersioningConfig" }, "projen-pipelines.DeploymentInfoInput": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DeploymentInfoInput", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 143 }, "name": "DeploymentInfoInput", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 144 }, "name": "environment", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 146 }, "name": "buildNumber", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 145 }, "name": "deployedBy", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:DeploymentInfoInput" }, "projen-pipelines.DeploymentStage": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for stages that are part of the pipeline." }, "fqn": "projen-pipelines.DeploymentStage", "interfaces": [ "projen-pipelines.NamedStageOptions" ], "kind": "interface", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 52 }, "name": "DeploymentStage", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 53 }, "name": "manualApproval", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/awscdk/base:DeploymentStage" }, "projen-pipelines.DownloadArtifactStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DownloadArtifactStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 11 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "config", "type": { "fqn": "projen-pipelines.DownloadArtifactStepConfig" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 9 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 24 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitLab CI step." }, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 15 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "DownloadArtifactStep", "symbolId": "src/steps/artifact-steps:DownloadArtifactStep" }, "projen-pipelines.DownloadArtifactStepConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DownloadArtifactStepConfig", "kind": "interface", "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 4 }, "name": "DownloadArtifactStepConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 5 }, "name": "name", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 6 }, "name": "path", "type": { "primitive": "string" } } ], "symbolId": "src/steps/artifact-steps:DownloadArtifactStepConfig" }, "projen-pipelines.DriftDetectionStageOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DriftDetectionStageOptions", "kind": "interface", "locationInModule": { "filename": "src/drift/base.ts", "line": 5 }, "name": "DriftDetectionStageOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Name of the stage." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 9 }, "name": "name", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "AWS region for this stage." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 14 }, "name": "region", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Environment variables for this stage." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 40 }, "name": "environment", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "true", "stability": "stable", "summary": "Whether to fail if drift is detected." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 35 }, "name": "failOnDrift", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Jump role to assume before the main role." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 24 }, "name": "jumpRoleArn", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Role to assume for drift detection." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 19 }, "name": "roleArn", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Stack names to check in this stage." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 29 }, "name": "stackNames", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "src/drift/base:DriftDetectionStageOptions" }, "projen-pipelines.DriftDetectionStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.StepSequence", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DriftDetectionStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/drift/step.ts", "line": 35 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "props", "type": { "fqn": "projen-pipelines.DriftDetectionStepProps" } } ] }, "kind": "class", "locationInModule": { "filename": "src/drift/step.ts", "line": 13 }, "name": "DriftDetectionStep", "symbolId": "src/drift/step:DriftDetectionStep" }, "projen-pipelines.DriftDetectionStepProps": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DriftDetectionStepProps", "interfaces": [ "projen-pipelines.DriftDetectionStageOptions" ], "kind": "interface", "locationInModule": { "filename": "src/drift/step.ts", "line": 5 }, "name": "DriftDetectionStepProps", "properties": [ { "abstract": true, "docs": { "default": "30", "stability": "stable", "summary": "Timeout in minutes for drift detection." }, "immutable": true, "locationInModule": { "filename": "src/drift/step.ts", "line": 10 }, "name": "timeout", "optional": true, "type": { "primitive": "number" } } ], "symbolId": "src/drift/step:DriftDetectionStepProps" }, "projen-pipelines.DriftDetectionWorkflow": { "abstract": true, "assembly": "projen-pipelines", "base": "projen.Component", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DriftDetectionWorkflow", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/drift/base.ts", "line": 108 }, "parameters": [ { "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.DriftDetectionWorkflowOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/drift/base.ts", "line": 99 }, "name": "DriftDetectionWorkflow", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 100 }, "name": "name", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Prefix for workflow files and artifact names to prevent collisions in monorepos." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 106 }, "name": "namePrefix", "protected": true, "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 103 }, "name": "preInstallSteps", "protected": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 101 }, "name": "schedule", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 102 }, "name": "stages", "protected": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.DriftDetectionStageOptions" }, "kind": "array" } } } ], "symbolId": "src/drift/base:DriftDetectionWorkflow" }, "projen-pipelines.DriftDetectionWorkflowOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DriftDetectionWorkflowOptions", "kind": "interface", "locationInModule": { "filename": "src/drift/base.ts", "line": 60 }, "name": "DriftDetectionWorkflowOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Drift detection configurations for different environments." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 84 }, "name": "stages", "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.DriftDetectionStageOptions" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "\"drift-detection\"", "stability": "stable", "summary": "Name of the workflow." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 73 }, "name": "name", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- no prefix", "stability": "stable", "summary": "A unique name for this pipeline, used as a prefix for workflow files and artifact names to prevent collisions in monorepos." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 67 }, "name": "pipelineName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- no additional pre-install steps", "remarks": "Note: Package manager setup (e.g., PnpmSetupStep for pnpm or CorepackSetupStep\nfor Yarn Berry) is automatically detected from the project and always included.\nUse this option for any additional pre-install steps you need.", "stability": "stable", "summary": "Additional steps to execute before installing dependencies. These steps are executed before the package manager setup and install command." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 96 }, "name": "preInstallSteps", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "\"0 0 * * *\" (daily at midnight)", "stability": "stable", "summary": "Cron schedule for drift detection." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 79 }, "name": "schedule", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/drift/base:DriftDetectionWorkflowOptions" }, "projen-pipelines.DriftErrorHandler": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.DriftErrorHandler", "kind": "interface", "locationInModule": { "filename": "src/drift/base.ts", "line": 43 }, "name": "DriftErrorHandler", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Action to take when pattern matches." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 52 }, "name": "action", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Pattern to match stack names." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 47 }, "name": "pattern", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Optional message to display." }, "immutable": true, "locationInModule": { "filename": "src/drift/base.ts", "line": 57 }, "name": "message", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/drift/base:DriftErrorHandler" }, "projen-pipelines.Environment": { "assembly": "projen-pipelines", "datatype": true, "docs": { "remarks": "Each environment requires a specific account and region for its resources.", "stability": "stable", "summary": "The Environment interface is designed to hold AWS related information for a specific deployment environment within your infrastructure." }, "fqn": "projen-pipelines.Environment", "kind": "interface", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 14 }, "name": "Environment", "properties": [ { "abstract": true, "docs": { "remarks": "It's important because\ndifferent services or features could have distinct permissions and settings\nin different accounts.", "stability": "stable", "summary": "The AWS Account ID associated with the environment." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 20 }, "name": "account", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "remarks": "This determines where your resources\nare created and where your application will run. It can affect latency,\navailability, and pricing.", "stability": "stable", "summary": "The AWS Region for the environment." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 27 }, "name": "region", "type": { "primitive": "string" } } ], "symbolId": "src/awscdk/base:Environment" }, "projen-pipelines.GitHubAssignApprover": { "assembly": "projen-pipelines", "base": "projen-pipelines.AssignApprover", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitHubAssignApprover", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/assign-approver/github.ts", "line": 20 }, "parameters": [ { "name": "scope", "type": { "fqn": "projen.github.GitHubProject" } }, { "name": "options", "type": { "fqn": "projen-pipelines.GitHubAssignApproverOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/assign-approver/github.ts", "line": 16 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/assign-approver/github.ts", "line": 64 }, "name": "generateApproverMappingScript", "protected": true, "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Get the required permissions for the GitHub workflow." }, "locationInModule": { "filename": "src/assign-approver/github.ts", "line": 38 }, "name": "renderPermissions", "returns": { "type": { "fqn": "projen.github.workflows.JobPermissions" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/assign-approver/github.ts", "line": 44 }, "name": "setupWorkflow", "protected": true } ], "name": "GitHubAssignApprover", "symbolId": "src/assign-approver/github:GitHubAssignApprover" }, "projen-pipelines.GitHubAssignApproverOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitHubAssignApproverOptions", "interfaces": [ "projen-pipelines.AssignApproverOptions" ], "kind": "interface", "locationInModule": { "filename": "src/assign-approver/github.ts", "line": 5 }, "name": "GitHubAssignApproverOptions", "properties": [ { "abstract": true, "docs": { "default": "['ubuntu-latest']", "stability": "stable", "summary": "runner tags to use to select runners." }, "immutable": true, "locationInModule": { "filename": "src/assign-approver/github.ts", "line": 12 }, "name": "runnerTags", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "src/assign-approver/github:GitHubAssignApproverOptions" }, "projen-pipelines.GitHubDriftDetectionWorkflow": { "assembly": "projen-pipelines", "base": "projen-pipelines.DriftDetectionWorkflow", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitHubDriftDetectionWorkflow", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/drift/github.ts", "line": 25 }, "parameters": [ { "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.GitHubDriftDetectionWorkflowOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/drift/github.ts", "line": 20 }, "name": "GitHubDriftDetectionWorkflow", "symbolId": "src/drift/github:GitHubDriftDetectionWorkflow" }, "projen-pipelines.GitHubDriftDetectionWorkflowOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitHubDriftDetectionWorkflowOptions", "interfaces": [ "projen-pipelines.DriftDetectionWorkflowOptions" ], "kind": "interface", "locationInModule": { "filename": "src/drift/github.ts", "line": 7 }, "name": "GitHubDriftDetectionWorkflowOptions", "properties": [ { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "Whether to create issues on drift detection." }, "immutable": true, "locationInModule": { "filename": "src/drift/github.ts", "line": 17 }, "name": "createIssues", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Additional permissions for GitHub workflow." }, "immutable": true, "locationInModule": { "filename": "src/drift/github.ts", "line": 11 }, "name": "permissions", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } } ], "symbolId": "src/drift/github:GitHubDriftDetectionWorkflowOptions" }, "projen-pipelines.GitInfo": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Git information extracted from repository." }, "fqn": "projen-pipelines.GitInfo", "kind": "interface", "locationInModule": { "filename": "src/versioning/computation.ts", "line": 8 }, "name": "GitInfo", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 11 }, "name": "branch", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 14 }, "name": "commitCount", "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 9 }, "name": "commitHash", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 10 }, "name": "commitHashShort", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 13 }, "name": "commitsSinceTag", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 15 }, "name": "packageVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 12 }, "name": "tag", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/computation:GitInfo" }, "projen-pipelines.GitInfoInput": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitInfoInput", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 135 }, "name": "GitInfoInput", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 137 }, "name": "branch", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 140 }, "name": "commitCount", "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 136 }, "name": "commitHash", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 139 }, "name": "commitsSinceTag", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 138 }, "name": "tag", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:GitInfoInput" }, "projen-pipelines.GitLabDriftDetectionWorkflow": { "assembly": "projen-pipelines", "base": "projen-pipelines.DriftDetectionWorkflow", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitLabDriftDetectionWorkflow", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/drift/gitlab.ts", "line": 23 }, "parameters": [ { "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.GitLabDriftDetectionWorkflowOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/drift/gitlab.ts", "line": 18 }, "name": "GitLabDriftDetectionWorkflow", "symbolId": "src/drift/gitlab:GitLabDriftDetectionWorkflow" }, "projen-pipelines.GitLabDriftDetectionWorkflowOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitLabDriftDetectionWorkflowOptions", "interfaces": [ "projen-pipelines.DriftDetectionWorkflowOptions" ], "kind": "interface", "locationInModule": { "filename": "src/drift/gitlab.ts", "line": 5 }, "name": "GitLabDriftDetectionWorkflowOptions", "properties": [ { "abstract": true, "docs": { "default": "\"node:18\"", "stability": "stable", "summary": "Docker image to use for drift detection." }, "immutable": true, "locationInModule": { "filename": "src/drift/gitlab.ts", "line": 15 }, "name": "image", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "GitLab runner tags." }, "immutable": true, "locationInModule": { "filename": "src/drift/gitlab.ts", "line": 9 }, "name": "runnerTags", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "src/drift/gitlab:GitLabDriftDetectionWorkflowOptions" }, "projen-pipelines.GitTagConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GitTagConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 48 }, "name": "GitTagConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Only use annotated tags." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 52 }, "name": "annotatedOnly", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Include commits since tag." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 64 }, "name": "includeSinceTag", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Tag pattern to match." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 56 }, "name": "pattern", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Strip prefix from tag." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 60 }, "name": "stripPrefix", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:GitTagConfig" }, "projen-pipelines.GithubCDKPipeline": { "assembly": "projen-pipelines", "base": "projen-pipelines.CDKPipeline", "docs": { "stability": "stable", "summary": "Implements a CDK Pipeline configured specifically for GitHub workflows." }, "fqn": "projen-pipelines.GithubCDKPipeline", "initializer": { "docs": { "stability": "stable", "summary": "Constructs a new GithubCDKPipeline instance." }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 77 }, "parameters": [ { "docs": { "summary": "- The CDK app associated with this pipeline." }, "name": "app", "type": { "fqn": "projen.awscdk.AwsCdkTypeScriptApp" } }, { "docs": { "summary": "- Configuration options for the pipeline." }, "name": "options", "type": { "fqn": "projen-pipelines.GithubCDKPipelineOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/awscdk/github.ts", "line": 57 }, "methods": [ { "docs": { "stability": "stable", "summary": "Creates a job to upload assets to AWS as part of the pipeline." }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 359 }, "name": "createAssetUpload", "parameters": [ { "name": "stageName", "optional": true, "type": { "primitive": "string" } }, { "name": "githubEnvironment", "optional": true, "type": { "primitive": "string" } } ] }, { "docs": { "stability": "stable", "summary": "Creates a job to deploy the CDK application to AWS." }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 415 }, "name": "createDeployment", "parameters": [ { "docs": { "summary": "- The deployment stage to create." }, "name": "stage", "type": { "fqn": "projen-pipelines.DeploymentStage" } }, { "name": "useGithubEnvironmentsForAssetUpload", "optional": true, "type": { "primitive": "boolean" } } ] }, { "docs": { "stability": "stable", "summary": "Creates feature branch workflows for deploying and destroying feature environments." }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 188 }, "name": "createFeatureWorkflows", "protected": true }, { "docs": { "stability": "stable", "summary": "Creates a job to deploy the CDK application to AWS." }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 539 }, "name": "createIndependentDeployment", "parameters": [ { "docs": { "summary": "- The independent stage to create." }, "name": "stage", "type": { "fqn": "projen-pipelines.IndependentStage" } } ] }, { "docs": { "stability": "stable", "summary": "the type of engine this implementation of CDKPipeline is for." }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 145 }, "name": "engineType", "overrides": "projen-pipelines.CDKPipeline", "returns": { "type": { "fqn": "projen-pipelines.PipelineEngine" } } } ], "name": "GithubCDKPipeline", "properties": [ { "docs": { "stability": "stable", "summary": "Indicates if versioned artifacts are needed based on manual approval requirements." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 60 }, "name": "needsVersionedArtifacts", "type": { "primitive": "boolean" } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 69 }, "name": "useGithubPackages", "protected": true, "type": { "primitive": "boolean" } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 70 }, "name": "minNodeVersion", "optional": true, "protected": true, "type": { "primitive": "string" } } ], "symbolId": "src/awscdk/github:GithubCDKPipeline" }, "projen-pipelines.GithubCDKPipelineOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Extension of the base CDKPipeline options including specific configurations for GitHub." }, "fqn": "projen-pipelines.GithubCDKPipelineOptions", "interfaces": [ "projen-pipelines.CDKPipelineOptions" ], "kind": "interface", "locationInModule": { "filename": "src/awscdk/github.ts", "line": 19 }, "name": "GithubCDKPipelineOptions", "properties": [ { "abstract": true, "docs": { "default": "['ubuntu-latest']", "stability": "stable", "summary": "runner tags to use to select runners." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 26 }, "name": "runnerTags", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "false", "remarks": "INFO: When using environments consider protection rules instead of using the manual option of projen-pipelines for stages", "stability": "stable", "summary": "whether to use GitHub environments for deployment stages." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 38 }, "name": "useGithubEnvironments", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "false", "remarks": "WARNING: this parameter requires rebuilding the container assets for each stage and they will not\nbe the \"same binary\", so there is a (small) chance that it could produce different binaries per stage", "stability": "stable", "summary": "whether to use GitHub environments for asset upload step Create separate, parallel jobs for asset upload since GitHub Environments require unique environment names per job." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 50 }, "name": "useGithubEnvironmentsForAssetUpload", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "remarks": "also needed for manual approvals", "stability": "stable", "summary": "use GitHub Packages to store vesioned artifacts of cloud assembly;" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/github.ts", "line": 29 }, "name": "useGithubPackagesForAssembly", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/awscdk/github:GithubCDKPipelineOptions" }, "projen-pipelines.GithubPackagesLoginStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "remarks": "Only supported for GitHub as it is GitHub specific.", "stability": "stable", "summary": "Step to set the GITHUB_TOKEN environment variable from a secret." }, "fqn": "projen-pipelines.GithubPackagesLoginStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/registries.ts", "line": 23 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.GithubPackagesLoginStepOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/registries.ts", "line": 21 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/registries.ts", "line": 27 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } } ], "name": "GithubPackagesLoginStep", "symbolId": "src/steps/registries:GithubPackagesLoginStep" }, "projen-pipelines.GithubPackagesLoginStepOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.GithubPackagesLoginStepOptions", "kind": "interface", "locationInModule": { "filename": "src/steps/registries.ts", "line": 7 }, "name": "GithubPackagesLoginStepOptions", "properties": [ { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "Whether or not to grant the step write permissions to the registry." }, "immutable": true, "locationInModule": { "filename": "src/steps/registries.ts", "line": 13 }, "name": "write", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/steps/registries:GithubPackagesLoginStepOptions" }, "projen-pipelines.GithubStepConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration interface for a GitHub Actions step." }, "fqn": "projen-pipelines.GithubStepConfig", "kind": "interface", "locationInModule": { "filename": "src/steps/step.ts", "line": 27 }, "name": "GithubStepConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Additional environment variables to set for this step." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 36 }, "name": "env", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Dependencies which need to be completed before this step." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 30 }, "name": "needs", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Commands wrapped as GitHub Action job steps." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 33 }, "name": "steps", "type": { "collection": { "elementtype": { "fqn": "projen.github.workflows.JobStep" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Additional job permissions needed." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 39 }, "name": "permissions", "optional": true, "type": { "fqn": "projen.github.workflows.JobPermissions" } } ], "symbolId": "src/steps/step:GithubStepConfig" }, "projen-pipelines.GitlabCDKPipeline": { "assembly": "projen-pipelines", "base": "projen-pipelines.CDKPipeline", "docs": { "remarks": "It integrates IAM role management,\nrunner configuration, and defines stages and jobs for the deployment workflow.", "stability": "stable", "summary": "The GitlabCDKPipeline class extends CDKPipeline to provide a way to configure and execute AWS CDK deployment pipelines within GitLab CI/CD environments." }, "fqn": "projen-pipelines.GitlabCDKPipeline", "initializer": { "docs": { "stability": "stable", "summary": "Constructs an instance of GitlabCDKPipeline, initializing the GitLab CI/CD configuration and setting up the necessary stages and jobs for AWS CDK deployment." }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 62 }, "parameters": [ { "docs": { "summary": "- The AWS CDK app associated with the pipeline." }, "name": "app", "type": { "fqn": "projen.awscdk.AwsCdkTypeScriptApp" } }, { "docs": { "summary": "- Configuration options for the pipeline." }, "name": "options", "type": { "fqn": "projen-pipelines.GitlabCDKPipelineOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 41 }, "methods": [ { "docs": { "remarks": "This method configures a job to upload synthesized assets to AWS, handling IAM role\nauthentication and specifying runner tags. It depends on the successful completion\nof the 'synth' stage, ensuring assets are only published after successful synthesis.", "stability": "stable", "summary": "Sets up the asset publishing stage of the pipeline." }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 183 }, "name": "createAssetUpload", "protected": true }, { "docs": { "remarks": "For each provided deployment stage, this method sets up jobs for 'diff' and 'deploy' actions,\napplying the correct IAM roles and runner tags. It supports conditional manual approval for\ndeployment stages, providing flexibility in the deployment workflow.", "stability": "stable", "summary": "Dynamically creates deployment stages based on the deployment configuration." }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 216 }, "name": "createDeployment", "parameters": [ { "docs": { "summary": "- The deployment stage configuration to set up." }, "name": "stage", "type": { "fqn": "projen-pipelines.DeploymentStage" } } ], "protected": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 136 }, "name": "createFeatureWorkflows", "protected": true }, { "docs": { "stability": "stable", "summary": "Creates a job to deploy the CDK application to AWS." }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 278 }, "name": "createIndependentDeployment", "parameters": [ { "docs": { "summary": "- The independent stage to create." }, "name": "stage", "type": { "fqn": "projen-pipelines.IndependentStage" } } ] }, { "docs": { "remarks": "This method configures the job to execute CDK synthesis, applying the appropriate IAM role\nfor AWS commands and specifying runner tags for job execution. The synthesized outputs are\nconfigured to be cached as artifacts.", "stability": "stable", "summary": "Creates the 'synth' stage of the pipeline to synthesize AWS CDK applications." }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 156 }, "name": "createSynth", "protected": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 310 }, "name": "engineType", "overrides": "projen-pipelines.CDKPipeline", "returns": { "type": { "fqn": "projen-pipelines.PipelineEngine" } } }, { "docs": { "remarks": "This method defines reusable job configurations to be extended by specific pipeline jobs,\nfacilitating artifact caching and AWS authentication setup.", "stability": "stable", "summary": "Sets up base job snippets for artifact handling and AWS configuration." }, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 98 }, "name": "setupSnippets", "protected": true } ], "name": "GitlabCDKPipeline", "properties": [ { "docs": { "stability": "stable", "summary": "GitLab CI/CD configuration object." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 50 }, "name": "config", "type": { "fqn": "projen.gitlab.GitlabConfiguration" } }, { "docs": { "remarks": "Defaults to a specified image or a default value.", "stability": "stable", "summary": "The Docker image used for pipeline jobs." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 47 }, "name": "jobImage", "type": { "primitive": "string" } }, { "docs": { "remarks": "Currently set to false", "stability": "stable", "summary": "Indicates if versioned artifacts are required." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 44 }, "name": "needsVersionedArtifacts", "type": { "primitive": "boolean" } } ], "symbolId": "src/awscdk/gitlab:GitlabCDKPipeline" }, "projen-pipelines.GitlabCDKPipelineOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for configuring the GitLab CDK pipeline, extending the base CDK pipeline options." }, "fqn": "projen-pipelines.GitlabCDKPipelineOptions", "interfaces": [ "projen-pipelines.CDKPipelineOptions" ], "kind": "interface", "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 27 }, "name": "GitlabCDKPipelineOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The Docker image to use for running the pipeline jobs." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 31 }, "name": "image", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Runner tags configuration for the pipeline." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 29 }, "name": "runnerTags", "optional": true, "type": { "fqn": "projen-pipelines.GitlabRunnerTags" } } ], "symbolId": "src/awscdk/gitlab:GitlabCDKPipelineOptions" }, "projen-pipelines.GitlabRunnerTags": { "assembly": "projen-pipelines", "datatype": true, "docs": { "remarks": "This allows for specifying different runners based on the tags for different stages of the pipeline.", "stability": "stable", "summary": "Configuration for GitLab runner tags used within the CI/CD pipeline for various stages." }, "fqn": "projen-pipelines.GitlabRunnerTags", "kind": "interface", "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 11 }, "name": "GitlabRunnerTags", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Runner tags for the asset publishing stage." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 17 }, "name": "assetPublishing", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Default runner tags used if specific stage tags are not provided." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 13 }, "name": "default", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "A map of stage names to runner tags for the deployment operation." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 21 }, "name": "deployment", "optional": true, "type": { "collection": { "elementtype": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } }, "kind": "map" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "A map of stage names to runner tags for the diff operation." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 19 }, "name": "diff", "optional": true, "type": { "collection": { "elementtype": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } }, "kind": "map" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Runner tags for the synthesis stage." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/gitlab.ts", "line": 15 }, "name": "synth", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "src/awscdk/gitlab:GitlabRunnerTags" }, "projen-pipelines.GitlabStepConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration interface for a GitLab CI step." }, "fqn": "projen-pipelines.GitlabStepConfig", "kind": "interface", "locationInModule": { "filename": "src/steps/step.ts", "line": 9 }, "name": "GitlabStepConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Shell commands to execute in this step." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 18 }, "name": "commands", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Additional environment variables to set for this step." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 21 }, "name": "env", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "List of job extensions related to the step." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 12 }, "name": "extensions", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Dependencies which need to be completed before this step." }, "immutable": true, "locationInModule": { "filename": "src/steps/step.ts", "line": 15 }, "name": "needs", "type": { "collection": { "elementtype": { "fqn": "projen.gitlab.Need" }, "kind": "array" } } } ], "symbolId": "src/steps/step:GitlabStepConfig" }, "projen-pipelines.HierarchicalParametersOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.HierarchicalParametersOptions", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 160 }, "name": "HierarchicalParametersOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 162 }, "name": "format", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 161 }, "name": "includeCloudFormation", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/versioning/types:HierarchicalParametersOptions" }, "projen-pipelines.IVersionInfo": { "assembly": "projen-pipelines", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.IVersionInfo", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 170 }, "name": "IVersionInfo", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 181 }, "name": "branch", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Commit count information." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 192 }, "name": "commitCount", "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Git information (ALWAYS included)." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 179 }, "name": "commitHash", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 180 }, "name": "commitHashShort", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Deployment metadata." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 202 }, "name": "deployedAt", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 203 }, "name": "deployedBy", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 205 }, "name": "environment", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Primary version string." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 174 }, "name": "version", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 204 }, "name": "buildNumber", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 187 }, "name": "commitsSinceTag", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Package.json information (if applicable)." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 197 }, "name": "packageVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 211 }, "name": "pipelineVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Additional metadata." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 210 }, "name": "repository", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Optional git tag information." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 186 }, "name": "tag", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:IVersionInfo" }, "projen-pipelines.IVersioningStrategy": { "assembly": "projen-pipelines", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.IVersioningStrategy", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 34 }, "name": "IVersioningStrategy", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Components to include." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 45 }, "name": "components", "type": { "fqn": "projen-pipelines.VersioningStrategyComponents" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Version format template Variables: {git-tag}, {package-version}, {commit-count}, {commit-hash}, {commit-hash:8}, {branch}, {build-number}." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 40 }, "name": "format", "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:IVersioningStrategy" }, "projen-pipelines.IamRoleConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration interface for IAM roles used in the CDK pipeline." }, "fqn": "projen-pipelines.IamRoleConfig", "kind": "interface", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 98 }, "name": "IamRoleConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "IAM role ARN for the asset publishing step." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 104 }, "name": "assetPublishing", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "IAM role ARN for the asset publishing step for a specific stage." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 106 }, "name": "assetPublishingPerStage", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Default IAM role ARN used if no specific role is provided." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 100 }, "name": "default", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "IAM role ARNs for different deployment stages." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 110 }, "name": "deployment", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "IAM role ARNs for different diff stages." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 108 }, "name": "diff", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "remarks": "https://github.com/aws-actions/configure-aws-credentials?tab=readme-ov-file#assumerole-with-role-previously-assumed-by-action-in-same-workflow", "stability": "stable", "summary": "IAM role ARNs for using a \"jump\" role to assume the deploy role in a different AWS account using Role Chaining." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 115 }, "name": "jump", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "stability": "stable", "summary": "IAM role ARN for the synthesis step." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 102 }, "name": "synth", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/awscdk/base:IamRoleConfig" }, "projen-pipelines.IndependentStage": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for stages that are not part of the pipeline." }, "fqn": "projen-pipelines.IndependentStage", "interfaces": [ "projen-pipelines.NamedStageOptions" ], "kind": "interface", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 59 }, "name": "IndependentStage", "properties": [ { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "This specifies whether the stage should be deployed on push." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 65 }, "name": "deployOnPush", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/awscdk/base:IndependentStage" }, "projen-pipelines.NamedStageOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for a CDK stage with a name." }, "fqn": "projen-pipelines.NamedStageOptions", "interfaces": [ "projen-pipelines.StageOptions" ], "kind": "interface", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 71 }, "name": "NamedStageOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 72 }, "name": "name", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 83 }, "name": "diffType", "optional": true, "type": { "fqn": "projen-pipelines.CdkDiffType" } }, { "abstract": true, "docs": { "default": "- the stage name", "remarks": "If not specified, the stage name will be used as the GitHub environment name.", "stability": "stable", "summary": "The name of the GitHub environment to use for this stage." }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 80 }, "name": "githubEnvironment", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 85 }, "name": "postDeploySteps", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 84 }, "name": "postDiffSteps", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 82 }, "name": "watchable", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/awscdk/base:NamedStageOptions" }, "projen-pipelines.NpmSecretStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "remarks": "Currently only supported and needed for GitHub.\nGitlab sets the NPM_TOKEN environment variable automatically from the project's settings.", "stability": "stable", "summary": "Step to set the NPM_TOKEN environment variable from a secret." }, "fqn": "projen-pipelines.NpmSecretStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/registries.ts", "line": 56 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "type": { "fqn": "projen-pipelines.NpmSecretStepOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/registries.ts", "line": 54 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/registries.ts", "line": 60 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } } ], "name": "NpmSecretStep", "symbolId": "src/steps/registries:NpmSecretStep" }, "projen-pipelines.NpmSecretStepOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.NpmSecretStepOptions", "kind": "interface", "locationInModule": { "filename": "src/steps/registries.ts", "line": 39 }, "name": "NpmSecretStepOptions", "properties": [ { "abstract": true, "docs": { "default": "'NPM_TOKEN'", "stability": "stable", "summary": "Name of the secret to set for the environment variable NPM_TOKEN." }, "immutable": true, "locationInModule": { "filename": "src/steps/registries.ts", "line": 45 }, "name": "secretName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/steps/registries:NpmSecretStepOptions" }, "projen-pipelines.OutputConfigBase": { "abstract": true, "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Base class for output configurations." }, "fqn": "projen-pipelines.OutputConfigBase", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 7 }, "parameters": [ { "name": "type", "type": { "primitive": "string" } } ], "protected": true }, "kind": "class", "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 6 }, "methods": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Convert to configuration object." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 12 }, "name": "toConfig", "returns": { "type": { "primitive": "any" } } } ], "name": "OutputConfigBase", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 7 }, "name": "type", "type": { "primitive": "string" } } ], "symbolId": "src/versioning/outputs:OutputConfigBase" }, "projen-pipelines.OutputFormat": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Output format types." }, "fqn": "projen-pipelines.OutputFormat", "kind": "class", "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 109 }, "name": "OutputFormat", "properties": [ { "const": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 110 }, "name": "PLAIN", "static": true, "type": { "primitive": "string" } }, { "const": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 111 }, "name": "STRUCTURED", "static": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/outputs:OutputFormat" }, "projen-pipelines.PackageJsonConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.PackageJsonConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 67 }, "name": "PackageJsonConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Append commit info." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 79 }, "name": "appendCommitInfo", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Include pre-release version." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 75 }, "name": "includePrerelease", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Path to package.json." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 71 }, "name": "path", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:PackageJsonConfig" }, "projen-pipelines.ParameterStoreConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.ParameterStoreConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 121 }, "name": "ParameterStoreConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 122 }, "name": "enabled", "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 125 }, "name": "allowOverwrite", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 124 }, "name": "description", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 127 }, "name": "hierarchical", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 123 }, "name": "parameterName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 126 }, "name": "splitParameters", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "src/versioning/types:ParameterStoreConfig" }, "projen-pipelines.ParameterStoreOutput": { "assembly": "projen-pipelines", "base": "projen-pipelines.OutputConfigBase", "docs": { "stability": "stable", "summary": "SSM Parameter Store output configuration." }, "fqn": "projen-pipelines.ParameterStoreOutput", "kind": "class", "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 57 }, "methods": [ { "docs": { "stability": "stable", "summary": "Disable Parameter Store outputs." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 70 }, "name": "disabled", "returns": { "type": { "fqn": "projen-pipelines.ParameterStoreOutput" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Enable Parameter Store outputs with parameter name." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 63 }, "name": "enabled", "parameters": [ { "name": "parameterName", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "projen-pipelines.ParameterStoreOutput" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Configure Parameter Store with hierarchical parameters." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 84 }, "name": "hierarchical", "parameters": [ { "name": "basePath", "type": { "primitive": "string" } }, { "name": "options", "optional": true, "type": { "fqn": "projen-pipelines.HierarchicalParametersOptions" } } ], "returns": { "type": { "fqn": "projen-pipelines.ParameterStoreOutput" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Configure Parameter Store outputs with custom settings." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 77 }, "name": "withConfig", "parameters": [ { "name": "config", "type": { "fqn": "projen-pipelines.ParameterStoreConfig" } } ], "returns": { "type": { "fqn": "projen-pipelines.ParameterStoreOutput" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Convert to configuration object." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 98 }, "name": "toConfig", "overrides": "projen-pipelines.OutputConfigBase", "returns": { "type": { "primitive": "any" } } } ], "name": "ParameterStoreOutput", "properties": [ { "const": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 58 }, "name": "TYPE", "static": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/outputs:ParameterStoreOutput" }, "projen-pipelines.PipelineEngine": { "assembly": "projen-pipelines", "docs": { "remarks": "The component will render workflows for the given system", "stability": "stable", "summary": "The CI/CD tooling used to run your pipeline." }, "fqn": "projen-pipelines.PipelineEngine", "kind": "enum", "locationInModule": { "filename": "src/engine.ts", "line": 6 }, "members": [ { "docs": { "stability": "stable", "summary": "Create GitHub actions." }, "name": "GITHUB" }, { "docs": { "stability": "stable", "summary": "Create a .gitlab-ci.yaml file." }, "name": "GITLAB" }, { "docs": { "stability": "stable", "summary": "Create bash scripts." }, "name": "BASH" } ], "name": "PipelineEngine", "symbolId": "src/engine:PipelineEngine" }, "projen-pipelines.PipelineStep": { "abstract": true, "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Abstract class defining the structure of a pipeline step." }, "fqn": "projen-pipelines.PipelineStep", "initializer": { "docs": { "stability": "stable", "summary": "Initializes a new instance of a PipelineStep with a reference to a projen project." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 60 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/step.ts", "line": 54 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a bash script step." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 81 }, "name": "toBash", "returns": { "type": { "fqn": "projen-pipelines.BashStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 74 }, "name": "toGithub", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitLab CI step." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 67 }, "name": "toGitlab", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "PipelineStep", "properties": [ { "docs": { "stability": "stable", "summary": "- The projen project reference." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 60 }, "name": "project", "protected": true, "type": { "fqn": "projen.Project" } } ], "symbolId": "src/steps/step:PipelineStep" }, "projen-pipelines.PnpmSetupStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "remarks": "This step is automatically injected when a project uses pnpm as its package manager.\nIt ensures pnpm is available in the GitHub Actions workflow environment before\nrunning any install commands.", "stability": "stable", "summary": "Step to setup pnpm using the pnpm/action-setup GitHub Action." }, "fqn": "projen-pipelines.PnpmSetupStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 24 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "options", "optional": true, "type": { "fqn": "projen-pipelines.PnpmSetupStepOptions" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 22 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a bash script step." }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 51 }, "name": "toBash", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.BashStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 28 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitLab CI step." }, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 42 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "PnpmSetupStep", "symbolId": "src/steps/package-manager-setup.step:PnpmSetupStep" }, "projen-pipelines.PnpmSetupStepOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for the PnpmSetupStep." }, "fqn": "projen-pipelines.PnpmSetupStepOptions", "kind": "interface", "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 7 }, "name": "PnpmSetupStepOptions", "properties": [ { "abstract": true, "docs": { "remarks": "If not provided, defaults to '9'.", "stability": "stable", "summary": "The version of pnpm to install." }, "immutable": true, "locationInModule": { "filename": "src/steps/package-manager-setup.step.ts", "line": 12 }, "name": "version", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/steps/package-manager-setup.step:PnpmSetupStepOptions" }, "projen-pipelines.ProjenScriptStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.SimpleCommandStep", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.ProjenScriptStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/step.ts", "line": 143 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "scriptName", "type": { "primitive": "string" } }, { "name": "args", "optional": true, "type": { "primitive": "string" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/step.ts", "line": 142 }, "name": "ProjenScriptStep", "symbolId": "src/steps/step:ProjenScriptStep" }, "projen-pipelines.SimpleCommandStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "stability": "stable", "summary": "Concrete implementation of PipelineStep that executes simple commands." }, "fqn": "projen-pipelines.SimpleCommandStep", "initializer": { "docs": { "stability": "stable", "summary": "Constructs a simple command step with a specified set of commands." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 99 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "docs": { "summary": "- Shell commands to execute." }, "name": "commands", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "name": "env", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/step.ts", "line": 89 }, "methods": [ { "docs": { "stability": "stable", "summary": "Converts the step into a Bash script configuration." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 120 }, "name": "toBash", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.BashStepConfig" } } }, { "docs": { "stability": "stable", "summary": "Converts the step into a GitHub Actions step configuration." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 132 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "stability": "stable", "summary": "Converts the step into a GitLab CI configuration." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 108 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "SimpleCommandStep", "properties": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/step.ts", "line": 91 }, "name": "commands", "protected": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/step.ts", "line": 92 }, "name": "env", "protected": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } } ], "symbolId": "src/steps/step:SimpleCommandStep" }, "projen-pipelines.StageOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable", "summary": "Options for a CDK stage like the target environment." }, "fqn": "projen-pipelines.StageOptions", "kind": "interface", "locationInModule": { "filename": "src/awscdk/base.ts", "line": 91 }, "name": "StageOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/awscdk/base.ts", "line": 92 }, "name": "env", "type": { "fqn": "projen-pipelines.Environment" } } ], "symbolId": "src/awscdk/base:StageOptions" }, "projen-pipelines.StandardConfigOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.StandardConfigOptions", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 149 }, "name": "StandardConfigOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 151 }, "name": "format", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 150 }, "name": "parameterStore", "optional": true, "type": { "union": { "types": [ { "primitive": "string" }, { "primitive": "boolean" } ] } } } ], "symbolId": "src/versioning/types:StandardConfigOptions" }, "projen-pipelines.StandardOutputOptions": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.StandardOutputOptions", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 165 }, "name": "StandardOutputOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 167 }, "name": "format", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 166 }, "name": "parameterName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/versioning/types:StandardOutputOptions" }, "projen-pipelines.StepSequence": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.StepSequence", "initializer": { "docs": { "stability": "stable", "summary": "Constructs a sequence of pipeline steps." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 158 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "docs": { "summary": "- The sequence of pipeline steps." }, "name": "steps", "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/step.ts", "line": 149 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/step.ts", "line": 223 }, "name": "addSteps", "parameters": [ { "name": "steps", "type": { "fqn": "projen-pipelines.PipelineStep" }, "variadic": true } ], "variadic": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/step.ts", "line": 227 }, "name": "prependSteps", "parameters": [ { "name": "steps", "type": { "fqn": "projen-pipelines.PipelineStep" }, "variadic": true } ], "variadic": true }, { "docs": { "stability": "stable", "summary": "Converts the sequence of steps into a Bash script configuration." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 189 }, "name": "toBash", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.BashStepConfig" } } }, { "docs": { "stability": "stable", "summary": "Converts the sequence of steps into a GitHub Actions step configuration." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 201 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } }, { "docs": { "stability": "stable", "summary": "Converts the sequence of steps into a GitLab CI configuration." }, "locationInModule": { "filename": "src/steps/step.ts", "line": 166 }, "name": "toGitlab", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GitlabStepConfig" } } } ], "name": "StepSequence", "properties": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/step.ts", "line": 151 }, "name": "steps", "protected": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.PipelineStep" }, "kind": "array" } } } ], "symbolId": "src/steps/step:StepSequence" }, "projen-pipelines.UploadArtifactStep": { "assembly": "projen-pipelines", "base": "projen-pipelines.PipelineStep", "docs": { "stability": "stable" }, "fqn": "projen-pipelines.UploadArtifactStep", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 49 }, "parameters": [ { "docs": { "summary": "- The projen project reference." }, "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "config", "type": { "fqn": "projen-pipelines.UploadArtifactStepConfig" } } ] }, "kind": "class", "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 47 }, "methods": [ { "docs": { "remarks": "Should be implemented by subclasses.", "stability": "stable", "summary": "Generates a configuration for a GitHub Actions step." }, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 53 }, "name": "toGithub", "overrides": "projen-pipelines.PipelineStep", "returns": { "type": { "fqn": "projen-pipelines.GithubStepConfig" } } } ], "name": "UploadArtifactStep", "symbolId": "src/steps/artifact-steps:UploadArtifactStep" }, "projen-pipelines.UploadArtifactStepConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.UploadArtifactStepConfig", "kind": "interface", "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 42 }, "name": "UploadArtifactStepConfig", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 43 }, "name": "name", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/steps/artifact-steps.ts", "line": 44 }, "name": "path", "type": { "primitive": "string" } } ], "symbolId": "src/steps/artifact-steps:UploadArtifactStepConfig" }, "projen-pipelines.VersionComputationStrategy": { "abstract": true, "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Base class for version computation strategies." }, "fqn": "projen-pipelines.VersionComputationStrategy", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 34 }, "parameters": [ { "name": "strategy", "type": { "fqn": "projen-pipelines.VersioningStrategy" } } ], "protected": true }, "kind": "class", "locationInModule": { "filename": "src/versioning/computation.ts", "line": 33 }, "methods": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Compute version string from context." }, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 39 }, "name": "computeVersion", "parameters": [ { "name": "context", "type": { "fqn": "projen-pipelines.ComputationContext" } } ], "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Create VersionInfo from context." }, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 44 }, "name": "createVersionInfo", "parameters": [ { "name": "context", "type": { "fqn": "projen-pipelines.ComputationContext" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfo" } } } ], "name": "VersionComputationStrategy", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 34 }, "name": "strategy", "type": { "fqn": "projen-pipelines.VersioningStrategy" } } ], "symbolId": "src/versioning/computation:VersionComputationStrategy" }, "projen-pipelines.VersionComputer": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Main version computer that handles strategy selection." }, "fqn": "projen-pipelines.VersionComputer", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 133 }, "parameters": [ { "name": "strategy", "type": { "fqn": "projen-pipelines.IVersioningStrategy" } } ] }, "kind": "class", "locationInModule": { "filename": "src/versioning/computation.ts", "line": 130 }, "methods": [ { "async": true, "docs": { "stability": "stable", "summary": "Compute version info from context." }, "locationInModule": { "filename": "src/versioning/computation.ts", "line": 142 }, "name": "computeVersionInfo", "parameters": [ { "name": "context", "type": { "fqn": "projen-pipelines.ComputationContext" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfo" } } } ], "name": "VersionComputer", "symbolId": "src/versioning/computation:VersionComputer" }, "projen-pipelines.VersionInfo": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Represents complete version information for a deployment." }, "fqn": "projen-pipelines.VersionInfo", "interfaces": [ "projen-pipelines.IVersionInfo" ], "kind": "class", "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 23 }, "methods": [ { "docs": { "stability": "stable", "summary": "Create a VersionInfo instance from raw data." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 28 }, "name": "create", "parameters": [ { "name": "props", "type": { "fqn": "projen-pipelines.IVersionInfo" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfo" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Create a VersionInfo instance from environment variables." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 35 }, "name": "fromEnvironment", "parameters": [ { "name": "env", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfo" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Create a VersionInfo instance from a JSON string." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 66 }, "name": "fromJson", "parameters": [ { "name": "json", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfo" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Compare with another version Returns: -1 if this < other, 0 if equal, 1 if this > other." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 170 }, "name": "compare", "parameters": [ { "name": "other", "type": { "fqn": "projen-pipelines.VersionInfo" } } ], "returns": { "type": { "primitive": "number" } } }, { "docs": { "stability": "stable", "summary": "Get formatted version for display." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 145 }, "name": "displayVersion", "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Create CloudFormation export name." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 193 }, "name": "exportName", "parameters": [ { "name": "template", "type": { "primitive": "string" } } ], "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Check if this version is from the main branch." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 162 }, "name": "mainBranch", "returns": { "type": { "primitive": "boolean" } } }, { "docs": { "stability": "stable", "summary": "Create a parameter name for SSM Parameter Store." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 182 }, "name": "parameterName", "parameters": [ { "name": "template", "type": { "primitive": "string" } } ], "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Check if this version is from a tagged release." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 155 }, "name": "taggedRelease", "returns": { "type": { "primitive": "boolean" } } }, { "docs": { "stability": "stable", "summary": "Convert to JSON string." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 113 }, "name": "toJson", "parameters": [ { "name": "pretty", "optional": true, "type": { "primitive": "boolean" } } ], "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Convert to object." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 138 }, "name": "toObject", "returns": { "type": { "fqn": "projen-pipelines.IVersionInfo" } } }, { "docs": { "stability": "stable", "summary": "Convert to plain version string." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 106 }, "name": "toString", "returns": { "type": { "primitive": "string" } } } ], "name": "VersionInfo", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 74 }, "name": "branch", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Commit count information." }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 77 }, "name": "commitCount", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "number" } }, { "docs": { "stability": "stable", "summary": "Git information (ALWAYS included)." }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 72 }, "name": "commitHash", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 73 }, "name": "commitHashShort", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Deployment metadata." }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 79 }, "name": "deployedAt", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 80 }, "name": "deployedBy", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 82 }, "name": "environment", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Primary version string." }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 71 }, "name": "version", "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 81 }, "name": "buildNumber", "optional": true, "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 76 }, "name": "commitsSinceTag", "optional": true, "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "number" } }, { "docs": { "stability": "stable", "summary": "Package.json information (if applicable)." }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 78 }, "name": "packageVersion", "optional": true, "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 84 }, "name": "pipelineVersion", "optional": true, "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Additional metadata." }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 83 }, "name": "repository", "optional": true, "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Optional git tag information." }, "immutable": true, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 75 }, "name": "tag", "optional": true, "overrides": "projen-pipelines.IVersionInfo", "type": { "primitive": "string" } } ], "symbolId": "src/versioning/version-info:VersionInfo" }, "projen-pipelines.VersionInfoBuilder": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Builder class for creating VersionInfo instances." }, "fqn": "projen-pipelines.VersionInfoBuilder", "initializer": { "docs": { "stability": "stable" } }, "kind": "class", "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 205 }, "methods": [ { "docs": { "stability": "stable", "summary": "Build the VersionInfo instance." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 267 }, "name": "create", "returns": { "type": { "fqn": "projen-pipelines.VersionInfo" } } }, { "docs": { "stability": "stable", "summary": "Set deployment metadata." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 240 }, "name": "deploymentInfo", "parameters": [ { "name": "info", "type": { "fqn": "projen-pipelines.DeploymentInfoInput" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfoBuilder" } } }, { "docs": { "stability": "stable", "summary": "Set git information." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 219 }, "name": "gitInfo", "parameters": [ { "name": "info", "type": { "fqn": "projen-pipelines.GitInfoInput" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfoBuilder" } } }, { "docs": { "stability": "stable", "summary": "Set package version." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 232 }, "name": "packageVersion", "parameters": [ { "name": "version", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfoBuilder" } } }, { "docs": { "stability": "stable", "summary": "Set pipeline version." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 259 }, "name": "pipelineVersion", "parameters": [ { "name": "version", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfoBuilder" } } }, { "docs": { "stability": "stable", "summary": "Set repository information." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 251 }, "name": "repository", "parameters": [ { "name": "repo", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfoBuilder" } } }, { "docs": { "stability": "stable", "summary": "Set the version string." }, "locationInModule": { "filename": "src/versioning/version-info.ts", "line": 211 }, "name": "version", "parameters": [ { "name": "version", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersionInfoBuilder" } } } ], "name": "VersionInfoBuilder", "symbolId": "src/versioning/version-info:VersionInfoBuilder" }, "projen-pipelines.VersioningConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.VersioningConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 5 }, "name": "VersioningConfig", "properties": [ { "abstract": true, "docs": { "default": "true", "stability": "stable", "summary": "Enable versioning feature." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 10 }, "name": "enabled", "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Output configuration." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 20 }, "name": "outputs", "type": { "fqn": "projen-pipelines.VersioningOutputConfig" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Primary versioning strategy." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 15 }, "name": "strategy", "type": { "fqn": "projen-pipelines.IVersioningStrategy" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Stage-specific overrides." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 25 }, "name": "stageOverrides", "optional": true, "type": { "collection": { "elementtype": { "fqn": "projen-pipelines.VersioningConfig" }, "kind": "map" } } } ], "symbolId": "src/versioning/types:VersioningConfig" }, "projen-pipelines.VersioningConfigUtils": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Utility functions for versioning configuration." }, "fqn": "projen-pipelines.VersioningConfigUtils", "initializer": { "docs": { "stability": "stable" } }, "kind": "class", "locationInModule": { "filename": "src/versioning/config.ts", "line": 58 }, "methods": [ { "docs": { "stability": "stable", "summary": "Get default configuration." }, "locationInModule": { "filename": "src/versioning/config.ts", "line": 95 }, "name": "default", "returns": { "type": { "fqn": "projen-pipelines.VersioningConfig" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Resolve configuration for a specific stage." }, "locationInModule": { "filename": "src/versioning/config.ts", "line": 62 }, "name": "resolveForStage", "parameters": [ { "name": "config", "type": { "fqn": "projen-pipelines.VersioningConfig" } }, { "name": "stage", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningConfig" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Validate configuration." }, "locationInModule": { "filename": "src/versioning/config.ts", "line": 78 }, "name": "validate", "parameters": [ { "name": "config", "type": { "fqn": "projen-pipelines.VersioningConfig" } } ], "returns": { "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, "static": true } ], "name": "VersioningConfigUtils", "symbolId": "src/versioning/config:VersioningConfigUtils" }, "projen-pipelines.VersioningConfigurations": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Main versioning configuration class with factory methods." }, "fqn": "projen-pipelines.VersioningConfigurations", "initializer": { "docs": { "stability": "stable" } }, "kind": "class", "locationInModule": { "filename": "src/versioning/config.ts", "line": 16 }, "methods": [ { "docs": { "stability": "stable", "summary": "Create a custom configuration." }, "locationInModule": { "filename": "src/versioning/config.ts", "line": 45 }, "name": "custom", "parameters": [ { "name": "config", "type": { "fqn": "projen-pipelines.CustomVersioningConfig" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningConfig" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Minimal configuration for testing." }, "locationInModule": { "filename": "src/versioning/config.ts", "line": 34 }, "name": "minimal", "returns": { "type": { "fqn": "projen-pipelines.VersioningConfig" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Standard configuration with commit count strategy." }, "locationInModule": { "filename": "src/versioning/config.ts", "line": 20 }, "name": "standard", "parameters": [ { "name": "options", "optional": true, "type": { "fqn": "projen-pipelines.StandardConfigOptions" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningConfig" } }, "static": true } ], "name": "VersioningConfigurations", "symbolId": "src/versioning/config:VersioningConfigurations" }, "projen-pipelines.VersioningOutputConfig": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.VersioningOutputConfig", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 101 }, "name": "VersioningOutputConfig", "properties": [ { "abstract": true, "docs": { "default": "true", "stability": "stable", "summary": "Output to CloudFormation stack outputs." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 106 }, "name": "cloudFormation", "type": { "fqn": "projen-pipelines.CloudFormationOutputConfig" } }, { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "Output to SSM Parameter Store." }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 112 }, "name": "parameterStore", "type": { "fqn": "projen-pipelines.ParameterStoreConfig" } } ], "symbolId": "src/versioning/types:VersioningOutputConfig" }, "projen-pipelines.VersioningOutputs": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Factory class for output configurations." }, "fqn": "projen-pipelines.VersioningOutputs", "initializer": { "docs": { "stability": "stable" } }, "kind": "class", "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 119 }, "methods": [ { "docs": { "stability": "stable", "summary": "Create output configuration with only CloudFormation." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 135 }, "name": "cloudFormationOnly", "parameters": [ { "name": "options", "optional": true, "type": { "fqn": "projen-pipelines.CloudFormationOnlyOptions" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningOutputConfig" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Create output configuration with hierarchical SSM parameters." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 152 }, "name": "hierarchicalParameters", "parameters": [ { "name": "basePath", "type": { "primitive": "string" } }, { "name": "options", "optional": true, "type": { "fqn": "projen-pipelines.HierarchicalParametersOptions" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningOutputConfig" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Create minimal output configuration (CloudFormation only, plain format)." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 162 }, "name": "minimal", "returns": { "type": { "fqn": "projen-pipelines.VersioningOutputConfig" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Create output configuration with CloudFormation and SSM Parameter Store." }, "locationInModule": { "filename": "src/versioning/outputs.ts", "line": 123 }, "name": "standard", "parameters": [ { "name": "options", "optional": true, "type": { "fqn": "projen-pipelines.StandardOutputOptions" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningOutputConfig" } }, "static": true } ], "name": "VersioningOutputs", "symbolId": "src/versioning/outputs:VersioningOutputs" }, "projen-pipelines.VersioningSetup": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Sets up versioning tasks and integration for a project." }, "fqn": "projen-pipelines.VersioningSetup", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/setup.ts", "line": 9 }, "parameters": [ { "name": "project", "type": { "fqn": "projen.Project" } }, { "name": "config", "type": { "fqn": "projen-pipelines.VersioningConfig" } } ] }, "kind": "class", "locationInModule": { "filename": "src/versioning/setup.ts", "line": 7 }, "methods": [ { "docs": { "stability": "stable", "summary": "Set up all versioning-related tasks and configurations." }, "locationInModule": { "filename": "src/versioning/setup.ts", "line": 15 }, "name": "setup" } ], "name": "VersioningSetup", "symbolId": "src/versioning/setup:VersioningSetup" }, "projen-pipelines.VersioningStrategy": { "assembly": "projen-pipelines", "docs": { "stability": "stable", "summary": "Composite versioning strategy that combines multiple strategies." }, "fqn": "projen-pipelines.VersioningStrategy", "interfaces": [ "projen-pipelines.IVersioningStrategy" ], "kind": "class", "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 7 }, "methods": [ { "docs": { "stability": "stable", "summary": "Create a build number based strategy." }, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 22 }, "name": "buildNumber", "parameters": [ { "name": "config", "optional": true, "type": { "fqn": "projen-pipelines.BuildNumberConfig" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningStrategy" } }, "static": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 40 }, "name": "commitCount", "parameters": [ { "name": "config", "optional": true, "type": { "fqn": "projen-pipelines.CommitCountConfig" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningStrategy" } }, "static": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 46 }, "name": "commitHash", "returns": { "type": { "fqn": "projen-pipelines.VersioningStrategy" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Create a composite strategy with custom format and components." }, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 12 }, "name": "create", "parameters": [ { "name": "format", "type": { "primitive": "string" } }, { "name": "components", "type": { "fqn": "projen-pipelines.VersioningStrategyComponents" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningStrategy" } }, "static": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 29 }, "name": "gitTag", "parameters": [ { "name": "config", "optional": true, "type": { "fqn": "projen-pipelines.GitTagConfig" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningStrategy" } }, "static": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 36 }, "name": "packageJson", "parameters": [ { "name": "config", "optional": true, "type": { "fqn": "projen-pipelines.PackageJsonConfig" } } ], "returns": { "type": { "fqn": "projen-pipelines.VersioningStrategy" } }, "static": true } ], "name": "VersioningStrategy", "properties": [ { "docs": { "stability": "stable", "summary": "Components to include." }, "immutable": true, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 52 }, "name": "components", "overrides": "projen-pipelines.IVersioningStrategy", "type": { "fqn": "projen-pipelines.VersioningStrategyComponents" } }, { "docs": { "stability": "stable", "summary": "Version format template Variables: {git-tag}, {package-version}, {commit-count}, {commit-hash}, {commit-hash:8}, {branch}, {build-number}." }, "immutable": true, "locationInModule": { "filename": "src/versioning/strategy.ts", "line": 51 }, "name": "format", "overrides": "projen-pipelines.IVersioningStrategy", "type": { "primitive": "string" } } ], "symbolId": "src/versioning/strategy:VersioningStrategy" }, "projen-pipelines.VersioningStrategyComponents": { "assembly": "projen-pipelines", "datatype": true, "docs": { "stability": "stable" }, "fqn": "projen-pipelines.VersioningStrategyComponents", "kind": "interface", "locationInModule": { "filename": "src/versioning/types.ts", "line": 28 }, "name": "VersioningStrategyComponents", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 31 }, "name": "commitCount", "optional": true, "type": { "fqn": "projen-pipelines.CommitCountConfig" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 29 }, "name": "gitTag", "optional": true, "type": { "fqn": "projen-pipelines.GitTagConfig" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/versioning/types.ts", "line": 30 }, "name": "packageJson", "optional": true, "type": { "fqn": "projen-pipelines.PackageJsonConfig" } } ], "symbolId": "src/versioning/types:VersioningStrategyComponents" } }, "version": "0.3.23", "fingerprint": "Zf7ScHeurKTI6tmpvSiW3PYEqx2p6LNbhaLJjOLJIR0=" }