Code sign retry 3 times (#2943)
* Replace deprecated steps github action * Windows codesign retry 3 times --------- Co-authored-by: Hien To <tominhhien97@gmail.com>
This commit is contained in:
parent
9cf9fa0dd3
commit
20c9c3ff2b
@ -1,5 +1,28 @@
|
||||
const { exec } = require('child_process')
|
||||
|
||||
function execCommandWithRetry(command, retries = 3) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const execute = (attempt) => {
|
||||
exec(command, (error, stdout, stderr) => {
|
||||
if (error) {
|
||||
console.error(`Error: ${error}`)
|
||||
if (attempt < retries) {
|
||||
console.log(`Retrying... Attempt ${attempt + 1}`)
|
||||
execute(attempt + 1)
|
||||
} else {
|
||||
return reject(error)
|
||||
}
|
||||
} else {
|
||||
console.log(`stdout: ${stdout}`)
|
||||
console.error(`stderr: ${stderr}`)
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
}
|
||||
execute(0)
|
||||
})
|
||||
}
|
||||
|
||||
function sign({
|
||||
path,
|
||||
name,
|
||||
@ -13,16 +36,9 @@ function sign({
|
||||
}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const command = `azuresigntool.exe sign -kvu "${certUrl}" -kvi "${clientId}" -kvt "${tenantId}" -kvs "${clientSecret}" -kvc "${certName}" -tr "${timestampServer}" -v "${path}"`
|
||||
|
||||
exec(command, (error, stdout, stderr) => {
|
||||
if (error) {
|
||||
console.error(`Error: ${error}`)
|
||||
return reject(error)
|
||||
}
|
||||
console.log(`stdout: ${stdout}`)
|
||||
console.error(`stderr: ${stderr}`)
|
||||
resolve()
|
||||
})
|
||||
execCommandWithRetry(command)
|
||||
.then(resolve)
|
||||
.catch(reject)
|
||||
})
|
||||
}
|
||||
|
||||
@ -34,15 +50,20 @@ exports.default = async function (options) {
|
||||
const certName = process.env.AZURE_CERT_NAME
|
||||
const timestampServer = 'http://timestamp.globalsign.com/tsa/r6advanced1'
|
||||
|
||||
await sign({
|
||||
path: options.path,
|
||||
name: 'jan-win-x64',
|
||||
certUrl,
|
||||
clientId,
|
||||
tenantId,
|
||||
clientSecret,
|
||||
certName,
|
||||
timestampServer,
|
||||
version: options.version,
|
||||
})
|
||||
try {
|
||||
await sign({
|
||||
path: options.path,
|
||||
name: 'jan-win-x64',
|
||||
certUrl,
|
||||
clientId,
|
||||
tenantId,
|
||||
clientSecret,
|
||||
certName,
|
||||
timestampServer,
|
||||
version: options.version,
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('Failed to sign after 3 attempts:', error)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user