mirror of
https://github.com/actions/checkout.git
synced 2026-07-18 03:50:07 +08:00
parent
12cd2235ef
commit
3f0d1d8f4c
4 changed files with 47 additions and 6 deletions
|
|
@ -572,3 +572,39 @@ describe('git user-agent with orchestration ID', () => {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('automatic garbage collection configuration', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
mockFileExistsSync.mockReset()
|
||||||
|
mockDirectoryExistsSync.mockReset()
|
||||||
|
mockExec.mockImplementation((path: any, args: any, options: any) => {
|
||||||
|
if (args.includes('version')) {
|
||||||
|
options.listeners.stdout(Buffer.from('git version 2.54.0'))
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
jest.clearAllMocks()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('disables maintenance and legacy garbage collection', async () => {
|
||||||
|
git = await commandManager.createCommandManager('test', false, false)
|
||||||
|
|
||||||
|
await expect(git.tryDisableAutomaticGarbageCollection()).resolves.toBe(
|
||||||
|
true
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(mockExec).toHaveBeenCalledWith(
|
||||||
|
expect.any(String),
|
||||||
|
['config', '--local', 'maintenance.auto', 'false'],
|
||||||
|
expect.objectContaining({ignoreReturnCode: true})
|
||||||
|
)
|
||||||
|
expect(mockExec).toHaveBeenCalledWith(
|
||||||
|
expect.any(String),
|
||||||
|
['config', '--local', 'gc.auto', '0'],
|
||||||
|
expect.objectContaining({ignoreReturnCode: true})
|
||||||
|
)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
|
||||||
7
dist/index.js
vendored
7
dist/index.js
vendored
|
|
@ -35918,8 +35918,9 @@ class GitCommandManager {
|
||||||
return output.exitCode === 0;
|
return output.exitCode === 0;
|
||||||
}
|
}
|
||||||
async tryDisableAutomaticGarbageCollection() {
|
async tryDisableAutomaticGarbageCollection() {
|
||||||
const output = await this.execGit(['config', '--local', 'gc.auto', '0'], true);
|
const maintenanceOutput = await this.execGit(['config', '--local', 'maintenance.auto', 'false'], true);
|
||||||
return output.exitCode === 0;
|
const gcOutput = await this.execGit(['config', '--local', 'gc.auto', '0'], true);
|
||||||
|
return maintenanceOutput.exitCode === 0 && gcOutput.exitCode === 0;
|
||||||
}
|
}
|
||||||
async tryGetFetchUrl() {
|
async tryGetFetchUrl() {
|
||||||
const output = await this.execGit(['config', '--local', '--get', 'remote.origin.url'], true);
|
const output = await this.execGit(['config', '--local', '--get', 'remote.origin.url'], true);
|
||||||
|
|
@ -41889,7 +41890,7 @@ async function getSource(settings) {
|
||||||
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);
|
||||||
await git.submoduleForeach('git config --local gc.auto 0', settings.nestedSubmodules);
|
await git.submoduleForeach('git config --local maintenance.auto false && git config --local gc.auto 0', settings.nestedSubmodules);
|
||||||
endGroup();
|
endGroup();
|
||||||
// Persist credentials
|
// Persist credentials
|
||||||
if (settings.persistCredentials) {
|
if (settings.persistCredentials) {
|
||||||
|
|
|
||||||
|
|
@ -517,11 +517,15 @@ class GitCommandManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
async tryDisableAutomaticGarbageCollection(): Promise<boolean> {
|
async tryDisableAutomaticGarbageCollection(): Promise<boolean> {
|
||||||
const output = await this.execGit(
|
const maintenanceOutput = await this.execGit(
|
||||||
|
['config', '--local', 'maintenance.auto', 'false'],
|
||||||
|
true
|
||||||
|
)
|
||||||
|
const gcOutput = await this.execGit(
|
||||||
['config', '--local', 'gc.auto', '0'],
|
['config', '--local', 'gc.auto', '0'],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
return output.exitCode === 0
|
return maintenanceOutput.exitCode === 0 && gcOutput.exitCode === 0
|
||||||
}
|
}
|
||||||
|
|
||||||
async tryGetFetchUrl(): Promise<string> {
|
async tryGetFetchUrl(): Promise<string> {
|
||||||
|
|
|
||||||
|
|
@ -283,7 +283,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
|
||||||
await git.submoduleSync(settings.nestedSubmodules)
|
await git.submoduleSync(settings.nestedSubmodules)
|
||||||
await git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules)
|
await git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules)
|
||||||
await git.submoduleForeach(
|
await git.submoduleForeach(
|
||||||
'git config --local gc.auto 0',
|
'git config --local maintenance.auto false && git config --local gc.auto 0',
|
||||||
settings.nestedSubmodules
|
settings.nestedSubmodules
|
||||||
)
|
)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue