Lancer les tests GDSL avec Gitlab CI

Vous pouvez utiliser Greenspector CLI pour exécuter des mesures à partir de n'importe quel Gitlab CI Runner. Associé à la campagne Dashboard, vous pouvez générer des tableaux de bord et valider les commits/tags en fonction de votre ecoscore.

Prérequis

Afin d'exécuter des mesures sur Greenspector Power Test Cloud depuis votre CI GitLab, voici les prérequis :

  • Un accès Internet au Greenspector Core Server.

    • Par exemple, curl https://core-saas-prod.greenspector.com/api doit retourner OK

    • Cet accès peut nécessiter d'autoriser un flux de votre serveur vers notre serveur et/ou de mettre l'URL https://core-saas-prod.greenspector.com/ sur liste blanche dans votre proxy

  • curl

  • jq

  • Si vous n'avez pas encore d'analyse (ou d'application) sur votre compte Greenspector Studio, créez-en une.

  • Trouvez votre Token dans l'interface utilisateur de Greenspector Studio (dans le menu du compte utilisateur).

  • Le fichier script.testgb qui contient les commandes GDSL.

  • Le fichier definition.yml qui configure la campagne du tableau de bord.

Usage

Exemple de script

Nous avons créé un script appelé measure.sh qui télécharge tous les outils dont vous avez besoin (CLI et Dashboard Campaign), les configure, exécute les mesures et construit le tableau de bord.

Ce script Bash prend en compte plusieurs flags :

  • -a: Le nom de votre application sur le serveur Core (obligatoire)

  • -t: Votre token privé. Vous pouvez récupérer votre token privé à partir de votre page de profil sur le serveur Core. (obligatoire)

  • -m: Le package à surveiller pendant la mesure. (obligatoire)

  • -i: Le nombre d'itérations (par défaut : 1)

  • -v: Le nom de la version (par défaut : la date actuelle au format 31/12/2023 15:13)

  • -s: Le chemin vers le fichier script (par défaut : script.testgb)

  • -l: Indique si le script lance le tableau de bord après la mesure (par défaut : false)

  • -d: Le chemin vers le fichier de définition de la campagne du tableau de bord (par défaut : definition.yml)

  • -e: L'appareil sur lequel vous souhaitez exécuter la mesure (par défaut : mobile::Android::10::Samsung - Galaxy S9)

Par défaut, le script measure.sh renvoie un code d'erreur si votre ecoscore est inférieur à 50. Vous pouvez modifier cette valeur dans le script si vous en ressentez le besoin.

Exécuter une mesure

Maintenant que vous avez correctement installé tous les pré-requis pour notre outil.

  • Créez un projet GitLab si vous n'en avez pas déjà un.

  • Créez trois variables sur Gitlab (Settings > CI/CD) : APPLICATION avec le nom de votre analyse (ou application) et TOKEN avec votre token greenspector et PACKAGE avec le package de votre application ou com.android.chrome si vous mesurez un site web.

gitlab_variables.png
  • Ajoutez simplement un fichier .gitlab-ci.yml (ou modifiez votre fichier .gitlab-ci.yml si vous en avez déjà un) avec ce contenu (modifiez le nom de l'application ($APPLICATION), le token ($TOKEN) et le package ($PACKAGE) à surveiller et ajoutez des drapeaux optionnels si nécessaire) :

image: cfmanteiga/alpine-bash-curl-jq stages: - measure measure: stage: measure script: - mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 # Only if you use an alpine image. - chmod +x measure.sh - ./measure.sh -a "$APPLICATION" -t "$TOKEN" -m "$PACKAGE" only: - tags artifacts: paths: - greenspector/site expire_in: 1 day

NB: Si vous utilisez docker pour exécuter votre CI, vous pouvez utiliser une image docker publique qui est livrée avec curl et jq déjà installés comme cfmanteiga/alpine-bash-curl-jq. La seule chose dont vous aurez besoin (s'il s'agit d'une image alpine) est de lier la bibliothèque utilisée par Greenspector CLI. Cela se fait simplement en ajoutant la ligne mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 dans votre fichier .gitlab-ci.yml avant d'utiliser nos outils.

  • Désormais, chaque fois que vous créerez une nouvelle balise sur votre projet, une mesure sera exécutée sur Greenspector Power Test Cloud.

Par défaut, le script se termine par un code d'erreur en cas de problème. Code d'erreur 1 s'il y a un problème avec les paramètres d'entrée, 2 s'il y a un problème pour lancer la mesure, 3 si certains tests GDSL ont échoué, 4 s'il y a un problème avec la construction du tableau de bord, 5 si l'ecoscore est inférieur à 50. Vous pouvez modifier cela dans le script measure.sh

Exécuter une mesure et générer un tableau de bord

Vous pouvez générer un tableau de bord après la mesure si vous disposez d'une définition pour l'outil de campagne de tableau de bord. Par exemple :

- ./measure.sh -a "$APPLICATION" -t "$TOKEN" -m "$PACKAGE" -l true -d ./mydefinition.yml

Par défaut, si ecoscore est inférieur à 50, le script a échoué, vous pouvez changer la valeur au début du script measure.sh.

A la fin d’une exécution réussie, vous pourrez télécharger une archive contenant les fichiers HTML, JS et CSS du tableau de bord.