63 lines
2.0 KiB
TypeScript
63 lines
2.0 KiB
TypeScript
import type { CfnProject } from './codebuild.generated';
|
|
import type { IProject } from './project';
|
|
import type { IBucket } from '../../aws-s3';
|
|
export interface BucketCacheOptions {
|
|
/**
|
|
* The prefix to use to store the cache in the bucket
|
|
*/
|
|
readonly prefix?: string;
|
|
/**
|
|
* Defines the scope of the cache.
|
|
* You can use this namespace to share a cache across multiple projects.
|
|
*
|
|
* @see https://docs.aws.amazon.com/codebuild/latest/userguide/caching-s3.html#caching-s3-sharing
|
|
*
|
|
* @default undefined - No cache namespace, which means that the cache is not shared across multiple projects.
|
|
*/
|
|
readonly cacheNamespace?: string;
|
|
}
|
|
/**
|
|
* Local cache modes to enable for the CodeBuild Project
|
|
*/
|
|
export declare enum LocalCacheMode {
|
|
/**
|
|
* Caches Git metadata for primary and secondary sources
|
|
*/
|
|
SOURCE = "LOCAL_SOURCE_CACHE",
|
|
/**
|
|
* Caches existing Docker layers
|
|
*/
|
|
DOCKER_LAYER = "LOCAL_DOCKER_LAYER_CACHE",
|
|
/**
|
|
* Caches directories you specify in the buildspec file
|
|
*/
|
|
CUSTOM = "LOCAL_CUSTOM_CACHE"
|
|
}
|
|
/**
|
|
* Cache options for CodeBuild Project.
|
|
* A cache can store reusable pieces of your build environment and use them across multiple builds.
|
|
* @see https://docs.aws.amazon.com/codebuild/latest/userguide/build-caching.html
|
|
*/
|
|
export declare abstract class Cache {
|
|
static none(): Cache;
|
|
/**
|
|
* Create a local caching strategy.
|
|
* @param modes the mode(s) to enable for local caching
|
|
*/
|
|
static local(...modes: LocalCacheMode[]): Cache;
|
|
/**
|
|
* Create an S3 caching strategy.
|
|
* @param bucket the S3 bucket to use for caching
|
|
* @param options additional options to pass to the S3 caching
|
|
*/
|
|
static bucket(bucket: IBucket, options?: BucketCacheOptions): Cache;
|
|
/**
|
|
* @internal
|
|
*/
|
|
abstract _toCloudFormation(): CfnProject.ProjectCacheProperty | undefined;
|
|
/**
|
|
* @internal
|
|
*/
|
|
abstract _bind(project: IProject): void;
|
|
}
|