Comment utiliser Bencher dans GitLab CI/CD
Selon votre cas dâutilisation, vous pouvez configurer le Benchmarking Continu dans GitLab CI/CD pour votre :
đ° Assurez-vous dâavoir crĂ©Ă© un jeton dâAPI et de lâavoir dĂ©fini comme une variable masquĂ©e nommĂ©e
BENCHER_API_TOKEN
avant de continuer ! Naviguez versVotre DĂ©pĂŽt -> ParamĂštres -> CI/CD -> Variables -> DĂ©plier -> Ajouter une variable
. La clĂ© de la variable doit ĂȘtreBENCHER_API_TOKEN
et la valeur de la variable doit ĂȘtre votre jeton dâAPI. Cochez les casesProtĂ©ger la variable
etMasquer la variable
.
Branche Cible
La pierre angulaire du Benchmarking Continu Statistique est dâavoir une base historique pour votre branche cible. Cette base historique peut ensuite ĂȘtre utilisĂ©e pour dĂ©tecter les rĂ©gressions de performance dans les Demandes de Fusion.
- Créez un fichier CI/CD GitLab.
(ex:
.gitlab-ci.yml
) - Créez un travail CI/CD GitLab.
(ex:
benchmark_target_branch
) - Exécutez
if
le pipeline a été déclenché par unpush
sur la branchemain
. Consultez la documentation desrules
CI/CD GitLab et la documentation des variables prédéfinies CI/CD GitLab pour un aperçu complet. (ex:rules: - if: ...
) - DĂ©finissez lâ
image
dans laquelle le travail sera exĂ©cutĂ©. Consultez la documentation de lâimage
CI/CD GitLab pour un aperçu complet. (ex:image: debian:bullseye
) - Installez le CLI Bencher en utilisant le script pratique.
(ex:
before_script: ...
) - Utilisez la sous-commande CLI
bencher run
pour exécuter vos benchmarks de la branchemain
. Consultez la sous-commande CLIbencher run
pour un aperçu complet. (ex:bencher run
) - DĂ©finissez lâoption
--project
comme slug du Projet. Consultez la documentation de--project
pour plus de détails. (ex:--project save-walter-white-1234abcd
) - DĂ©finissez lâoption
--token
comme variable dâenvironnement masquĂ©eBENCHER_API_TOKEN
. Consultez la documentation de--token
pour plus de détails. (ex:--token "$BENCHER_API_TOKEN"
) - DĂ©finissez lâoption
--branch
comme nom de la Branche. Consultez la sélection de branche pour un aperçu complet. (ex:--branch main
) - DĂ©finissez lâoption
--testbed
comme nom du Banc dâessai. Cela devrait probablement correspondre Ă la machine sĂ©lectionnĂ©e dansimage
. Consultez la documentation de--testbed
pour plus de détails. (ex:--testbed debian:bullseye
) - DĂ©finissez lâoption
--adapter
comme lâadaptateur de harnais de benchmark dĂ©sirĂ©. Consultez les adaptateurs de harnais de benchmark pour un aperçu complet. (ex:--adapter json
) - DĂ©finissez le drapeau
--err
pour faire échouer la commande si une Alerte est générée. Consultez Seuils & Alertes pour un aperçu complet. (ex:--err
) - Spécifiez les arguments de commande de benchmark.
Consultez la commande de benchmark pour un aperçu complet.
(ex:
bencher mock
)
Demandes de Fusion
Afin de dĂ©tecter les rĂ©gressions de performance dans les Demandes de Fusion, vous devrez exĂ©cuter vos benchmarks sur les MRs. Lâexemple ci-dessous ne doit ĂȘtre utilisĂ© que pour les branches au sein du mĂȘme dĂ©pĂŽt.
- Créez ou mettez à jour un fichier GitLab CI/CD.
(ex:
.gitlab-ci.yml
) - Créez un job GitLab CI/CD.
(ex:
benchmark_mr_branch
) - Exécutez
if
si le pipeline a été déclenché par unmerge_request_event
. Consultez la documentation desrules
GitLab CI/CD et la documentation des variables prédéfinies GitLab CI/CD pour un aperçu complet. (ex:rules: - if: ...
) - DĂ©finissez lâ
image
dans laquelle le job sâexĂ©cutera. Consultez la documentation desimage
GitLab CI/CD pour un aperçu complet. (ex:image: debian:bullseye
) - Installez le CLI de Bencher en utilisant le script pratique.
(ex:
before_script: ...
) - Utilisez la sous-commande
bencher run
du CLI pour exécuter vos benchmarks de branche de demande de fusion. Consultez la sous-commandebencher run
du CLI pour un aperçu complet. (ex:bencher run
) - DĂ©finissez lâoption
--project
au slug du projet. Consultez la documentation--project
pour plus de détails. (ex:--project save-walter-white-1234abcd
) - DĂ©finissez lâoption
--token
Ă la variable dâenvironnement masquĂ©eBENCHER_API_TOKEN
. Consultez la documentation--token
pour plus de détails. (ex:--token "$BENCHER_API_TOKEN"
) - DĂ©finissez lâoption
--branch
au nom de la branche MR en utilisant une variable prédéfinie GitLab CI/CD. Consultez la sélection de branche pour un aperçu complet. (ex:--branch "$CI_COMMIT_REF_NAME"
) - DĂ©finissez lâoption
--branch-start-point
au point de départ de la branche cible de la MR en utilisant une variable prédéfinie GitLab CI/CD. Consultez la sélection de branche pour un aperçu complet. (ex:--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
) - DĂ©finissez lâoption
--branch-start-point-hash
au hash du point de départ de la branche cible de la MR en utilisant une variable prédéfinie GitLab CI/CD. Consultez la sélection de branche pour un aperçu complet. (ex:--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
) - DĂ©finissez lâoption
--branch-reset
pour rĂ©initialiser toujours la branche au point de dĂ©part. Cela empĂȘchera la dĂ©rive des donnĂ©es de benchmark. Consultez la sĂ©lection de branche pour un aperçu complet. (ex:--branch-reset
) - DĂ©finissez lâoption
--testbed
au nom du Testbed. Cela devrait probablement correspondre Ă la machine sĂ©lectionnĂ©e dans lâimage
. Consultez la documentation--testbed
pour plus de détails. (ex:--testbed debian:bullseye
) - DĂ©finissez lâoption
--adapter
Ă lâadaptateur de harnais de benchmark souhaitĂ©. Consultez les adaptateurs de harnais de benchmark pour un aperçu complet. (ex:--adapter json
) - DĂ©finissez lâoption
--err
pour échouer à la commande si une alerte est générée. Consultez Seuils & Alertes pour un aperçu complet. (ex:--err
) - Spécifiez les arguments de commande de benchmark.
Consultez la commande de benchmark pour un aperçu complet.
(ex:
bencher mock
)
đ° FĂ©licitations ! Vous avez appris Ă utiliser Bencher dans GitLab CI/CD ! đ