projen
Version:
CDK for software projects
115 lines (114 loc) • 3.33 kB
TypeScript
export interface ScheduledReleaseOptions {
/**
* Cron schedule for releases.
*
* Only defined if this is a scheduled release.
*
* @example '0 17 * * *' - every day at 5 pm
*/
readonly schedule: string;
}
export interface ManualReleaseOptions {
/**
* Maintain a project-level changelog.
*
* @default true
*/
readonly changelog?: boolean;
/**
* Project-level changelog file path.
*
* Ignored if `changelog` is false.
*
* @default 'CHANGELOG.md'
*/
readonly changelogPath?: string;
/**
* Override git-push command.
*
* Set to an empty string to disable pushing.
*/
readonly gitPushCommand?: string;
}
export interface ContinuousReleaseOptions {
/**
* Paths for which pushes should trigger a release
*/
readonly paths?: string[];
}
/**
* Used to manage release strategies. This includes release
* and release artifact automation
*/
export declare class ReleaseTrigger {
/**
* Creates a manual release trigger.
*
* Use this option if you want totally manual releases.
*
* This will give you a release task that, in addition to the normal
* release activities will trigger a `publish:git` task. This task will
* handle project-level changelog management, release tagging, and pushing
* these artifacts to origin.
*
* The command used for pushing can be customised by specifying
* `gitPushCommand`. Set to an empty string to disable pushing entirely.
*
* Simply run `yarn release` to trigger a manual release.
*
* @param options release options
*/
static manual(options?: ManualReleaseOptions): ReleaseTrigger;
/**
* Creates a scheduled release trigger.
*
* Automated releases will occur based on the provided cron schedule.
*
* @param options release options.
*/
static scheduled(options: ScheduledReleaseOptions): ReleaseTrigger;
/**
* The release can only be triggered using the GitHub UI.
*/
static workflowDispatch(): ReleaseTrigger;
/**
* Creates a continuous release trigger.
*
* Automated releases will occur on every commit.
*/
static continuous(options?: ContinuousReleaseOptions): ReleaseTrigger;
/**
* Project-level changelog file path.
*/
readonly changelogPath?: string;
/**
* Cron schedule for releases.
*
* Only defined if this is a scheduled release.
*
* @example '0 17 * * *' - every day at 5 pm
*/
readonly schedule?: string;
/**
* Whether or not this is a continuous release.
*/
readonly isContinuous: boolean;
/**
* Paths for which pushes will trigger a release when `isContinuous` is `true`
*/
readonly paths?: string[];
/**
* Override git-push command used when releasing manually.
*
* Set to an empty string to disable pushing.
*/
readonly gitPushCommand?: string;
private readonly workflowDispatchOnly?;
private constructor();
/**
* Whether or not this is a release trigger with a manual task run in a working copy.
*
* If the `ReleaseTrigger` is a GitHub-only manual task, this will return `false`.
*/
get isManual(): boolean;
}