Wie man Bencher in GitLab CI/CD verwendet


Je nach Ihrem Anwendungsfall k├Ânnen Sie das kontinuierliche Benchmarking in GitLab CI/CD f├╝r Ihre einrichten:

­čÉ░ Stellen Sie sicher, dass Sie einen API-Token erstellt haben und setzen Sie ihn als maskierte Variable mit dem Namen BENCHER_API_TOKEN, bevor Sie weitermachen! Navigieren Sie zu Ihr Repo -> Einstellungen -> CI/CD -> Variablen -> Erweitern -> Variable hinzuf├╝gen. Der Variablenschl├╝ssel sollte BENCHER_API_TOKEN und der Variablenwert sollte Ihr API-Token sein. Aktivieren Sie beide Kontrollk├Ąstchen Variablen sch├╝tzen und Variable maskieren.

Zielbranch

Ein Grundpfeiler des Statistischen Kontinuierlichen Benchmarkings ist eine historische Basislinie f├╝r Ihren Zielbranch zu haben. Diese historische Basislinie kann dann verwendet werden, um Leistungsregressionen in Merge Requests zu erkennen.

benchmark_target_branch:
rules:
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
when: always
image: debian:bullseye
before_script:
- curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | sh
script:
- |
bencher run \
--project save-walter-white-1234abcd \
--token "$BENCHER_API_TOKEN" \
--branch main \
--testbed debian:bullseye \
--adapter json \
--err \
bencher mock
  1. Erstellen Sie eine GitLab CI/CD-Datei. (z.B.: .gitlab-ci.yml)
  2. Erstellen Sie einen GitLab CI/CD-Job. (z.B.: benchmark_target_branch)
  3. F├╝hren Sie if das Pipeline durch einen push auf den main-Branch ausgel├Âst wurde. Siehe die GitLab CI/CD rules Dokumentation und GitLab CI/CD vordefinierte Variablen Dokumentation f├╝r einen kompletten ├ťberblick. (z.B.: rules: - if: ...)
  4. Stellen Sie das image ein, in dem der Job ausgef├╝hrt wird. Siehe die GitLab CI/CD image Dokumentation f├╝r einen kompletten ├ťberblick. (z.B.: image: debian:bullseye)
  5. Installieren Sie das Bencher CLI mithilfe des Convenience-Skripts. (z.B.: before_script: ...)
  6. Verwenden Sie das bencher run CLI-Unterbefehl um Ihre Benchmarks des main-Branchs auszuf├╝hren. Siehe den bencher run CLI-Unterbefehl f├╝r einen kompletten ├ťberblick. (z.B.: bencher run)
  7. Stellen Sie die Option --project auf den Projektslug ein. Siehe die --project Docs f├╝r mehr Details. (z.B.: --project save-walter-white-1234abcd)
  8. Stellen Sie die Option --token auf die maskierte BENCHER_API_TOKEN Umgebungsvariable ein. Siehe die --token Docs f├╝r mehr Details. (z.B.: --token "$BENCHER_API_TOKEN")
  9. Stellen Sie die Option --branch auf den Branch-Namen ein. Siehe Branch-Auswahl f├╝r einen kompletten ├ťberblick. (z.B.: --branch main)
  10. Stellen Sie die Option --testbed auf den Namen des Testbeds ein. Dies sollte wahrscheinlich mit der Maschine ├╝bereinstimmen, die in image ausgew├Ąhlt wurde. Siehe die --testbed Docs f├╝r mehr Details. (z.B.: --testbed debian:bullseye)
  11. Stellen Sie die Option --adapter auf den gew├╝nschten Benchmark-Harness-Adapter ein. Siehe Benchmark-Harness-Adapter f├╝r einen kompletten ├ťberblick. (z.B.: --adapter json)
  12. Stellen Sie die Option --err ein, um den Befehl fehlschlagen zu lassen, wenn ein Alert generiert wird. Siehe Schwellenwerte & Alarme f├╝r einen kompletten ├ťberblick. (z.B.: --err)
  13. Geben Sie die Benchmark-Befehlsargumente an. Siehe Benchmark-Befehl f├╝r einen kompletten ├ťberblick. (z.B.: bencher mock)

Merge Requests

Um Leistungsregressionen in Merge Requests zu erkennen, m├╝ssen Sie Ihre Benchmarks auf MRs ausf├╝hren. Das untenstehende Beispiel sollte nur f├╝r Branches innerhalb des gleichen Repositorys verwendet werden.

benchmark_mr_branch:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
image: debian:bullseye
before_script:
- curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | sh
script:
- |
bencher run \
--project save-walter-white-1234abcd \
--token "$BENCHER_API_TOKEN" \
--branch "$CI_COMMIT_REF_NAME" \
--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" \
--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA" \
--testbed debian:bullseye \
--adapter json \
--err \
bencher mock
  1. Erstellen oder aktualisieren Sie eine GitLab CI/CD-Datei. (Bsp.: .gitlab-ci.yml)
  2. Erstellen Sie einen GitLab CI/CD-Job. (Bsp.: benchmark_mr_branch)
  3. F├╝hren Sie es aus if die Pipeline durch ein merge_request_event ausgel├Âst wurde. Siehe die GitLab CI/CD rules Dokumentation und GitLab CI/CD vordefinierte Variablen Dokumentation f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: rules: - if: ...)
  4. Legen Sie das image fest, in dem der Job ausgef├╝hrt wird. Siehe die GitLab CI/CD image Dokumentation f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: image: debian:bullseye)
  5. Installieren Sie die Bencher CLI mit dem Convenience-Script. (Bsp.: before_script: ...)
  6. Verwenden Sie das bencher run CLI-Unterbefehl, um Ihre Merge-Anforderungsbranch-Benchmarks auszuf├╝hren. Siehe den bencher run CLI-Unterbefehl f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: bencher run)
  7. Legen Sie die Option --project auf den Projektslug fest. Siehe die --project Dokumentation f├╝r weitere Details. (Bsp.: --project save-walter-white-1234abcd)
  8. Legen Sie die Option --token auf die maskierte BENCHER_API_TOKEN Umgebungsvariable fest. Siehe die --token Dokumentation f├╝r weitere Details. (Bsp.: --token "$BENCHER_API_TOKEN")
  9. Legen Sie die Option --branch auf den Namen des MR-Branches fest mit einer GitLab CI/CD vordefinierten Variable. Siehe Branch-Auswahl f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: --branch "$CI_COMMIT_REF_NAME")
  10. Legen Sie die Option --branch-start-point auf den Startpunkt des MR-Zielbranches fest mit einer GitLab CI/CD vordefinierten Variable. Siehe Branch-Auswahl f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: --branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME")
  11. Legen Sie die Option --branch-start-point-hash auf den Startpunkthash des MR-Zielbranches fest mit einer GitLab CI/CD vordefinierten Variable. Siehe Branch-Auswahl f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: --branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA")
  12. Legen Sie die Option --testbed auf den Namen des Testbetts fest. Dies sollte wahrscheinlich der Maschine entsprechen, die in image ausgew├Ąhlt wurde. Siehe die --testbed Dokumentation f├╝r weitere Details. (Bsp.: --testbed debian:bullseye)
  13. Legen Sie die Option --adapter auf den gew├╝nschten Benchmark-Harness-Adapter fest. Siehe Benchmark-Harness-Adapter f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: --adapter json)
  14. Setzen Sie das --err Flag, um den Befehl fehlschlagen zu lassen, wenn ein Alarm ausgel├Âst wird. Siehe Schwellenwerte & Alarme f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: --err)
  15. Geben Sie die Benchmark-Befehlsargumente an. Siehe Benchmark-Befehl f├╝r einen vollst├Ąndigen ├ťberblick. (Bsp.: bencher mock)


­čÉ░ Gl├╝ckwunsch! Du hast gelernt, wie man Bencher in GitLab CI/CD verwendet! ­čÄë


Weiter gehtÔÇÖs: ├ťbersicht ├╝ber das Benchmarking Ô×í

­čĄľ Dieses Dokument wurde automatisch von OpenAI GPT-4 generiert. Es ist m├Âglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, ├Âffnen Sie bitte ein Problem auf GitHub.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Mon, April 1, 2024 at 7:00:00 AM UTC