Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Netlify trop lent #1160

Closed
mquandalle opened this issue Oct 11, 2020 · 8 comments · Fixed by #1249 or #1447
Closed

Build Netlify trop lent #1160

mquandalle opened this issue Oct 11, 2020 · 8 comments · Fixed by #1249 or #1447

Comments

@mquandalle
Copy link
Contributor

mquandalle commented Oct 11, 2020

Le build Netlify est trop lent, et parfois il ne termine même pas dans le délai imparti entraînant l'erreur suivante :

5:07:12 PM: failed during stage 'building site': Command did not finish within the time limit

Pistes envisageables :

  • ne plus faire le fetch-stats.js au moment du build ?
  • paramétrer un cache sur Netlify entre les builds ?
  • utiliser CircleCI pour builder l'application et ajouter un script pour un upload statique Netlify ?
  • autre ?
@johangirod
Copy link
Contributor

johangirod commented Oct 12, 2020

Cela vient aussi du prerender de pupetter qui prends beaucoup de temps. Je pense en revanche que l'impact du fetch-stats est négligeable.

Le plus gros problème vient de l'absence de cache yarn dû à cet endroit :

mon-entreprise/netlify.toml

Lines 233 to 238 in 9f97074

[build]
# Hack while waiting for netlify to support workspace
# https://github.com/netlify/build-image/issues/196
command = "npm i yarn && yarn && yarn workspaces run prepare && yarn workspace mon-entreprise build"
publish = "mon-entreprise/dist"

Je pense qu'on peut gagner facile 50% en le réglant.

@johangirod
Copy link
Contributor

On peut aussi attendre de déplacer le paquet publicode dans son propre repo.

@mquandalle
Copy link
Contributor Author

Autre conséquence, les tests ci/circleci: production-end-to-end-test sont exécutés avant que Netlify n'est eu le temps de mettre le site en production.

@mquandalle
Copy link
Contributor Author

mquandalle commented Nov 20, 2020

Avec la création d'un paquet "systeme-social" #1227, on garde un monorepo ici, même si on déplace publicodes dans son propre repo ensuite (et sur ce point, je pense que nous seront de toute façon amenés à utiliser une version "nightly" non publiée sur NPM de publicodes, concrètement en l'ajoutant comme un git module au même endroit qu'aujourd'hui).

Donc à voir comment corriger ce problème de cache Netlify sachant qu'on garde un monorepo ici.

@mquandalle
Copy link
Contributor Author

Je suis tenté de passer par le CI de github netlify/build-image#196 (comment)

@lajarre
Copy link
Contributor

lajarre commented Nov 24, 2020

Question un peu de côté: pourquoi garder un monorepo en fait? Je vois bien qu'il est possible de le faire avec des submodules mais je ne suis pas sûr de voir la nécessité ou l'avantage de le faire?

@mquandalle
Copy link
Contributor Author

mquandalle commented Dec 10, 2020

Le passage en GitHub action a bien amélioré les choses, mais le déploiement dure encore environ 8 minutes ce qui reste long https://github.com/betagouv/mon-entreprise/actions?query=workflow%3A%22D%C3%A9ploiement+sur+Netlify%22.

  • L'étape npm install yarn n'est pas mise en cache et prends ≃1'50'' (je pense qu'il faut juste ajouter yarn en "devDependencies")
    Edit: on dirait que c'est corrigé "tout seul" (ou c'est toi Johan ?)
  • @johangirod On est obligés de faire le SSR à chaque fois ? D'autant que j'ai l'impression que ça ne fonctionne pas totalement (cliquer sur un bloc sur https://deploy-preview-1294--syso.netlify.app/?s=m)

Autre question, est-ce qu'on passe en Github Action pour le déploiement sur master et demo ? Ça parait simple à mettre en œuvre et permet d'éviter des divergences de configuration entre les deux manières de déployer, cf. #1283 (comment)

@johangirod
Copy link
Contributor

Bon, au vu des récents ajouts de #1430, on est systématiquement > 15min du build netlify. Je m'occupes demain de passer en github action pour master, demo et next :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants