Files
2025-02-26 09:35:54 +00:00

69 lines
1.6 KiB
TypeScript

/**
* Configuration for single test shard.
*/
export interface ShardConfig {
/**
* Path patterns to match against the test file paths, of two types:
*
* 1. Particular file, e.g. `lib/util/git/index.spec.ts`
*
* - File pattern MUST end with `.spec.ts`
* - This will only search for the particular test file
* - It enables coverage for the `*.ts` file with the same name,
* e.g. `lib/util/git/index.ts`
* - You probably want to use directory pattern instead
*
* 2. Whole directory, e.g. `lib/modules/datasource`
*
* - This will search for all `*.spec.ts` files under the directory
* - It enables coverage all `*.ts` files under the directory,
* e.g. `lib/modules/datasource/foo/bar/baz.ts`
*/
matchPaths: string[];
}
export type RunsOn = 'ubuntu-latest' | 'windows-latest' | 'macos-latest';
export interface ShardGroup {
/**
* Input for `runs-on` field.
*/
os: RunsOn;
/**
* Controls whether coverage is collected for this shard group.
*/
coverage: boolean;
/**
* Input for `name` field.
*/
name: string;
/**
* Space-separated list of shard keys, it's
* meant to be inserted into bash for-loop.
*/
shards: string;
/**
* It's meant to be used for Jest caching.
*/
'cache-key': string;
/**
* It's used to set test runner timeout.
*/
'runner-timeout-minutes': number;
/**
* It's used to set `--test-timeout` Jest CLI flag.
*/
'test-timeout-milliseconds': number;
/**
* It's used as the name for coverage artifact.
*/
'upload-artifact-name': string;
}