Sélection de branche avec bencher run
Une branche est la référence git (c’est-à-dire le nom de la branche ou le tag).
Lors de l’utilisation de la sous-commande CLI bencher run,
sélectionnez une branche avec l’option --branch ou la variable d’environnement BENCHER_BRANCH.
Le hachage git actuel peut aussi être spécifié avec l’option --hash.
Si une branche n’est pas spécifiée, alors le nom de la branche git actuel est utilisé si disponible.
Sinon, main est utilisé comme branche par défaut.
De même, si le hachage git n’est pas spécifié, alors le hachage git actuel est utilisé s’il est disponible.
Lors de l’évaluation continue, c’est-à-dire l’évaluation dans CI,
vous souhaiterez souvent créer ou repositionner une branche sur une branche existante.
Cela s’appelle un point de départ de branche.
Un point de départ est une autre branche à une version spécifique (et un hachage git, si disponible).
Lors de l’utilisation de la sous-commande CLI bencher run,
sélectionnez un point de départ avec l’option --start-point.
En outre, utilisez l’option --start-point-hash pour spécifier un hachage git spécifique pour le point de départ.
La quantité de données copiée depuis le point de départ est contrôlée avec l’option --start-point-max-versions.
De même, les seuils peuvent être copiés depuis le point de départ avec le drapeau --start-point-clone-thresholds.
Pour prévenir les divergences, utilisez le drapeau --start-point-reset pour toujours réinitialiser la branche au point de départ.
--branch <BRANCH>
Pour sélectionner une branche, utilisez l’option --branch ou la variable d’environnement BENCHER_BRANCH avec le nom, le slug ou l’UUID de la branche. Si la valeur spécifiée est un nom ou un slug et que la branche n’existe pas encore, elle sera créée pour vous. Cependant, si la valeur spécifiée est un UUID, la branche doit déjà exister. Si les deux sont spécifiés, l’option --branch prend le pas sur la variable d’environnement BENCHER_BRANCH.
Si ni l’un ni l’autre ne sont spécifiés, le CLI de Bencher tente de trouver la branche git actuelle. Il commence par chercher un dépôt git dans le répertoire de travail actuel. En cas d’échec, il continue vers le répertoire parent et réessaye jusqu’au répertoire racine. Si un dépôt git est trouvé, alors le nom court de la branche actuelle est utilisé. Cependant, si aucun dépôt git n’est trouvé, alors main est utilisé comme branche par défaut.
--hash <HASH>
Un hash de commit SHA-1 de 40 caractères. Si deux rapports ont la même branche et hash, ils seront considérés comme provenant du même commit. Donc, ils auront le même numéro de version de branche.
Si non fourni, le CLI Bencher essaie de trouver le hash git actuel. Il commence par rechercher un dépôt git dans le répertoire de travail actuel. Si cela ne réussit pas, il continue vers son répertoire parent et réessaie jusqu’au répertoire racine. Si un dépôt git est trouvé, alors le hash git de la tête de la branche actuelle est utilisé.
--start-point <BRANCH>
Utilisez le nom de branche, le slug ou l’UUID spécifié comme point de départ pour l’option branch.
Pour GitHub, il s’agit généralement de la branche base pour une Pull Request,
et pour GitLab, il s’agit généralement de la branche target pour une Merge Request.
Le cas d’utilisation principal de --start-point est le Benchmarking Continu Statistique.
- Si le point de départ spécifié est une chaîne vide, cette option est ignorée.
- Si
branchn’existe pas, elle sera créée en utilisant ce point de départ. - Si
branchexiste et que le point de départ est le même, cette option est ignorée. - Si
branchexiste et que le point de départ est différent, une nouvelle tête debranchsera créée en utilisant ce point de départ mis à jour. - Si
branchn’existe pas et que le point de départ n’existe pas, alorsbranchsera créée sans aucune donnée historique. - Si
branchexiste et que le point de départ n’existe pas, alors cette option est ignorée.
Si une nouvelle branch est créée avec un point de départ,
alors les données les plus récentes et éventuellement les seuils du point de départ spécifié sont copiés.
Voir l’option --start-point-max-versions et l’option --start-point-clone-thresholds pour plus de détails.
Par exemple, si feature_branch n’existe pas encore, mais que main existe et possède des données historiques.
Alors utiliser --branch feature_branch --start-point main ferait :
- Créer une nouvelle branche nommée
feature_branch - Copier les données les plus récentes de
mainversfeature_branch bencher runcontinuerait en utilisantfeature_branch
🐰 Remarque : Lors de l’utilisation de variables d’environnement, elles doivent être entourées de guillemets doubles (par exemple
--start-point "$MY_BRANCH_ENV_VAR"), si vous souhaitez quebencher runne génère pas d’erreur lorsqueMY_BRANCH_ENV_VARn’est pas défini.
--start-point-hash <HASH>
Utilisez le hash Git complet spécifié comme Point de départ pour l’option branch.
Cette option nécessite que l’option --start-point soit définie.
- Si
branchn’existe pas, il sera créé à partir destart-pointau hash spécifié. - Si
branchexiste et questart-pointet le hash spécifié sont identiques, alors cette option est ignorée. - Si
branchexiste et que soitstart-pointsoit le hash spécifié est différent, une nouvelle Tête debranchsera créée à partir destart-pointau hash spécifié. - Si
branchn’existe pas et questart-pointn’existe pas au hash spécifié, alors lebranchsera créé sans aucune donnée historique. - Si
branchexiste et questart-pointn’existe pas au hash spécifié, alors cette option est ignorée.
Si un nouveau branch est créé avec un Point de Départ,
alors toutes les données les plus récentes et éventuellement les Seuils du start-point au hash spécifié sont copiées.
Voir l’option --start-point-max-versions et l’option --start-point-clone-thresholds pour plus de détails.
Par exemple, si feature_branch existe avec son Point de Départ étant la Branche main
au hash 32aea434d751648726097ed3ac760b57107edd8b
alors l’utilisation de --branch feature_branch --start-point main --start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562
effectuerait :
- Supprimer l’ancienne Tête de
feature_branch - Créer une nouvelle Tête de
feature_branch - Copier toutes les données les plus récentes de
mainau hash68b12758509ca5e2b1e3983525625e532eb5f562vers la nouvelle Tête defeature_branch bencher runse déroulerait ensuite en utilisant la nouvelle Tête defeature_branch
--start-point-max-versions <COUNT>
Utilisez le nombre maximal spécifié de versions historiques de branches à inclure
à partir du Point de Départ pour l’option branch.
Toutes les versions au-delà de ce nombre seront omises.
Par défaut, il y a 255 versions.
Cette option nécessite que l’option --start-point soit définie.
Par exemple, si feature_branch existe avec son Point de Départ étant la branche main
et que main a 300 versions,
alors utiliser --branch feature_branch --start-point main --start-point-max-versions 100
n’inclurait que les 100 versions les plus récentes de main dans feature_branch.
--start-point-clone-thresholds
Clone tous les Seuils du Point de Départ pour l’option branche.
Ce drapeau nécessite que l’option --start-point soit définie.
- Si un Seuil n’existe pas, il sera créé à partir du Seuil
point de départ. - Si un Seuil existe et qu’il est identique au Seuil
point de départ, alors ce Seuil est effectivement ignoré. - Si un Seuil existe et que son modèle est différent de celui du Seuil
point de départ, alors l’ancien modèle sera remplacé par le modèle du Seuilpoint de départ. - Si un Seuil existe et que le Seuil
point de départn’existe pas, alors le modèle du Seuil est supprimé.
Par exemple, si feature_branch existe avec son Point de Départ étant la Branche main et que main a un Seuil pour le Banc d’Essai intégré localhost et la Mesure de latence,
alors utiliser --branch feature_branch --start-point main --start-point-clone-thresholds créerait un nouveau Seuil pour feature_branch avec le Banc d’Essai localhost et la Mesure de latence.
--start-point-reset
Réinitialise la branche spécifiée. Lorsque l’option --start-point est définie, la branche sera réinitialisée au Point de Départ spécifié. Cela est utile pour prévenir la dérive dans les données de Benchmarking Statistique Continu. Le principal cas d’utilisation de --start-point-reset sans spécifier de Point de Départ est le Benchmarking Continu Relatif.
- Si la
branchen’existe pas et qu’aucun Point de Départ n’est spécifié, labranchesera créée sans aucune donnée historique. - Si la
brancheexiste et qu’aucun Point de Départ n’est spécifié, une nouvelle Tête debranchesera créée sans aucune donnée historique. - Si la
branchen’existe pas et qu’un Point de Départ est spécifié, labranchesera créée en utilisant le Point de Départ. - Si la
brancheexiste et qu’un Point de Départ est spécifié, une nouvelle Tête debranchesera créée en utilisant le Point de Départ.
Si une nouvelle branche est créée avec un Point de Départ, alors toutes les données les plus récentes et éventuellement les Seuils du start-point au hachage spécifié sont copiés. Voir l’option --start-point-max-versions et l’option --start-point-clone-thresholds pour plus de détails.
Par exemple, si feature_branch existe sans Point de Départ, alors utiliser --branch feature_branch --start-point-reset ferait :
- Supprimer l’ancienne Tête de
feature_branch - Créer une nouvelle Tête de
feature_branchsans aucune donnée historique bencher runcontinuerait alors en utilisant la nouvelle Têtefeature_branch
🐰 Félicitations ! Vous avez appris tout ce qu’il faut savoir sur la sélection de branches ! 🎉