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" \
--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 "$CI_COMMIT_REF_NAME")
  10. GitLab CI/CD事前定義変数を使用して MRターゲットブランチの開始地点に--branch-start-pointオプションを設定します。 ブランチ選択の詳細を参照してください。 (例: --branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME")
  11. GitLab CI/CD事前定義変数を使用して MRターゲットブランチの開始地点ハッシュに--branch-start-point-hashオプションを設定します。 ブランチ選択の詳細を参照してください。 (例: --branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA")
  12. --testbedオプションをテストベッド名に設定します。 これはimageで選択されたマシンと一致する必要があります。 --testedドキュメントを詳しく見てください。 (例: --testbed debian:bullseye)
  13. --adapterオプションを望ましいベンチマークハーネスアダプタに設定します。 ベンチマークハーネスアダプターの完全な概要を参照してください。 (例: --adapter json)
  14. 警告が生成された場合にコマンドの失敗を意味する--errフラグを設定します。 しきい値とアラートの完全な概要を参照してください。 (例: --err)
  15. ベンチマークコマンド引数を指定します。 ベンチマークコマンドの完全な概要を参照してください。 (例: 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