UNPKG

projen

Version:

CDK for software projects

139 lines (138 loc) 4.43 kB
import { IConstruct } from "constructs"; import { GitIdentity } from "./task-workflow"; import { CheckoutWith } from "./workflow-steps"; import { ContainerOptions, Job, JobDefaults, JobPermissions, JobStep, JobStepOutput, JobStrategy, Tools } from "./workflows-model"; import { Component } from "../component"; import { GroupRunnerOptions } from "../runner-options"; import { Task } from "../task"; /** * Options to create the Job associated with a TaskWorkflow. */ export interface TaskWorkflowJobOptions { /** * @default - default image */ readonly container?: ContainerOptions; /** * Adds an 'if' condition to the workflow. */ readonly condition?: string; /** * A directory name which contains artifacts to be uploaded (e.g. `dist`). * If this is set, the contents of this directory will be uploaded as an * artifact at the end of the workflow run, even if other steps fail. * * @default - not set */ readonly artifactsDirectory?: string; /** * Initial steps to run before the source code checkout. * * @default - not set */ readonly preCheckoutSteps?: JobStep[]; /** * Override for the `with` property of the source code checkout step. * * @default - not set */ readonly checkoutWith?: CheckoutWith; /** * Steps to run before the main build step. * * @default - not set */ readonly preBuildSteps?: JobStep[]; /** * Actions to run after the main build step. * * @default - not set */ readonly postBuildSteps?: JobStep[]; /** * Workflow environment variables. * @default {} */ readonly env?: Record<string, string>; /** * Permissions for the build job. */ readonly permissions: JobPermissions; /** * Mapping of job output names to values/expressions. * * @default {} */ readonly outputs?: { [name: string]: JobStepOutput; }; /** * The git identity to use in this workflow. */ readonly gitIdentity?: GitIdentity; /** * Github Runner selection labels * @default ["ubuntu-latest"] * @description Defines a target Runner by labels * @throws {Error} if both `runsOn` and `runsOnGroup` are specified */ readonly runsOn?: string[]; /** * Github Runner Group selection options * @description Defines a target Runner Group by name and/or labels * @throws {Error} if both `runsOn` and `runsOnGroup` are specified */ readonly runsOnGroup?: GroupRunnerOptions; /** * Whether to download files from Git LFS for this workflow * * @default - Use the setting on the corresponding GitHub project */ readonly downloadLfs?: boolean; /** * Default settings for all steps in the TaskWorkflow Job. */ readonly jobDefaults?: JobDefaults; /** * The GitHub Actions environment used for the job. * * @default - no environment used */ readonly environment?: string; } /** * The primary or initial job of a TaskWorkflow. * * @implements {Job} */ export declare class TaskWorkflowJob extends Component { readonly runsOn?: string[] | undefined; readonly runsOnGroup?: GroupRunnerOptions | undefined; readonly steps: JobStep[]; readonly environment?: string; readonly outputs?: Record<string, JobStepOutput> | undefined; readonly env?: Record<string, string> | undefined; readonly defaults?: JobDefaults | undefined; readonly timeoutMinutes?: number | undefined; readonly continueOnError?: boolean | undefined; readonly container?: ContainerOptions | undefined; readonly services?: Record<string, ContainerOptions> | undefined; readonly tools?: Tools | undefined; readonly name?: string | undefined; readonly needs?: string[] | undefined; readonly permissions: JobPermissions; readonly concurrency?: unknown; readonly if?: string | undefined; readonly strategy?: JobStrategy | undefined; /** * @param scope should be part of the project the Task belongs to. * @param task the main task that is run as part of this job. * @param options options to configure the TaskWorkflowJob. */ constructor(scope: IConstruct, task: Task, options: TaskWorkflowJobOptions); /** * @jsii ignore * @internal */ toJSON(): Job; }