mirror of
https://github.com/JamesIves/github-pages-deploy-action.git
synced 2023-12-15 20:03:39 +08:00
Update git.ts
This commit is contained in:
parent
27811f4b80
commit
afcfd7b3a1
47
src/git.ts
47
src/git.ts
@ -21,29 +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
|
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
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,
|
||||||
@ -67,7 +46,27 @@ export async function init(action: ActionInterface): Promise<void | Error> {
|
|||||||
action.workspace,
|
action.workspace,
|
||||||
action.silent
|
action.silent
|
||||||
)
|
)
|
||||||
} while (attempt < ATTEMPT_LIMIT)
|
} 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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user