mirror of
https://github.com/actions/checkout.git
synced 2026-07-08 18:55:35 +00:00
Merge 057e2c1f09 into e8d4307400
This commit is contained in:
commit
6496909cf8
@ -403,6 +403,72 @@ describe('Test fetchDepth and fetchTags options', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('Test submoduleUpdate filter option', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
mockFileExistsSync.mockReset()
|
||||||
|
mockDirectoryExistsSync.mockReset()
|
||||||
|
mockExec.mockImplementation((path: any, args: any, options: any) => {
|
||||||
|
if (args.includes('version')) {
|
||||||
|
options.listeners.stdout(Buffer.from('2.18'))
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
jest.clearAllMocks()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should call execGit with --filter when a filter option is provided', async () => {
|
||||||
|
const workingDirectory = 'test'
|
||||||
|
const lfs = false
|
||||||
|
const doSparseCheckout = false
|
||||||
|
git = await commandManager.createCommandManager(
|
||||||
|
workingDirectory,
|
||||||
|
lfs,
|
||||||
|
doSparseCheckout
|
||||||
|
)
|
||||||
|
|
||||||
|
await git.submoduleUpdate(1, true, 'blob:none')
|
||||||
|
|
||||||
|
expect(mockExec).toHaveBeenCalledWith(
|
||||||
|
expect.any(String),
|
||||||
|
[
|
||||||
|
'-c',
|
||||||
|
'protocol.version=2',
|
||||||
|
'submodule',
|
||||||
|
'update',
|
||||||
|
'--init',
|
||||||
|
'--force',
|
||||||
|
'--depth=1',
|
||||||
|
'--recursive',
|
||||||
|
'--filter=blob:none'
|
||||||
|
],
|
||||||
|
expect.any(Object)
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should call execGit without --filter when no filter option is provided', async () => {
|
||||||
|
const workingDirectory = 'test'
|
||||||
|
const lfs = false
|
||||||
|
const doSparseCheckout = false
|
||||||
|
git = await commandManager.createCommandManager(
|
||||||
|
workingDirectory,
|
||||||
|
lfs,
|
||||||
|
doSparseCheckout
|
||||||
|
)
|
||||||
|
|
||||||
|
await git.submoduleUpdate(0, false, undefined)
|
||||||
|
|
||||||
|
expect(mockExec).toHaveBeenCalledWith(
|
||||||
|
expect.any(String),
|
||||||
|
['-c', 'protocol.version=2', 'submodule', 'update', '--init', '--force'],
|
||||||
|
expect.any(Object)
|
||||||
|
)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('repository initialization object format', () => {
|
describe('repository initialization object format', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
mockFileExistsSync.mockReset()
|
mockFileExistsSync.mockReset()
|
||||||
|
|||||||
7
dist/index.js
vendored
7
dist/index.js
vendored
@ -35872,7 +35872,7 @@ class GitCommandManager {
|
|||||||
}
|
}
|
||||||
await this.execGit(args);
|
await this.execGit(args);
|
||||||
}
|
}
|
||||||
async submoduleUpdate(fetchDepth, recursive) {
|
async submoduleUpdate(fetchDepth, recursive, filter) {
|
||||||
const args = ['-c', 'protocol.version=2'];
|
const args = ['-c', 'protocol.version=2'];
|
||||||
args.push('submodule', 'update', '--init', '--force');
|
args.push('submodule', 'update', '--init', '--force');
|
||||||
if (fetchDepth > 0) {
|
if (fetchDepth > 0) {
|
||||||
@ -35881,6 +35881,9 @@ class GitCommandManager {
|
|||||||
if (recursive) {
|
if (recursive) {
|
||||||
args.push('--recursive');
|
args.push('--recursive');
|
||||||
}
|
}
|
||||||
|
if (filter) {
|
||||||
|
args.push(`--filter=${filter}`);
|
||||||
|
}
|
||||||
await this.execGit(args);
|
await this.execGit(args);
|
||||||
}
|
}
|
||||||
async submoduleStatus() {
|
async submoduleStatus() {
|
||||||
@ -41888,7 +41891,7 @@ async function getSource(settings) {
|
|||||||
// Checkout submodules
|
// Checkout submodules
|
||||||
startGroup('Fetching submodules');
|
startGroup('Fetching submodules');
|
||||||
await git.submoduleSync(settings.nestedSubmodules);
|
await git.submoduleSync(settings.nestedSubmodules);
|
||||||
await git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules);
|
await git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules, fetchOptions.filter);
|
||||||
await git.submoduleForeach('git config --local gc.auto 0', settings.nestedSubmodules);
|
await git.submoduleForeach('git config --local gc.auto 0', settings.nestedSubmodules);
|
||||||
endGroup();
|
endGroup();
|
||||||
// Persist credentials
|
// Persist credentials
|
||||||
|
|||||||
@ -55,7 +55,11 @@ export interface IGitCommandManager {
|
|||||||
shaExists(sha: string): Promise<boolean>
|
shaExists(sha: string): Promise<boolean>
|
||||||
submoduleForeach(command: string, recursive: boolean): Promise<string>
|
submoduleForeach(command: string, recursive: boolean): Promise<string>
|
||||||
submoduleSync(recursive: boolean): Promise<void>
|
submoduleSync(recursive: boolean): Promise<void>
|
||||||
submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void>
|
submoduleUpdate(
|
||||||
|
fetchDepth: number,
|
||||||
|
recursive: boolean,
|
||||||
|
filter: string | undefined
|
||||||
|
): Promise<void>
|
||||||
submoduleStatus(): Promise<boolean>
|
submoduleStatus(): Promise<boolean>
|
||||||
tagExists(pattern: string): Promise<boolean>
|
tagExists(pattern: string): Promise<boolean>
|
||||||
tryClean(): Promise<boolean>
|
tryClean(): Promise<boolean>
|
||||||
@ -452,7 +456,11 @@ class GitCommandManager {
|
|||||||
await this.execGit(args)
|
await this.execGit(args)
|
||||||
}
|
}
|
||||||
|
|
||||||
async submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void> {
|
async submoduleUpdate(
|
||||||
|
fetchDepth: number,
|
||||||
|
recursive: boolean,
|
||||||
|
filter: string | undefined
|
||||||
|
): Promise<void> {
|
||||||
const args = ['-c', 'protocol.version=2']
|
const args = ['-c', 'protocol.version=2']
|
||||||
args.push('submodule', 'update', '--init', '--force')
|
args.push('submodule', 'update', '--init', '--force')
|
||||||
if (fetchDepth > 0) {
|
if (fetchDepth > 0) {
|
||||||
@ -463,6 +471,10 @@ class GitCommandManager {
|
|||||||
args.push('--recursive')
|
args.push('--recursive')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (filter) {
|
||||||
|
args.push(`--filter=${filter}`)
|
||||||
|
}
|
||||||
|
|
||||||
await this.execGit(args)
|
await this.execGit(args)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -281,7 +281,11 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
|
|||||||
// Checkout submodules
|
// Checkout submodules
|
||||||
core.startGroup('Fetching submodules')
|
core.startGroup('Fetching submodules')
|
||||||
await git.submoduleSync(settings.nestedSubmodules)
|
await git.submoduleSync(settings.nestedSubmodules)
|
||||||
await git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules)
|
await git.submoduleUpdate(
|
||||||
|
settings.fetchDepth,
|
||||||
|
settings.nestedSubmodules,
|
||||||
|
fetchOptions.filter
|
||||||
|
)
|
||||||
await git.submoduleForeach(
|
await git.submoduleForeach(
|
||||||
'git config --local gc.auto 0',
|
'git config --local gc.auto 0',
|
||||||
settings.nestedSubmodules
|
settings.nestedSubmodules
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user