Sélection de branche avec bencher run
Une branche est la référence git
(c’est-à-dire le nom de 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
. Par défaut, tous les projets commencent avec une branche main
, et main
est utilisé par défaut si aucun n’est spécifié.
Lors du benchmarking en continu, c’est-à-dire le benchmarking en CI, vous voudrez souvent créer ou rebaser une branche
sur une branche déjà 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 hash 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
. De plus, utilisez l’option --start-point-hash
pour spécifier un hash git
spécifique pour le point de départ. La quantité de données copiées 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 flag --start-point-clone-thresholds
. Pour éviter la dérive, utilisez le flag --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.
--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 ! 🎉