GitLab CI/CDでBencherを使用する方法


あなたのユースケースに応じて、次のためにGitLab CI/CDで継続的ベンチマーキングを設定できます:

🐰 APIトークンを作成して、 それをBENCHER_API_TOKENという名前のマスクされた変数として設定しておくことを忘れないでください! あなたのリポジトリ -> 設定 -> CI/CD -> 変数 -> 展開 -> 変数を追加に進んでください。 変数のキーはBENCHER_API_TOKENであり、変数の値はあなたのAPIトークンである必要があります。 変数を保護する変数をマスクするの両方のチェックボックスを選択してください。

ターゲットブランチ

統計的連続ベンチマーキングの基石は、ターゲットブランチの歴史的基準を持つことです。 この歴史的基準を使用して、マージリクエスト内のパフォーマンスの退行を検出することができます。

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. GitLab CI/CDファイルを作成します。 (例: .gitlab-ci.yml)
  2. GitLab CI/CDジョブを作成します。 (例: benchmark_target_branch)
  3. パイプラインがmainブランチへのpushによってトリガーされた場合に実行します。 GitLab CI/CD rulesドキュメントGitLab CI/CD定義済み変数のドキュメントを完全に概観する。 (例: rules: - if: ...)
  4. ジョブが実行されるimageを設定します。 GitLab CI/CD imageドキュメントを参照してください。 (例: image: debian:bullseye)
  5. 便利なスクリプトを使用してBencher CLIをインストールします。 (例: before_script: ...)
  6. bencher run CLIサブコマンドを使用して mainブランチのベンチマークを実行します。 the bencher run CLI subcommand を完全に概観する。 (例: bencher run)
  7. --projectオプションをプロジェクトスラグに設定します。 the --project docsを詳しく見る。 (例: --project save-walter-white-1234abcd)
  8. --tokenオプションをマスクされたBENCHER_API_TOKEN環境変数に設定します。 the --token docsを詳しく見る。 (例: --token "$BENCHER_API_TOKEN")
  9. --branchオプションをブランチ名に設定します。 branch selectionを完全に概観する。 (例: --branch main)
  10. --testbedオプションをテストベッド名に設定します。 これは、imageで選択したマシンと一致することが望ましいです。 the --testbed docsを詳しく見る。 (例: --testbed debian:bullseye)
  11. 希望するベンチマークハーネスアダプターを--adapterオプションに設定します。 benchmark harness adaptersを完全に概観する。 (例: --adapter json)
  12. アラートが生成された場合にコマンドを失敗させるために--errフラグを設定します。 Threshold & Alertsを完全に概観する。 (例: --err)
  13. ベンチマークコマンド引数を指定します。 benchmark commandを完全に概観する。 (例: bencher mock)

マージリクエスト

マージリクエストでパフォーマンス回帰をキャッチするためには、MRでベンチマークを実行する必要があります。 以下の例は同じリポジトリ内のブランチにのみ使用してください。

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" \
--branch-reset \
--testbed debian:bullseye \
--adapter json \
--err \
bencher mock
  1. GitLab CI/CDファイルを作成または更新する。 (例: .gitlab-ci.yml
  2. GitLab CI/CDジョブを作成する。 (例: benchmark_mr_branch
  3. パイプラインがmerge_request_eventによってトリガーされた場合にifを実行する。 完全な概要については、GitLab CI/CD rules ドキュメントGitLab CI/CD事前定義変数のドキュメントを参照してください。 (例: rules: - if: ...
  4. ジョブが実行されるimageを設定する。 完全な概要については、GitLab CI/CD image ドキュメントを参照してください。 (例: image: debian:bullseye
  5. 便利なスクリプトを使用してBencher CLIをインストールする。 (例: before_script: ...
  6. bencher run CLIサブコマンドを使用して、マージリクエストブランチのベンチマークを実行する。 完全な概要については、bencher run CLIサブコマンドを参照してください。 (例: bencher run
  7. --project オプションをプロジェクトスラッグに設定する。 詳細は--project ドキュメントを参照してください。 (例: --project save-walter-white-1234abcd
  8. --token オプションをマスクされたBENCHER_API_TOKEN環境変数に設定する。 詳細は--token ドキュメントを参照してください。 (例: --token "$BENCHER_API_TOKEN"
  9. --branch オプションをGitLab CI/CDの事前定義変数を使用してMRブランチ名に設定する。 完全な概要については、--branch 分岐選択を参照してください。 (例: --branch "$CI_COMMIT_REF_NAME"
  10. --branch-start-point オプションをGitLab CI/CDの事前定義変数を使用してMRターゲットブランチのスタートポイントに設定する。 完全な概要については、--branch-start-point 分岐選択を参照してください。 (例: --branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
  11. --branch-start-point-hash オプションをGitLab CI/CDの事前定義変数を使用してMRターゲットブランチのスタートポイントハッシュに設定する。 完全な概要については、--branch-start-point-hash 分岐選択を参照してください。 (例: --branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
  12. --branch-reset フラグを設定して、常にブランチをスタートポイントにリセットする。 これにより、ベンチマークデータのドリフトが防止されます。 完全な概要については、--branch-reset 分岐選択を参照してください。 (例: --branch-reset
  13. --testbed オプションをテストベッド名に設定する。 これは、おそらくimageで選択されたマシンと一致する必要があります。 詳細は--testbed ドキュメントを参照してください。 (例: --testbed debian:bullseye
  14. --adapter オプションを希望するベンチマークハーネスアダプタに設定する。 完全な概要については、ベンチマークハーネスアダプタを参照してください。 (例: --adapter json
  15. --err フラグを設定して、アラートが生成された場合にコマンドを失敗させる。 完全な概要については、しきい値とアラートを参照してください。 (例: --err
  16. ベンチマークコマンドの引数を指定する。 完全な概要については、ベンチマークコマンドを参照してください。 (例: bencher mock


🐰 おめでとうございます!GitLab CI/CDでBencherを使用する方法を学びました!🎉


続けてください:ベンチマーキング概要 ➡

🤖 このドキュメントは OpenAI GPT-4 によって自動的に生成されました。 正確ではない可能性があり、間違いが含まれている可能性があります。 エラーを見つけた場合は、GitHub で問題を開いてください。.


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