eclipse-theia / theia

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
http://theia-ide.org
Eclipse Public License 2.0
19.99k stars 2.5k forks source link

As an extension developer I want yarn to fail fast if the VS Code extensions cannot be downloaded #7819

Closed kittaakos closed 3 years ago

kittaakos commented 4 years ago

Bug Description:

Right now, https://open-vsx.org/ is down.

Screen Shot 2020-05-14 at 16 38 10

I want yarn to fail fast if the VS Code extension download phase has failed. Otherwise, I get a green build with a non-functional app.

Locally:

akos.kitta@Akoss-MacBook-Pro theia % rm -rf ./plugins 
akos.kitta@Akoss-MacBook-Pro theia % yarn download:plugins
yarn run v1.21.1
$ theia download:plugins
--- downloading plugins ---
+ vscode-builtin-node-debug: downloaded successfully 
x vscode-builtin-json: failed to download with: 502 Bad Gateway
x vscode-builtin-lua: failed to download with: 502 Bad Gateway
x vscode-builtin-csharp: failed to download with: 502 Bad Gateway
x vscode-builtin-yaml: failed to download with: 502 Bad Gateway
x vscode-builtin-groovy: failed to download with: 502 Bad Gateway
x vscode-builtin-clojure: failed to download with: 502 Bad Gateway
x vscode-builtin-hlsl: failed to download with: 502 Bad Gateway
x vscode-builtin-vb: failed to download with: 502 Bad Gateway
x vscode-builtin-gulp: failed to download with: 502 Bad Gateway
x vscode-builtin-handlebars: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-defaults: failed to download with: 502 Bad Gateway
x vscode-builtin-markdown-language-features: failed to download with: 502 Bad Gateway
x vscode-builtin-scss: failed to download with: 502 Bad Gateway
x vscode-builtin-razor: failed to download with: 502 Bad Gateway
x vscode-builtin-fsharp: failed to download with: 502 Bad Gateway
x vscode-builtin-debug-auto-launch: failed to download with: 502 Bad Gateway
x vscode-builtin-docker: failed to download with: 502 Bad Gateway
x vscode-builtin-objective-c: failed to download with: 502 Bad Gateway
x vscode-builtin-bat: failed to download with: 502 Bad Gateway
x vscode-builtin-java: failed to download with: 502 Bad Gateway
x vscode-builtin-npm: failed to download with: 502 Bad Gateway
x vscode-builtin-configuration-editing: failed to download with: 502 Bad Gateway
x vscode-editorconfig: failed to download with: 502 Bad Gateway
x vscode-builtin-sql: failed to download with: 502 Bad Gateway
x vscode-builtin-shaderlab: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-monokai-dimmed: failed to download with: 502 Bad Gateway
x vscode-builtin-emmet: failed to download with: 502 Bad Gateway
x vscode-builtin-less: failed to download with: 502 Bad Gateway
x vscode-builtin-go: failed to download with: 502 Bad Gateway
x vscode-builtin-grunt: failed to download with: 502 Bad Gateway
x vscode-builtin-merge-conflict: failed to download with: 502 Bad Gateway
x vscode-builtin-node-debug2: failed to download with: 502 Bad Gateway
x vscode-builtin-r: failed to download with: 502 Bad Gateway
x vscode-builtin-typescript: failed to download with: 502 Bad Gateway
x vscode-builtin-coffeescript: failed to download with: 502 Bad Gateway
x vscode-builtin-ini: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-red: failed to download with: 502 Bad Gateway
x vscode-builtin-python: failed to download with: 502 Bad Gateway
x vscode-builtin-perl: failed to download with: 502 Bad Gateway
x vscode-builtin-shellscript: failed to download with: 502 Bad Gateway
x vscode-builtin-markdown: failed to download with: 502 Bad Gateway
x vscode-builtin-xml: failed to download with: 502 Bad Gateway
x vscode-builtin-javascript: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-tomorrow-night-blue: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-abyss: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-quietlight: failed to download with: 502 Bad Gateway
x vscode-builtin-icon-theme-seti: failed to download with: 502 Bad Gateway
x vscode-builtin-typescript-language-features: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-solarized-dark: failed to download with: 502 Bad Gateway
x vscode-builtin-swift: failed to download with: 502 Bad Gateway
x vscode-builtin-log: failed to download with: 502 Bad Gateway
x vscode-builtin-rust: failed to download with: 502 Bad Gateway
x vscode-builtin-make: failed to download with: 502 Bad Gateway
x vscode-eslint: failed to download with: 502 Bad Gateway
x vscode-builtin-ruby: failed to download with: 502 Bad Gateway
x vscode-builtin-pug: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-monokai: failed to download with: 502 Bad Gateway
x vscode-builtin-theme-kimbie-dark: failed to download with: 502 Bad Gateway
x vscode-builtin-powershell: failed to download with: 502 Bad Gateway
x vscode-builtin-jake: failed to download with: 502 Bad Gateway
x vscode-references-view: failed to download with: 502 Bad Gateway
x vscode-builtin-html: failed to download with: 502 Bad Gateway
x vscode-builtin-cpp: failed to download with: 502 Bad Gateway
x vscode-builtin-css: failed to download with: 502 Bad Gateway
✨  Done in 55.92s.
akos.kitta@Akoss-MacBook-Pro theia % 

With GH Actions:

electron-app:     [path] external "path" 42 bytes {main} [built]
electron-app:     [util] external "util" 42 bytes {main} [built]
electron-app:         + 173 hidden modules
$ theia download:plugins
--- downloading plugins ---
x vscode-builtin-cpp: failed to download (after 5 attempts) { statusCode: 502, statusMessage: Bad Gateway }
x vscode-yaml: failed to download (after 5 attempts) { statusCode: 502, statusMessage: Bad Gateway }

Steps to Reproduce:

1. 2. 3.

Additional Information

vince-fugnitto commented 4 years ago

@kittaakos at which point do you want the build to fail fast?

We require that @theia/cli is built before we are able to successfully run the download:plugins script (which is why it is called after the official yarn phase since it has no affect on the actual build of the application).

kittaakos commented 4 years ago

fail fast?

Sorry, I meant to fail ~fast~ at the end 😊More precisely, I want a non-zero exit code if something has not been downloaded. It must not be the default behavior, we did something similar with the dependency hosting check. It logs a warning by default.

I want to avoid one thing: having a green build without the VS Code extensions.

vince-fugnitto commented 4 years ago

fail fast?

Sorry, I meant to fail ~fast~ at the end 😊More precisely, I want a non-zero exit code if something has not been downloaded. It must not be the default behavior, we did something similar with the dependency hosting check. It logs a warning by default.

I want to avoid one thing: having a green build without the VS Code extensions.

Thank you for clarifying!