const { cdktn } = require("projen");
const project = new cdktn.ConstructLibraryCdktn({
author: "Your Name",
authorAddress: "your-name@company.com",
cdktnVersion: "0.13.0",
defaultReleaseBranch: "main",
name: "your-project-name",
repositoryUrl: "https://github.com/your-org/your-project-name.git",
prettier: true, // optional, but convenient
// Release Configuration
// Requires "NPM_TOKEN" secret to be set in the secrets of the Github repository
releaseToNpm: true,
npmRegistryUrl: "https://npm.pkg.your-company.com", // When omitted it will release to the public NPM registry
// Requires "TWINE_USERNAME" & "TWINE_PASSWORD" secret to be set in the repository
publishToPypi: {
distName: "your-project-name",
module: "your_project_name",
twineRegistryUrl: "https://pypi.your-company.com", // When omitted it will release to the public PyPi registry
},
// Requires "MAVEN_GPG_PRIVATE_KEY", "MAVEN_GPG_PRIVATE_KEY_PASSPHRASE", "MAVEN_PASSWORD",
// "MAVEN_USERNAME", and "MAVEN_STAGING_PROFILE_ID" to be set.
publishToMaven: {
javaPackage: "com.your-org.your-project-name ",
mavenGroupId: "com.your-org",
mavenArtifactId: "your-project-name",
mavenRepositoryUrl:
"https://maven.your-company.com/repository/your-project", // When omitted, the project releases to Maven Central
},
// Requires "NUGET_API_KEY" to be set.
publishToNuget: {
dotNetNamespace: "YourOrg.YourProjectName",
packageId: "YourOrg.YourProjectName",
nugetServer: "https://nuget.your-company.com", // When omitted it will release to the public Nuget registry
},
});
// You should use pre-built providers as peer dependencies so your
// package manager can warn you if you have incompatible versions
project.addPeerDeps(
"@cdktn/provider-aws@10.x", // You want to pin the major version to stay
"@cdktn/provider-pagerduty@3.x", // compatible with the current cdktn version
"@cdktn/provider-datadog@3.x",
);
project.synth();