Update git.ts

This commit is contained in:
James Ives 2022-04-27 07:00:20 -04:00
parent 27811f4b80
commit afcfd7b3a1

View File

@ -21,53 +21,52 @@ export async function init(action: ActionInterface): Promise<void | Error> {
info(`Deploying using ${action.tokenType}… 🔑`)
info('Configuring git…')
// Keep trying to configure Git with various different methods until it works with a maximum of 2 attempts.
const ATTEMPT_LIMIT = 2
let attempt = 0
do {
attempt++
if (attempt > ATTEMPT_LIMIT) {
throw new Error()
}
if (attempt > 1) {
// Handles the 'fatal: not a git directory' error.
await execute(`git init`, action.workspace, action.silent)
async function configureGit(throwOnError: boolean) {
try {
await execute(
`git commit -m "Initial commit" --allow-empty`,
`git config --global --add safe.directory "${action.workspace}"`,
action.workspace,
action.silent
)
await execute(
`git config user.name "${action.name}"`,
action.workspace,
action.silent
)
await execute(
`git config user.email "${action.email}"`,
action.workspace,
action.silent
)
await execute(
`git config core.ignorecase false`,
action.workspace,
action.silent
)
} catch {
if (throwOnError) {
throw new Error()
}
}
}
try {
await configureGit(false)
} catch {
// Attempt to re-run if initial configuration failed using git init.
await execute(`git init`, action.workspace, action.silent)
await execute(
`git config --global --add safe.directory "${action.workspace}"`,
`git commit -m "Initial commit" --allow-empty`,
action.workspace,
action.silent
)
await execute(
`git config user.name "${action.name}"`,
action.workspace,
action.silent
)
await execute(
`git config user.email "${action.email}"`,
action.workspace,
action.silent
)
await execute(
`git config core.ignorecase false`,
action.workspace,
action.silent
)
} while (attempt < ATTEMPT_LIMIT)
await configureGit(true)
}
try {
if ((process.env.CI && !action.sshKey) || action.isTest) {