Unshallow on fetch

This commit is contained in:
Peter Evans 2020-07-18 16:04:36 +09:00
parent 053b501145
commit f4ee4a8333
3 changed files with 185 additions and 0 deletions

77
src/fs-helper.ts Normal file
View file

@ -0,0 +1,77 @@
import * as fs from 'fs'
export function directoryExistsSync(path: string, required?: boolean): boolean {
if (!path) {
throw new Error("Arg 'path' must not be empty")
}
let stats: fs.Stats
try {
stats = fs.statSync(path)
} catch (error) {
if (error.code === 'ENOENT') {
if (!required) {
return false
}
throw new Error(`Directory '${path}' does not exist`)
}
throw new Error(
`Encountered an error when checking whether path '${path}' exists: ${error.message}`
)
}
if (stats.isDirectory()) {
return true
} else if (!required) {
return false
}
throw new Error(`Directory '${path}' does not exist`)
}
export function existsSync(path: string): boolean {
if (!path) {
throw new Error("Arg 'path' must not be empty")
}
try {
fs.statSync(path)
} catch (error) {
if (error.code === 'ENOENT') {
return false
}
throw new Error(
`Encountered an error when checking whether path '${path}' exists: ${error.message}`
)
}
return true
}
export function fileExistsSync(path: string): boolean {
if (!path) {
throw new Error("Arg 'path' must not be empty")
}
let stats: fs.Stats
try {
stats = fs.statSync(path)
} catch (error) {
if (error.code === 'ENOENT') {
return false
}
throw new Error(
`Encountered an error when checking whether path '${path}' exists: ${error.message}`
)
}
if (!stats.isDirectory()) {
return true
}
return false
}

View file

@ -1,5 +1,7 @@
import * as exec from '@actions/exec'
import * as io from '@actions/io'
import * as fshelper from './fs-helper'
import * as path from 'path'
const tagsRefSpec = '+refs/tags/*:refs/tags/*'
@ -114,6 +116,13 @@ export class GitCommandManager {
}
args.push('--progress', '--no-recurse-submodules')
if (
fshelper.fileExistsSync(
path.join(this.workingDirectory, '.git', 'shallow')
)
) {
args.push('--unshallow')
}
if (options) {
args.push(...options)