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
branch
n’existe pas, elle sera créée en utilisant ce point de départ. - Si
branch
existe et que le point de départ est le même, cette option est ignorée. - Si
branch
existe et que le point de départ est différent, une nouvelle tête debranch
sera créée en utilisant ce point de départ mis à jour. - Si
branch
n’existe pas et que le point de départ n’existe pas, alorsbranch
sera créée sans aucune donnée historique. - Si
branch
existe 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
main
versfeature_branch
bencher run
continuerait 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 run
ne génère pas d’erreur lorsqueMY_BRANCH_ENV_VAR
n’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
branch
n’existe pas, il sera créé à partir destart-point
au hash spécifié. - Si
branch
existe et questart-point
et le hash spécifié sont identiques, alors cette option est ignorée. - Si
branch
existe et que soitstart-point
soit le hash spécifié est différent, une nouvelle Tête debranch
sera créée à partir destart-point
au hash spécifié. - Si
branch
n’existe pas et questart-point
n’existe pas au hash spécifié, alors lebranch
sera créé sans aucune donnée historique. - Si
branch
existe et questart-point
n’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
main
au hash68b12758509ca5e2b1e3983525625e532eb5f562
vers la nouvelle Tête defeature_branch
bencher run
se 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épart
n’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
branche
n’existe pas et qu’aucun Point de Départ n’est spécifié, labranche
sera créée sans aucune donnée historique. - Si la
branche
existe et qu’aucun Point de Départ n’est spécifié, une nouvelle Tête debranche
sera créée sans aucune donnée historique. - Si la
branche
n’existe pas et qu’un Point de Départ est spécifié, labranche
sera créée en utilisant le Point de Départ. - Si la
branche
existe et qu’un Point de Départ est spécifié, une nouvelle Tête debranche
sera 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_branch
sans aucune donnée historique bencher run
continuerait 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 ! 🎉