1
0
mirror of https://github.com/actions/checkout.git synced 2026-06-14 16:53:47 +08:00

update reference cache even when .git already exists

This commit is contained in:
Michael Wyraz
2026-03-10 08:01:47 +01:00
parent 9be4f3c9fd
commit 090955f4b7
3 changed files with 286 additions and 15 deletions

View File

@@ -23,6 +23,32 @@ interface SubmoduleInfo {
url: string
}
export async function setupReferenceCache(
git: IGitCommandManager,
referenceCache: string,
repositoryUrl: string
): Promise<void> {
if (!referenceCache) {
return
}
core.startGroup('Setting up reference repository cache')
try {
const cacheHelper = new GitCacheHelper(referenceCache)
const cachePath = await cacheHelper.setupCache(git, repositoryUrl)
const cacheObjects = path.join(cachePath, 'objects')
if (fsHelper.directoryExistsSync(cacheObjects, false)) {
await git.referenceAdd(cacheObjects)
} else {
core.warning(
`Reference repository cache objects directory ${cacheObjects} does not exist`
)
}
} finally {
core.endGroup()
}
}
async function iterativeSubmoduleUpdate(
git: IGitCommandManager,
cacheHelper: GitCacheHelper,
@@ -276,22 +302,10 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
await git.init()
await git.remoteAdd('origin', repositoryUrl)
core.endGroup()
// Setup reference cache if requested
if (settings.referenceCache) {
core.startGroup('Setting up reference repository cache')
const cacheHelper = new GitCacheHelper(settings.referenceCache)
const cachePath = await cacheHelper.setupCache(git, repositoryUrl)
const cacheObjects = path.join(cachePath, 'objects')
if (fsHelper.directoryExistsSync(cacheObjects, false)) {
await git.referenceAdd(cacheObjects)
} else {
core.warning(`Reference repository cache objects directory ${cacheObjects} does not exist`)
}
core.endGroup()
}
}
await setupReferenceCache(git, settings.referenceCache, repositoryUrl)
// Remove global auth if it was set for reference cache,
// to avoid duplicate AUTHORIZATION headers during fetch
if (settings.referenceCache) {