angular / angular/dev-infra

Tooling to accept payload size changes

Ouverte
#443 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
feature
Langage dominant
JavaScript
Étoiles
77
Forks
83
Merge moyen
2 j 5 h
PR mergées (30 j)
37

Description

Currently in the angular/angular repo, when a change affects payload size for integration test app or AIO, an error is thrown on CI ([example CI failure](https://app.circleci.com/pipelines/github/angular/angular/43342/workflows/f4014ab1-aff3-4298-944b-f64c6a615e5f/jobs/1130977)):
```
FAIL: Commit undefined uncompressed main fell below expected size by 500 bytes or >1% (expected: 231381, actual: 230780).
If this is a desired change, please update the size limits in file '../.cache/bazel/_bazel_circleci/9ce5c2144ecf75d11717c0aa41e45a8d/execroot/angular/bazel-out/k8-fastbuild/bin/integration/cli-hello-world-lazy/test.sh.runfiles/angular/goldens/size-tracking/integration-payloads.json'.
```
We have a number of test apps (~10) for which we track payload size, thus it takes time to manually update everything. Also, minor payload size deltas between the main and a patch branches causes issues during the merge (when merge is requested to both main and patch branches), thus engineers end up creating a new PR and re-do all the manual updates to payload sizes once again.

It'd be great if we can have a tooling to update payload sizes, similar to what we have for tracking the symbols (via `yarn symbol-extractor:update`). That'd improve the quality of life for us, reduce CI reruns and save a bunch of time.

Also, I noticed that the payload size error for each app is present in [the CI output](https://app.circleci.com/pipelines/github/angular/angular/43342/workflows/f4014ab1-aff3-4298-944b-f64c6a615e5f/jobs/1130977) more than once. Do we run it multiple times for some reasons?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par le fichier golden integration-payloads.json et le point d’entrée existant yarn symbol-extractor:update. Suivez la manière dont CI compare le payload de chaque application de test et pourquoi l’erreur apparaît plusieurs fois ; le travail est terminé lorsqu’une commande de tooling met à jour les tailles suivies pour toutes les applications concernées sans modifications manuelles répétées.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, javascript
Domaine
build-system, ci-cd, tooling
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.