From 3a839bddae2f0a9f8d51f76922ddafae6ad390f3 Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Thu, 5 Nov 2020 05:14:58 -0800 Subject: [PATCH] Download icons with retry Summary: This quite often fails in CI. Adobe's fetch has some very sensible defaults and will do exponential backoff and retry for up to a minute. That should hopefully fix issues where we have to restart the whole build just to fix one measly icon download. Reviewed By: jknoxville Differential Revision: D24649807 fbshipit-source-id: efbc9eb29e4b5a0f74b0b6ad6dea4aaf86391363 --- desktop/package.json | 4 ++++ desktop/scripts/build-release.ts | 4 ++-- desktop/yarn.lock | 29 ++++++++++++++++++++++++++++- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index f4286ae9b..9359305d0 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -116,6 +116,7 @@ "@jest-runner/electron": "^3.0.0", "@testing-library/dom": "^7.26.3", "@testing-library/react": "^11.1.0", + "@types/adobe__node-fetch-retry": "^1.0.0", "@types/algoliasearch": "^3.30.19", "@types/babel__code-frame": "^7.0.1", "@types/babel__core": "^7.1.10", @@ -276,5 +277,8 @@ }, "optionalDependencies": { "7zip-bin-mac": "^1.0.1" + }, + "dependencies": { + "@adobe/node-fetch-retry": "^1.1.0" } } diff --git a/desktop/scripts/build-release.ts b/desktop/scripts/build-release.ts index 987760bce..07e434f65 100755 --- a/desktop/scripts/build-release.ts +++ b/desktop/scripts/build-release.ts @@ -20,7 +20,7 @@ import { genMercurialRevision, generatePluginEntryPoints, } from './build-utils'; -import fetch from 'node-fetch'; +import fetch from '@adobe/node-fetch-retry'; import {getIcons, buildLocalIconPath, getIconURL} from '../app/src/utils/icons'; import isFB from './isFB'; import copyPackageWithDependencies from './copy-package-with-dependencies'; @@ -163,7 +163,7 @@ function downloadIcons(buildFolder: string) { return Promise.all( iconURLs.map(({name, size, density}) => { const url = getIconURL(name, size, density); - return fetch(url) + return fetch(url, {}) .then((res) => { if (res.status !== 200) { throw new Error( diff --git a/desktop/yarn.lock b/desktop/yarn.lock index 0256d2c2b..e773f206d 100644 --- a/desktop/yarn.lock +++ b/desktop/yarn.lock @@ -12,6 +12,14 @@ resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== +"@adobe/node-fetch-retry@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@adobe/node-fetch-retry/-/node-fetch-retry-1.1.0.tgz#7a5161932f9d936458af28f62bc6c935d07152e9" + integrity sha512-KD6M2KNLQzuvEmG+f5SbVicLQb952sIsu94ZifFIrEGgAdpeke6RMWqKPg3a99FTF1Clcp80AWThxtrGQ9Yuwg== + dependencies: + abort-controller "^3.0.0" + node-fetch "^2.6.1" + "@algolia/cache-browser-local-storage@4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.4.0.tgz#f58055bdf798d7b31b6d5f86e465cb0fc7dd6694" @@ -1966,6 +1974,13 @@ "@babel/runtime" "^7.11.2" "@testing-library/dom" "^7.26.0" +"@types/adobe__node-fetch-retry@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/adobe__node-fetch-retry/-/adobe__node-fetch-retry-1.0.0.tgz#0c8b5710086ffa31e7d0820841eb860af051a0a7" + integrity sha512-e9bQInFEBLYRFhvYF6/jbELEXJcGCpvbX1jVlzrGvSia0hzfrlmt7mK++9G/EpMZ6TKOZStprcwlgSgT9yel1w== + dependencies: + "@types/node-fetch" "*" + "@types/algoliasearch@^3.30.19": version "3.34.11" resolved "https://registry.yarnpkg.com/@types/algoliasearch/-/algoliasearch-3.34.11.tgz#a7f3b89a95578be3acd972167bdbadb5dcf71660" @@ -2280,7 +2295,7 @@ dependencies: "@types/node" "*" -"@types/node-fetch@^2.5.6": +"@types/node-fetch@*", "@types/node-fetch@^2.5.6": version "2.5.7" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== @@ -2765,6 +2780,13 @@ abab@^2.0.3: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + absolute-path@^0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7" @@ -5655,6 +5677,11 @@ event-pubsub@4.3.0: resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"