-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy path.projenrc.ts
113 lines (109 loc) · 3.14 KB
/
.projenrc.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import { CdklabsConstructLibrary } from 'cdklabs-projen-project-types';
import { awscdk, javascript, JsonPatch } from 'projen';
import { Stability } from 'projen/lib/cdk';
export interface WorkflowDotNetVersionPatchOptions {
/**
* The workflow to patch.
*/
workflow: string;
/**
* Name of the job.
*/
jobName: string;
/**
* dotNet Version
*/
dotNetVersion: string;
}
export class WorkflowDotNetVersionPatch {
public constructor(project: javascript.NodeProject, options: WorkflowDotNetVersionPatchOptions) {
project.tryFindObjectFile(`.github/workflows/${options.workflow}.yml`)?.patch(
JsonPatch.replace(`/jobs/${options.jobName}/steps/1/with/dotnet-version`, options.dotNetVersion),
);
}
}
const cdkVersion = '2.139.0';
const project = new CdklabsConstructLibrary({
setNodeEngineVersion: false,
private: false,
workflowNodeVersion: '18.x',
versionrcOptions: {
types: [
{ type: 'feat', section: 'Features' },
{ type: 'fix', section: 'Bug Fixes' },
{ type: 'chore', section: 'Chores' },
{ type: 'test', hidden: true },
{ type: 'build', hidden: true },
{ type: 'ci', hidden: true },
],
},
author: 'Amazon Web Services',
authorAddress: 'https://aws.amazon.com',
authorOrganization: true,
cdkVersion,
defaultReleaseBranch: 'main',
name: '@cdklabs/cdk-ecs-codedeploy',
description: 'CDK Constructs for performing ECS Deployments with CodeDeploy',
repositoryUrl: 'https://github.com/cdklabs/cdk-ecs-codedeploy',
stability: Stability.EXPERIMENTAL,
docgen: true,
autoApproveUpgrades: true,
projenrcTs: true,
autoApproveOptions: {
allowedUsernames: ['cdklabs-automation'],
secret: 'GITHUB_TOKEN',
},
lambdaOptions: {
runtime: awscdk.LambdaRuntime.NODEJS_20_X,
},
jestOptions: {
updateSnapshot: javascript.UpdateSnapshot.NEVER,
},
publishToMaven: {
javaPackage: 'io.github.cdklabs.cdk.ecs.codedeploy',
mavenGroupId: 'io.github.cdklabs',
mavenArtifactId: 'cdk-ecs-codedeploy',
mavenEndpoint: 'https://s01.oss.sonatype.org',
},
publishToNuget: {
dotNetNamespace: 'Cdklabs.CdkEcsCodeDeploy',
packageId: 'Cdklabs.CdkEcsCodeDeploy',
},
publishToPypi: {
distName: 'cdklabs.ecs-codedeploy',
module: 'cdk.ecs_codedeploy',
},
publishToGo: {
moduleName: 'github.com/cdklabs/cdk-ecs-codedeploy-go',
},
devDeps: [
'@types/aws-lambda',
'lambda-tester',
'aws-sdk-client-mock',
'aws-sdk-client-mock-jest',
'@types/lambda-tester',
`@aws-cdk/integ-tests-alpha@^${cdkVersion}-alpha.0`,
'cdk-nag',
],
bundledDeps: [
'@aws-sdk/client-codedeploy',
'jmespath',
],
deps: [],
peerDeps: [],
keywords: [
'aws',
'cdk',
'ecs',
'codedeploy',
],
});
project.upgradeWorkflow?.postUpgradeTask.spawn(
project.tasks.tryFind('bundle')!,
);
project.upgradeWorkflow?.postUpgradeTask.spawn(
project.tasks.tryFind('integ:snapshot-all')!,
);
new WorkflowDotNetVersionPatch(project, { workflow: 'build', jobName: 'package-dotnet', dotNetVersion: '6.x' });
new WorkflowDotNetVersionPatch(project, { workflow: 'release', jobName: 'release_nuget', dotNetVersion: '6.x' });
project.synth();