À propos
Notre manière d'utiliser Playwright est la suivante:
- Installation des prérequis (Node.js,
pnpm, dépendances du projet dont Playwright)
- Téléchargement des navigateurs headless pour l'exécution des tests
- Installation des dépendances systèmes (avec
sudo, en outre…)
- Le reste (préparation de l'environnement de test, puis exécutions des tests)
Les étapes 1 et 2 utilisent actuellement des caches pour récupérer rapidement des éléments qui ne changent pas beaucoup d'une exécution à une autre. L'étape 3, en revanche, est forcément systématique, et prend entre 40s et 1m30 pour chaque exécution du workflow
Dans d'optique de l'amélioration (drastique) de la boucle de retour qu'est la pipeline d'intégration continue, si on peut s'éviter ce temps pour pas cher, ça sera un gain réel.
Or il semble qu'on puisse utiliser une image pré-construite pour Playwright, en utilisant les paramètres uses ou container des steps de workflows Github: Par ex. https://github.com/Falltrades/cloud-example/blob/main/.github/workflows/tflint.yml#L18
Point important à noter: il semblerait qu'on puisse utiliser cette manière de faire avec les runners Gitlab gratuits dont on dispose actuellement.
Références
Tickets liés
#2112
À propos
Notre manière d'utiliser Playwright est la suivante:
pnpm, dépendances du projet dont Playwright)sudo, en outre…)Les étapes 1 et 2 utilisent actuellement des caches pour récupérer rapidement des éléments qui ne changent pas beaucoup d'une exécution à une autre. L'étape 3, en revanche, est forcément systématique, et prend entre 40s et 1m30 pour chaque exécution du workflow
Dans d'optique de l'amélioration (drastique) de la boucle de retour qu'est la pipeline d'intégration continue, si on peut s'éviter ce temps pour pas cher, ça sera un gain réel.
Or il semble qu'on puisse utiliser une image pré-construite pour Playwright, en utilisant les paramètres
usesoucontainerdes steps de workflows Github: Par ex. https://github.com/Falltrades/cloud-example/blob/main/.github/workflows/tflint.yml#L18Point important à noter: il semblerait qu'on puisse utiliser cette manière de faire avec les runners Gitlab gratuits dont on dispose actuellement.
Références
uses: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsusescontainer(qui ferait aussi la même chose): https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainercontaineravec une image approuvée: https://playwright.dev/docs/ci#via-containersTickets liés
#2112