mirror of https://github.com/aminya/setup-cpp
Merge pull request #155 from aminya/retry
This commit is contained in:
commit
d8f740e0bd
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -69,6 +69,7 @@
|
||||||
"path-exists": "^4.0.0",
|
"path-exists": "^4.0.0",
|
||||||
"patha": "^0.4.1",
|
"patha": "^0.4.1",
|
||||||
"quote-unquote": "^1.0.0",
|
"quote-unquote": "^1.0.0",
|
||||||
|
"retry-as-promised": "^7.0.3",
|
||||||
"semver": "7.3.8",
|
"semver": "7.3.8",
|
||||||
"setup-python": "github:actions/setup-python#v4.3.1",
|
"setup-python": "github:actions/setup-python#v4.3.1",
|
||||||
"time-delta": "github:aminya/time-delta#69d91a41cef28e569be9a2991129f5f7d1f0d00e",
|
"time-delta": "github:aminya/time-delta#69d91a41cef28e569be9a2991129f5f7d1f0d00e",
|
||||||
|
|
|
@ -32,7 +32,7 @@ importers:
|
||||||
escape-path-with-spaces: github:aminya/escape-path-with-spaces#d9f81ee649203ddc55783a2f96ada59df06118e3
|
escape-path-with-spaces: github:aminya/escape-path-with-spaces#d9f81ee649203ddc55783a2f96ada59df06118e3
|
||||||
escape-quotes: ^1.0.2
|
escape-quotes: ^1.0.2
|
||||||
escape-string-regexp: ^5.0.0
|
escape-string-regexp: ^5.0.0
|
||||||
eslint: ^8.29.0
|
eslint: ^8.28.0
|
||||||
eslint-config-atomic: ^1.18.1
|
eslint-config-atomic: ^1.18.1
|
||||||
exec-powershell: workspace:1.0.0
|
exec-powershell: workspace:1.0.0
|
||||||
execa: ^5.1.1
|
execa: ^5.1.1
|
||||||
|
@ -51,6 +51,7 @@ importers:
|
||||||
prettier-config-atomic: ^3.1.0
|
prettier-config-atomic: ^3.1.0
|
||||||
quote-unquote: ^1.0.0
|
quote-unquote: ^1.0.0
|
||||||
readme-md-generator: ^1.0.0
|
readme-md-generator: ^1.0.0
|
||||||
|
retry-as-promised: ^7.0.3
|
||||||
semver: 7.3.8
|
semver: 7.3.8
|
||||||
setup-python: github:actions/setup-python#v4.3.1
|
setup-python: github:actions/setup-python#v4.3.1
|
||||||
shx: 0.3.4
|
shx: 0.3.4
|
||||||
|
@ -84,6 +85,7 @@ importers:
|
||||||
path-exists: 4.0.0
|
path-exists: 4.0.0
|
||||||
patha: 0.4.1
|
patha: 0.4.1
|
||||||
quote-unquote: 1.0.0
|
quote-unquote: 1.0.0
|
||||||
|
retry-as-promised: 7.0.3
|
||||||
semver: 7.3.8
|
semver: 7.3.8
|
||||||
setup-python: github.com/actions/setup-python/2c3dd9e7e29afd70cc0950079bde6c979d1f69f9
|
setup-python: github.com/actions/setup-python/2c3dd9e7e29afd70cc0950079bde6c979d1f69f9
|
||||||
time-delta: github.com/aminya/time-delta/69d91a41cef28e569be9a2991129f5f7d1f0d00e
|
time-delta: github.com/aminya/time-delta/69d91a41cef28e569be9a2991129f5f7d1f0d00e
|
||||||
|
@ -8479,6 +8481,10 @@ packages:
|
||||||
signal-exit: 3.0.7
|
signal-exit: 3.0.7
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/retry-as-promised/7.0.3:
|
||||||
|
resolution: {integrity: sha512-SEvMa4khHvpU/o6zgh7sK24qm6rxVgKnrSyzb5POeDvZx5N9Bf0s5sQsQ4Fl+HjRp0X+w2UzACGfUnXtx6cJ9Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/retry/0.12.0:
|
/retry/0.12.0:
|
||||||
resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
|
resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
|
||||||
engines: {node: '>= 4'}
|
engines: {node: '>= 4'}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { setupBrewPack } from "../utils/setup/setupBrewPack"
|
||||||
import { setupChocoPack } from "../utils/setup/setupChocoPack"
|
import { setupChocoPack } from "../utils/setup/setupChocoPack"
|
||||||
import { addExeExt, join } from "patha"
|
import { addExeExt, join } from "patha"
|
||||||
import { extractTar, extractZip } from "../utils/setup/extract"
|
import { extractTar, extractZip } from "../utils/setup/extract"
|
||||||
import { notice } from "ci-log"
|
import { info, notice } from "ci-log"
|
||||||
import { setupGraphviz } from "../graphviz/graphviz"
|
import { setupGraphviz } from "../graphviz/graphviz"
|
||||||
import { getVersion } from "../versions/versions"
|
import { getVersion } from "../versions/versions"
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ import { hasDnf } from "../utils/env/hasDnf"
|
||||||
import { setupDnfPack } from "../utils/setup/setupDnfPack"
|
import { setupDnfPack } from "../utils/setup/setupDnfPack"
|
||||||
import { isUbuntu } from "../utils/env/isUbuntu"
|
import { isUbuntu } from "../utils/env/isUbuntu"
|
||||||
import pathExists from "path-exists"
|
import pathExists from "path-exists"
|
||||||
|
import retry from "retry-as-promised"
|
||||||
|
|
||||||
/** Get the platform data for cmake */
|
/** Get the platform data for cmake */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
@ -48,7 +49,13 @@ function getDoxygenPackageInfo(version: string, platform: NodeJS.Platform, _arch
|
||||||
export async function setupDoxygen(version: string, setupDir: string, arch: string) {
|
export async function setupDoxygen(version: string, setupDir: string, arch: string) {
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
case "win32": {
|
case "win32": {
|
||||||
await setupChocoPack("doxygen.install", version)
|
// try to download the package 4 times with 2 seconds delay
|
||||||
|
await retry(
|
||||||
|
() => {
|
||||||
|
return setupChocoPack("doxygen.install", version)
|
||||||
|
},
|
||||||
|
{ max: 4, backoffBase: 2000, report: (err) => info(err) }
|
||||||
|
)
|
||||||
const binDir = await activateWinDoxygen()
|
const binDir = await activateWinDoxygen()
|
||||||
const installationInfo = { binDir }
|
const installationInfo = { binDir }
|
||||||
await setupGraphviz(getVersion("graphviz", undefined), "", arch)
|
await setupGraphviz(getVersion("graphviz", undefined), "", arch)
|
||||||
|
@ -100,6 +107,7 @@ async function activateWinDoxygen() {
|
||||||
"C:/Program Files/doxygen/bin",
|
"C:/Program Files/doxygen/bin",
|
||||||
"C:/Program Files (x86)/doxygen",
|
"C:/Program Files (x86)/doxygen",
|
||||||
]) {
|
]) {
|
||||||
|
// eslint-disable-next-line no-await-in-loop
|
||||||
if (await pathExists(join(binDir, "doxygen.exe"))) {
|
if (await pathExists(join(binDir, "doxygen.exe"))) {
|
||||||
// eslint-disable-next-line no-await-in-loop
|
// eslint-disable-next-line no-await-in-loop
|
||||||
await addPath(binDir)
|
await addPath(binDir)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import { hasDnf } from "../env/hasDnf"
|
||||||
import { setupDnfPack } from "./setupDnfPack"
|
import { setupDnfPack } from "./setupDnfPack"
|
||||||
import { isUbuntu } from "../env/isUbuntu"
|
import { isUbuntu } from "../env/isUbuntu"
|
||||||
import pathExists from "path-exists"
|
import pathExists from "path-exists"
|
||||||
|
import retry from "retry-as-promised"
|
||||||
|
|
||||||
/** A type that describes a package */
|
/** A type that describes a package */
|
||||||
export type PackageInfo = {
|
export type PackageInfo = {
|
||||||
|
@ -91,7 +92,13 @@ export async function setupBin(
|
||||||
if ((await Promise.all([pathExists(binDir), pathExists(binFile)])).includes(false)) {
|
if ((await Promise.all([pathExists(binDir), pathExists(binFile)])).includes(false)) {
|
||||||
try {
|
try {
|
||||||
info(`Download ${name} ${version}`)
|
info(`Download ${name} ${version}`)
|
||||||
const downloaded = await downloadTool(url)
|
// try to download the package 4 times with 2 seconds delay
|
||||||
|
const downloaded = await retry(
|
||||||
|
() => {
|
||||||
|
return downloadTool(url)
|
||||||
|
},
|
||||||
|
{ max: 4, backoffBase: 2000, report: (err) => info(err) }
|
||||||
|
)
|
||||||
|
|
||||||
if (!didInit) {
|
if (!didInit) {
|
||||||
info(`Installing extraction dependencies`)
|
info(`Installing extraction dependencies`)
|
||||||
|
|
Loading…
Reference in New Issue