Related: #612 #432 #319
We are using yarn workspaces with yarn's latest versiβ¦on (`3.0.1`) and yarn is not cached at all, it takes `1m 54s` in best cases and `3m 17s` in worst cases, including the cache restore phase.
On the contrary, on GitHub actions with the [yarn cache action](https://github.com/c-hive/gha-yarn-cache), the Fetch phase is completely skipped, and it just runs the linking phase. It takes ~20 seconds.
I pasted the logs at the end of the issue, the relevant part are these:
<img width="500" src="https://user-images.githubusercontent.com/7217420/130809519-d87d1ddd-db67-4129-91e7-908ad9bb9412.png" />
<img width="600" src="https://user-images.githubusercontent.com/7217420/130810222-dac02583-8738-4ee3-a646-1cd981b4a486.png" />
And there is this warning from yarn, it may be relevant:
![image](https://user-images.githubusercontent.com/7217420/130807849-2e1f0bb0-e87f-4f89-8456-1a7d5de841b2.png)
<details>
<summary>Full Netlify build logs (excluding build phase)</summary>
```
4:18:09 PM: Build ready to start
4:18:11 PM: build-image version: c6001ed68662a13e5deb24abec2b46058c58248a
4:18:11 PM: build-image tag: v3.9.0
4:18:11 PM: buildbot version: d2795bf5a96b85e585e90944f15f15381ce164a7
4:18:11 PM: Fetching cached dependencies
4:18:11 PM: Starting to download cache of 802.8MB
4:18:15 PM: Finished downloading cache in 3.951667197s
4:18:15 PM: Starting to extract cache
4:18:31 PM: Finished extracting cache in 16.395963806s
4:18:32 PM: Finished fetching cache in 20.470693303s
4:18:32 PM: Starting to prepare the repo for build
4:18:32 PM: Preparing Git Reference pull/1028/head
4:18:35 PM: Parsing package.json dependencies
4:18:35 PM: Starting build script
4:18:35 PM: Installing dependencies
4:18:35 PM: Python version set to 2.7
4:18:36 PM: Started restoring cached node version
4:18:38 PM: Finished restoring cached node version
4:18:39 PM: v16.7.0 is already installed.
4:18:40 PM: Now using node v16.7.0 (npm v7.20.3)
4:18:40 PM: Started restoring cached build plugins
4:18:40 PM: Finished restoring cached build plugins
4:18:40 PM: Attempting ruby version 2.7.1, read from environment
4:18:40 PM: Started restoring cached ruby version
4:18:40 PM: Finished restoring cached ruby version
4:18:42 PM: Using ruby version 2.7.1
4:18:42 PM: Using PHP version 5.6
4:18:42 PM: Started restoring cached yarn cache
4:18:42 PM: Finished restoring cached yarn cache
4:18:44 PM: Found yarn version (3.0.1) that doesn't match expected (1.22.4)
4:18:44 PM: up to date, audited 1 package in 261ms
4:18:44 PM: found 0 vulnerabilities
4:18:44 PM: Installing yarn at version 1.22.4
4:18:44 PM: Installing Yarn!
4:18:44 PM: > Downloading tarball...
4:18:44 PM: [1/2]: https://yarnpkg.com/downloads/1.22.4/yarn-v1.22.4.tar.gz --> /tmp/yarn.tar.gz.uavJVbtnLD
4:18:44 PM: % Total % Received % Xferd Average Speed Time Time Time Current
4:18:44 PM: Dload Upload Total Spent Left Speed
4:18:45 PM: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
4:18:45 PM: 100 79 100 79 0 0 351 0 --:--:-- --:--:-- --:--:-- 352
4:18:45 PM: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
4:18:45 PM: 100 93 100 93 0 0 146 0 --:--:-- --:--:-- --:--:-- 451
4:18:45 PM: 100 625 100 625 0 0 684 0 --:--:-- --:--:-- --:--:-- 684
4:18:46 PM: 100 1215k 100 1215k 0 0 1006k 0 0:00:01 0:00:01 --:--:-- 1006k
4:18:46 PM: [2/2]: https://yarnpkg.com/downloads/1.22.4/yarn-v1.22.4.tar.gz.asc --> /tmp/yarn.tar.gz.uavJVbtnLD.asc
4:18:46 PM: 100 83 100 83 0 0 1853 0 --:--:-- --:--:-- --:--:-- 1853
4:18:46 PM: 100 97 100 97 0 0 1318 0 --:--:-- --:--:-- --:--:-- 1318
4:18:46 PM: 100 629 100 629 0 0 6041 0 --:--:-- --:--:-- --:--:-- 6041
4:18:46 PM: 100 1028 100 1028 0 0 8914 0 --:--:-- --:--:-- --:--:-- 8914
4:18:46 PM: > Verifying integrity...
4:18:46 PM: gpg: Signature made Mon 09 Mar 2020 03:52:13 PM UTC using RSA key ID 69475BAA
4:18:46 PM: gpg: Good signature from "Yarn Packaging <yarn@dan.cx>"
4:18:46 PM: gpg: WARNING: This key is not certified with a trusted signature!
4:18:46 PM: gpg: There is no indication that the signature belongs to the owner.
4:18:46 PM: Primary key fingerprint: 72EC F46A 56B4 AD39 C907 BBB7 1646 B01B 86E5 0310
4:18:46 PM: Subkey fingerprint: 6D98 490C 6F1A CDDD 448E 4595 4F77 6793 6947 5BAA
4:18:46 PM: > GPG signature looks good
4:18:46 PM: > Extracting to ~/.yarn...
4:18:46 PM: > Adding to $PATH...
4:18:46 PM: > Successfully installed Yarn 1.22.4! Please open another terminal where the `yarn` command will now be available.
4:18:46 PM: Yarn workspaces detected
4:18:46 PM: Started restoring workspace packages/editor node modules
4:18:46 PM: Finished restoring workspace packages/editor node modules
4:18:46 PM: Started restoring workspace root node modules
4:18:46 PM: Finished restoring workspace root node modules
4:18:47 PM: Installing NPM modules using Yarn version 3.0.1
4:18:48 PM: β€ YN0050: The cache-folder option has been deprecated; use rc settings instead
4:18:49 PM: β€ YN0000: β Resolution step
4:18:49 PM: β€ YN0002: β @mdx-js/loader@npm:1.6.22 doesn't provide react (p12550), requested by @mdx-js/react
β€ YN0002: β @react-aria/menu@npm:3.1.4 [6b3b6] doesn't provide react-dom (p7793e), requested by @react-aria/overlays
β€ YN0002: β @react-aria/tooltip@npm:3.1.1 [6b3b6] doesn't provide react-dom (p25457), requested by @react-aria/overlays
β€ YN0002: β @storybook/core@npm:6.1.21 [13e62] doesn't provide typescript (p4c2e3), requested by fork-ts-checker-webpack-plugin
β€ YN0002: β @storybook/preset-create-react-app@npm:3.1.7 [7e6ab] doesn't provide react-refresh (pf9dee), requested by @pmmmwh/react-refresh-webpack-plugin
β€ YN0002: β @storybook/preset-create-react-app@npm:3.1.7 [7e6ab] doesn't provide typescript (p0ad40), requested by react-docgen-typescript-plugin
β€ YN0002: β @storybook/preset-create-react-app@npm:3.1.7 [7e6ab] doesn't provide webpack (p82525), requested by @pmmmwh/react-refresh-webpack-plugin
β€ YN0002: β @storybook/react@npm:6.1.21 [7e6ab] doesn't provide typescript (p62333), requested by react-docgen-typescript-plugin
β€ YN0002: β editor@workspace:packages/editor doesn't provide @babel/core (p170a2), requested by babel-plugin-named-asset-import
β€ YN0002: β editor@workspace:packages/editor doesn't provide @babel/core (pf8a98), requested by @storybook/addon-essentials
β€ YN0002: β editor@workspace:packages/editor doesn't provide @babel/core (pc2008), requested by @storybook/preset-create-react-app
β€ YN0002: β editor@workspace:packages/editor doesn't provide @babel/core (p09571), requested by @storybook/react
β€ YN0002: β editor@workspace:packages/editor doesn't provide @babel/core (p1c95e), requested by babel-jest
β€ YN0002: β editor@workspace:packages/editor doesn't provide @testing-library/dom (p52ade), requested by @testing-library/user-event
β€ YN0002: β editor@workspace:packages/editor doesn't provide @typescript-eslint/eslint-plugin (pae93d), requested by eslint-config-react-app
β€ YN0002: β editor@workspace:packages/editor doesn't provide @typescript-eslint/parser (p47980), requested by eslint-config-react-app
β€ YN0002: β editor@workspace:packages/editor doesn't provide babel-loader (pf2344), requested by @storybook/addon-docs
β€ YN0002: β editor@workspace:packages/editor doesn't provide babel-loader (pd8908), requested by @storybook/addon-essentials
β€ YN0002: β editor@workspace:packages/editor doesn't provide eslint-plugin-flowtype (pdeceb), requested by eslint-config-react-app
β€ YN0002: β editor@workspace:packages/editor doesn't provide eslint-plugin-import (p284ba), requested by eslint-config-react-app
β€ YN0002: β editor@workspace:packages/editor doesn't provide eslint-plugin-jsx-a11y (p2f943), requested by eslint-config-react-app
β€ YN0002: β editor@workspace:packages/editor doesn't provide eslint-plugin-react (p4b4fd), requested by eslint-config-react-app
β€ YN0002: β editor@workspace:packages/editor doesn't provide eslint-plugin-react-hooks (pb5a16), requested by eslint-config-react-app
β€ YN0060: β editor@workspace:packages/editor provides react (pdd751) with version 17.0.1, which doesn't satisfy what @storybook/addon-actions and some of its descendants request
β€ YN0060: β editor@workspace:packages/editor provides react (pa0ab2) with version 17.0.1, which doesn't satisfy what @storybook/addon-docs and some of its descendants request
β€ YN0060: β editor@workspace:packages/editor provides react (p03409) with version 17.0.1, which doesn't satisfy what react-multi-email requests
β€ YN0060: β editor@workspace:packages/editor provides react-dom (p60341) with version 17.0.1, which doesn't satisfy what @storybook/addon-actions and some of its descendants request
β€ YN0060: β editor@workspace:packages/editor provides react-dom (pdc343) with version 17.0.1, which doesn't satisfy what @storybook/addon-docs and some of its descendants request
β€ YN0060: β editor@workspace:packages/editor provides react-dom (pce5e4) with version 17.0.1, which doesn't satisfy what react-multi-email requests
β€ YN0002: β editor@workspace:packages/editor doesn't provide webpack (pa7cad), requested by raw-loader
β€ YN0002: β editor@workspace:packages/editor doesn't provide webpack (p68732), requested by esbuild-loader
β€ YN0002: β editor@workspace:packages/editor doesn't provide webpack (p4ed41), requested by fast-sass-loader
β€ YN0002: β editor@workspace:packages/editor doesn't provide webpack (p92b4b), requested by speed-measure-webpack-plugin
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pbc588), requested by @react-aria/i18n
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p8a0d0), requested by @react-aria/interactions
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p48a46), requested by @react-aria/link
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p109e9), requested by @react-aria/utils
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pc15d4), requested by @react-aria/focus
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p6b6be), requested by @react-aria/label
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p16962), requested by @react-aria/ssr
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p83932), requested by @react-aria/overlays
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p3ae77), requested by @react-aria/progress
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p80dff), requested by @react-aria/visually-hidden
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p3a742), requested by @react-aria/textfield
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pabf72), requested by @react-aria/menu
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pfc846), requested by @react-aria/breadcrumbs
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pcd1d8), requested by @react-aria/button
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p09bf0), requested by @react-aria/checkbox
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p51ee3), requested by @react-aria/dialog
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pb7f39), requested by @react-aria/listbox
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p4847b), requested by @react-aria/meter
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pc8bc1), requested by @react-aria/radio
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pc2954), requested by @react-aria/searchfield
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pfeef5), requested by @react-aria/select
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pede51), requested by @react-aria/separator
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p9db53), requested by @react-aria/slider
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (pe751f), requested by @react-aria/switch
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react (p5cd5d), requested by @react-aria/tooltip
β€ YN0002: β react-aria@npm:3.4.0 doesn't provide react-dom (p337a3), requested by @react-aria/overlays
β€ YN0002: β react-dev-utils@npm:11.0.4 doesn't provide typescript (p79ddf), requested by fork-ts-checker-webpack-plugin
β€ YN0002: β react-dev-utils@npm:11.0.4 doesn't provide webpack (p2af19), requested by fork-ts-checker-webpack-plugin
β€ YN0002: β react-hot-toast@npm:2.0.0 [7e6ab] doesn't provide csstype (p287b3), requested by goober
β€ YN0002: β react-stately@npm:3.3.0 doesn't provide react (p85986), requested by @react-stately/data
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide @typescript-eslint/eslint-plugin (pdf9d2), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide @typescript-eslint/parser (pd2e4e), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide babel-eslint (peb234), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide cypress (pa68a9), requested by @testing-library/cypress
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide cypress (p85358), requested by cypress-localstorage-commands
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide eslint-plugin-flowtype (pfa493), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide eslint-plugin-import (pbae0d), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide eslint-plugin-jsx-a11y (pc5b66), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide eslint-plugin-react (p45cfd), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide eslint-plugin-react-hooks (pc0ad7), requested by eslint-config-react-app
β€ YN0002: β root-workspace-0b6124@workspace:. doesn't provide react (p5a3eb), requested by react-scripts
β€ YN0002: β runtime@workspace:packages/runtime doesn't provide webpack (p462c7), requested by raw-loader
β€ YN0002: β runtime@workspace:packages/runtime [7e6ab] doesn't provide webpack (pc8bdf), requested by raw-loader
β€ YN0002: β spe@workspace:packages/spe doesn't provide three (p422b3), requested by postprocessing
β€ YN0002: β spe@workspace:packages/spe doesn't provide webpack (pfa9bb), requested by file-loader
β€ YN0000: β Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
4:18:49 PM: β€ YN0000: β Completed in 0s 608ms
4:18:49 PM: β€ YN0000: β Fetch step
4:20:23 PM: β€ YN0013: β 8 packages were already cached, 2408 had to be fetched
4:20:23 PM: β€ YN0000: β Completed in 1m 34s
4:20:23 PM: β€ YN0000: β Link step
4:20:24 PM: β€ YN0062: β fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=1cc4b2 The platform linux is incompatible with this module, link skipped.
4:20:25 PM: β€ YN0062: β fsevents@patch:fsevents@npm%3A1.2.13#~builtin<compat/fsevents>::version=1.2.13&hash=1cc4b2 The platform linux is incompatible with this module, link skipped.
4:20:29 PM: β€ YN0007: β husky@npm:4.3.7 must be built because it never has been before or the last one failed
4:20:29 PM: β€ YN0007: β core-js@npm:3.9.1 must be built because it never has been before or the last one failed
4:20:29 PM: β€ YN0007: β electron@npm:8.5.5 must be built because it never has been before or the last one failed
4:20:29 PM: β€ YN0007: β esbuild@npm:0.12.19 must be built because it never has been before or the last one failed
4:20:29 PM: β€ YN0007: β ejs@npm:2.7.4 must be built because it never has been before or the last one failed
4:20:29 PM: β€ YN0007: β core-js-pure@npm:3.9.1 must be built because it never has been before or the last one failed
4:20:29 PM: β€ YN0007: β core-js@npm:2.6.12 must be built because it never has been before or the last one failed
4:20:30 PM: β€ YN0000: β husky@npm:4.3.7 STDOUT husky > Setting up git hooks
4:20:30 PM: β€ YN0000: β husky@npm:4.3.7 STDOUT CI detected, skipping Git hooks installation.
4:20:30 PM: β€ YN0000: β husky@npm:4.3.7 STDOUT husky > Done
4:20:31 PM: β€ YN0000: β Completed in 7s 690ms
4:20:31 PM: β€ YN0000: Done with warnings in 1m 43s
4:20:32 PM: NPM modules installed using Yarn
4:20:33 PM: Started restoring cached go cache
4:20:33 PM: Finished restoring cached go cache
4:20:33 PM: go version go1.14.4 linux/amd64
4:20:33 PM: go version go1.14.4 linux/amd64
4:20:33 PM: Installing missing commands
4:20:33 PM: Verify run directory
4:20:34 PM: β
4:20:34 PM: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4:20:34 PM: Netlify Build
4:20:34 PM: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4:20:34 PM: β
4:20:34 PM: β― Version
4:20:34 PM: @netlify/build 18.5.0
4:20:34 PM: β
4:20:34 PM: β― Flags
4:20:34 PM: baseRelDir: true
4:20:34 PM: buildId: 612651213fe4cc0008c22123
4:20:34 PM: deployId: 612651213fe4cc0008c22125
4:20:34 PM: β
4:20:34 PM: β― Current directory
4:20:34 PM: /opt/build/repo
4:20:34 PM: β
4:20:34 PM: β― Config file
4:20:34 PM: /opt/build/repo/netlify.toml
4:20:34 PM: β
4:20:34 PM: β― Context
4:20:34 PM: deploy-preview
4:20:35 PM: β
4:20:35 PM: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4:20:35 PM: 1. Build command from Netlify app
4:20:35 PM: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4:20:35 PM: β
4:20:35 PM: $ yarn build
```
</details>