Merge branch 'init-commit' into releases/v4-init

This commit is contained in:
James Ives 2022-04-27 07:00:54 -04:00
commit c46739c7bd

View File

@ -21,33 +21,8 @@ export async function init(action: ActionInterface): Promise<void | Error> {
info(`Deploying using ${action.tokenType}… 🔑`) info(`Deploying using ${action.tokenType}… 🔑`)
info('Configuring git…') info('Configuring git…')
// Keep trying to configure Git with various different methods until it works with a maximum of 2 attempts. async function configureGit(throwOnError: boolean) {
const ATTEMPT_LIMIT = 2 try {
let attempt = 0
let rejected = false
do {
attempt++
if (attempt > ATTEMPT_LIMIT) {
throw new Error();
}
if (attempt > 1) {
await execute(
`git init`,
action.workspace,
action.silent
)
await execute(
`git commit -m "Initial commit" --allow-empty`,
action.workspace,
action.silent
)
}
await execute( await execute(
`git config --global --add safe.directory "${action.workspace}"`, `git config --global --add safe.directory "${action.workspace}"`,
action.workspace, action.workspace,
@ -71,7 +46,27 @@ export async function init(action: ActionInterface): Promise<void | Error> {
action.workspace, action.workspace,
action.silent action.silent
) )
} while(rejected) } 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 commit -m "Initial commit" --allow-empty`,
action.workspace,
action.silent
)
await configureGit(true)
}
try { try {
if ((process.env.CI && !action.sshKey) || action.isTest) { if ((process.env.CI && !action.sshKey) || action.isTest) {