diff --git a/API.md b/API.md index b2c648b4..a6c6977f 100644 --- a/API.md +++ b/API.md @@ -5025,6 +5025,7 @@ const cDKDiffOptionsConfig: cdkDiffWorkflow.CDKDiffOptionsConfig = { ... } | nodeVersion | string | Specify a nodeVersion. | | envsToDiff | @time-loop/clickup-projen.cdkDiffWorkflow.EnvToDiff \| @time-loop/clickup-projen.cdkDiffWorkflow.ExplicitStacksEnvToDiff[] | Collection of environments to cdk diff. | | createOidcRoleStack | boolean | Detrmines if the OIDC role stack should be created. | +| packageManager | projen.javascript.NodePackageManager | Which package manager is being used? | --- @@ -5065,6 +5066,19 @@ Detrmines if the OIDC role stack should be created. --- +##### `packageManager`Optional + +```typescript +public readonly packageManager: NodePackageManager; +``` + +- *Type:* projen.javascript.NodePackageManager +- *Default:* the packageManager in the project + +Which package manager is being used? + +--- + ### ClickUpCdkCommonOptions #### Initializer diff --git a/src/cdk-diff-workflow.ts b/src/cdk-diff-workflow.ts index 7da0fc7b..aa9c3275 100644 --- a/src/cdk-diff-workflow.ts +++ b/src/cdk-diff-workflow.ts @@ -1,4 +1,4 @@ -import { SampleFile, YamlFile } from 'projen'; +import { SampleFile, YamlFile, javascript } from 'projen'; import { NodePackage } from 'projen/lib/javascript'; import { clickupCdk } from './clickup-cdk'; import { OptionalNodeVersion } from './optional-node-version'; @@ -6,6 +6,11 @@ import { parameters } from './utils/parameters'; export module cdkDiffWorkflow { function createCdkDiffWorkflow(options: CDKDiffOptionsConfig) { + const installDeps = + options.packageManager === javascript.NodePackageManager.PNPM + ? 'pnpm i --frozen-lockfile' + : 'yarn install --check-files'; + const defaultWorkflow = { name: 'cdk-diff', on: { @@ -51,7 +56,7 @@ export module cdkDiffWorkflow { }, { name: 'Install dependencies', - run: 'yarn install --check-files', + run: installDeps, }, createStackCaptureStep(options.envsToDiff), ...createDiffSteps(options.envsToDiff).flat(), @@ -283,6 +288,12 @@ export module cdkDiffWorkflow { * Detrmines if the OIDC role stack should be created */ readonly createOidcRoleStack?: boolean; + + /** + * Which package manager is being used? + * @default - the packageManager in the project + */ + readonly packageManager?: javascript.NodePackageManager; } export function getCDKDiffOptions(options?: CDKDiffOptionsConfig) { @@ -295,7 +306,14 @@ export module cdkDiffWorkflow { override?: any, ): void { new YamlFile(project, '.github/workflows/cdk-diff.yml', { - obj: { ...createCdkDiffWorkflow({ nodeVersion: project.workflowNodeVersion, ...options }), ...override }, + obj: { + ...createCdkDiffWorkflow({ + nodeVersion: project.workflowNodeVersion, + packageManager: project.package.packageManager, + ...options, + }), + ...override, + }, }); }