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
- GitLab CI/CDファイルを作成します。
(例:
.gitlab-ci.yml
) - GitLab CI/CDジョブを作成します。
(例:
benchmark_target_branch
) - パイプラインが
main
ブランチへのpush
によってトリガーされた場合に実行します。 GitLab CI/CDrules
ドキュメントと GitLab CI/CD定義済み変数のドキュメントを完全に概観する。 (例:rules: - if: ...
) - ジョブが実行される
image
を設定します。 GitLab CI/CDimage
ドキュメントを参照してください。 (例:image: debian:bullseye
) - 便利なスクリプトを使用してBencher CLIをインストールします。
(例:
before_script: ...
) bencher run
CLIサブコマンドを使用してmain
ブランチのベンチマークを実行します。 thebencher run
CLI subcommand を完全に概観する。 (例:bencher run
)--project
オプションをプロジェクトスラグに設定します。 the--project
docsを詳しく見る。 (例:--project save-walter-white-1234abcd
)--token
オプションをマスクされたBENCHER_API_TOKEN
環境変数に設定します。 the--token
docsを詳しく見る。 (例:--token "$BENCHER_API_TOKEN"
)--branch
オプションをブランチ名に設定します。 branch selectionを完全に概観する。 (例:--branch main
)--testbed
オプションをテストベッド名に設定します。 これは、image
で選択したマシンと一致することが望ましいです。 the--testbed
docsを詳しく見る。 (例:--testbed debian:bullseye
)- 希望するベンチマークハーネスアダプターを
--adapter
オプションに設定します。 benchmark harness adaptersを完全に概観する。 (例:--adapter json
) - アラートが生成された場合にコマンドを失敗させるために
--err
フラグを設定します。 Threshold & Alertsを完全に概観する。 (例:--err
) - ベンチマークコマンド引数を指定します。
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
- GitLab CI/CDファイルを作成または更新する。
(例:
.gitlab-ci.yml
) - GitLab CI/CDジョブを作成する。
(例:
benchmark_mr_branch
) - パイプラインが
merge_request_event
によってトリガーされた場合にif
を実行する。 完全な概要については、GitLab CI/CDrules
ドキュメントとGitLab CI/CD事前定義変数のドキュメントを参照してください。 (例:rules: - if: ...
) - ジョブが実行される
image
を設定する。 完全な概要については、GitLab CI/CDimage
ドキュメントを参照してください。 (例:image: debian:bullseye
) - 便利なスクリプトを使用してBencher CLIをインストールする。
(例:
before_script: ...
) bencher run
CLIサブコマンドを使用して、マージリクエストブランチのベンチマークを実行する。 完全な概要については、bencher run
CLIサブコマンドを参照してください。 (例:bencher run
)--project
オプションをプロジェクトスラッグに設定する。 詳細は--project
ドキュメントを参照してください。 (例:--project save-walter-white-1234abcd
)--token
オプションをマスクされたBENCHER_API_TOKEN
環境変数に設定する。 詳細は--token
ドキュメントを参照してください。 (例:--token "$BENCHER_API_TOKEN"
)--branch
オプションをGitLab CI/CDの事前定義変数を使用してMRブランチ名に設定する。 完全な概要については、--branch
分岐選択を参照してください。 (例:--branch "$CI_COMMIT_REF_NAME"
)--branch-start-point
オプションをGitLab CI/CDの事前定義変数を使用してMRターゲットブランチのスタートポイントに設定する。 完全な概要については、--branch-start-point
分岐選択を参照してください。 (例:--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
)--branch-start-point-hash
オプションをGitLab CI/CDの事前定義変数を使用してMRターゲットブランチのスタートポイントハッシュに設定する。 完全な概要については、--branch-start-point-hash
分岐選択を参照してください。 (例:--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
)--branch-reset
フラグを設定して、常にブランチをスタートポイントにリセットする。 これにより、ベンチマークデータのドリフトが防止されます。 完全な概要については、--branch-reset
分岐選択を参照してください。 (例:--branch-reset
)--testbed
オプションをテストベッド名に設定する。 これは、おそらくimage
で選択されたマシンと一致する必要があります。 詳細は--testbed
ドキュメントを参照してください。 (例:--testbed debian:bullseye
)--adapter
オプションを希望するベンチマークハーネスアダプタに設定する。 完全な概要については、ベンチマークハーネスアダプタを参照してください。 (例:--adapter json
)--err
フラグを設定して、アラートが生成された場合にコマンドを失敗させる。 完全な概要については、しきい値とアラートを参照してください。 (例:--err
)- ベンチマークコマンドの引数を指定する。
完全な概要については、ベンチマークコマンドを参照してください。
(例:
bencher mock
)
🐰 おめでとうございます!GitLab CI/CDでBencherを使用する方法を学びました!🎉
続けてください:ベンチマーキング概要 ➡
🤖 このドキュメントは OpenAI GPT-4 によって自動的に生成されました。 正確ではない可能性があり、間違いが含まれている可能性があります。 エラーを見つけた場合は、GitHub で問題を開いてください。.