@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
42 lines • 1.96 kB
TypeScript
import { GitProject } from "@atomist/automation-client/lib/project/git/GitProject";
import { GoalInvocation } from "../../../api/goal/GoalInvocation";
import { GoalCache } from "./goalCaching";
export interface GoalCacheArchiveStore {
/**
* Store a compressed goal archive
* @param gi The goal invocation thar triggered the caching
* @param classifier The classifier of the cache
* @param archivePath The path of the archive to be stored.
*/
store(gi: GoalInvocation, classifier: string, archivePath: string): Promise<string>;
/**
* Remove a compressed goal archive
* @param gi The goal invocation thar triggered the cache removal
* @param classifier The classifier of the cache
*/
delete(gi: GoalInvocation, classifier: string): Promise<void>;
/**
* Retrieve a compressed goal archive
* @param gi The goal invocation thar triggered the cache retrieval
* @param classifier The classifier of the cache
* @param targetArchivePath The destination path where the archive needs to be stored.
*/
retrieve(gi: GoalInvocation, classifier: string, targetArchivePath: string): Promise<void>;
}
export declare enum CompressionMethod {
TAR = 0,
ZIP = 1
}
/**
* Cache implementation that caches files produced by goals to an archive that can then be stored,
* using tar and gzip to create the archives per goal invocation (and classifier if present).
*/
export declare class CompressingGoalCache implements GoalCache {
private readonly store;
private readonly method;
constructor(store?: GoalCacheArchiveStore, method?: CompressionMethod);
put(gi: GoalInvocation, project: GitProject, files: string[], classifier?: string): Promise<string>;
remove(gi: GoalInvocation, classifier?: string): Promise<void>;
retrieve(gi: GoalInvocation, project: GitProject, classifier?: string): Promise<void>;
}
//# sourceMappingURL=CompressingGoalCache.d.ts.map