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
Pour dĂ©tecter une rĂ©gression 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éer ou mettre à jour un fichier GitLab CI/CD.
(ex :
.gitlab-ci.yml
) - Créer un travail GitLab CI/CD.
(ex :
benchmark_mr_branch
) - Exécuter
if
le pipeline a été déclenché par unmerge_request_event
. Voir la documentation desrĂšgles
GitLab CI/CD et la documentation des variables prédéfinies GitLab CI/CD pour un aperçu complet. (ex :rules: - if: ...
) - DĂ©finir lâ
image
dans laquelle le travail sera exĂ©cutĂ©. Voir la documentation de lâimage
GitLab CI/CD pour un aperçu complet. (ex :image: debian:bullseye
) - Installer le CLI Bencher en utilisant le script pratique.
(ex :
before_script: ...
) - Utiliser la sous-commande CLI
bencher run
pour exécuter vos benchmarks de la branche de demande de fusion. Voir la sous-commande CLIbencher run
pour un aperçu complet. (ex :bencher run
) - DĂ©finir lâoption
--project
au slug du projet. Voir la documentation de lâoption--project
pour plus de détails. (ex :--project save-walter-white-1234abcd
) - DĂ©finir lâoption
--token
Ă la variable dâenvironnementBENCHER_API_TOKEN
masquĂ©e. Voir la documentation de lâoption--token
pour plus de détails. (ex :--token "$BENCHER_API_TOKEN"
) - DĂ©finir lâoption
--branch
au nom de la branche MR en utilisant une variable prédéfinie GitLab CI/CD. Voir sélection de branche pour un aperçu complet. (ex :--branch "$CI_COMMIT_REF_NAME"
) - DĂ©finir lâoption
--branch-start-point
au point de départ de la branche cible MR en utilisant une variable prédéfinie GitLab CI/CD. Voir sélection de branche pour un aperçu complet. (ex :--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
) - DĂ©finir lâoption
--branch-start-point-hash
au hash du point de départ de la branche cible MR en utilisant une variable prédéfinie GitLab CI/CD. Voir sélection de branche pour un aperçu complet. (ex :--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
) - DĂ©finir lâoption
--testbed
au nom du banc dâessai. Cela devrait probablement correspondre Ă la machine sĂ©lectionnĂ©e dansimage
. Voir la documentation de lâoption--testbed
pour plus de détails. (ex :--testbed debian:bullseye
) - DĂ©finir lâoption
--adapter
Ă lâadaptateur de harnais de benchmark souhaitĂ©. Voir adaptateurs de harnais de benchmark pour un aperçu complet. (ex :--adapter json
) - DĂ©finir le drapeau
--err
pour échouer la commande si une Alert est générée. Voir Seuils & Alertes pour un aperçu complet. (ex :--err
) - Spécifier les arguments de la commande de benchmark.
Voir commande de benchmark pour un aperçu complet.
(ex :
bencher mock
)
đ° FĂ©licitations ! Vous avez appris Ă utiliser Bencher dans GitLab CI/CD ! đ