bencher run CLI サブコマンド


bencher runは最も人気のあるCLIサブコマンドです。 これはベンチマークを実行し、結果を報告するために使用されます。 したがって、それは最も複雑なサブコマンドの一つです。 このページでは、bencher runに渡すことができるオプション、フラグ、引数を説明します。

ベンチマークコマンド

bencher runへの最初で唯一の引数は、オプションのベンチマークコマンドです。 これは実行されるコマンドで、あなたのベンチマークハーネスを呼び出します。 これはまた、BENCHER_CMD環境変数を使って設定することもできます。 コマンドはシェルで実行され、これは--shellオプションと--flagオプションで設定することができます。 その出力はベンチマークハーネスアダプタによって解析され、これは--adapterオプションを使って設定することができます。 ただし、ベンチマークハーネスがファイルに出力する場合は、--fileオプションも使用して出力ファイルパスを指定する必要があります。


🐰 あなたのベンチマークコマンドが複数の単語である場合、それを引用符で囲む必要があります(例 bencher run "bencher mock")。


ベンチマークコマンドは--iterオプションを使って複数回実行することができ、 その結果は--foldオプションを使って一つの結果にまとめることができます。 もし何度かの繰り返しで失敗すると、そのコマンド全体が失敗したと見なされます。ただし、--allow-failureフラグが設定されている場合はそうは見なされません。

ベンチマークコマンドが指定されていないが--fileオプションが指定されている場合、その後bencher runは出力ファイルパスから読み込むでしょう。 ベンチマークコマンドと--fileオプションの両方が指定されていない場合、bencher runは代わりにstdinから読み込むでしょう。 これにより、他のコマンドの出力をファイルに保存したり、それをbencher runにパイプすることができます。

オプション

--project <PROJECT>


--projectオプションまたはBENCHER_PROJECT環境変数のどちらかを 既存のプロジェクトのスラグまたはUUIDに設定する必要があります。 両方が定義されている場合、--projectオプションはBENCHER_PROJECT環境変数に優先します。


--token <TOKEN>


--tokenオプションまたはBENCHER_API_TOKEN環境変数のどちらかを有効なAPIトークンに設定する必要があります。 両方が定義されている場合、--tokenオプションはBENCHER_API_TOKEN環境変数に優先します。


--branch <BRANCH>

--if-branch <IF_BRANCH>

--else-if-branch <ELSE_IF_BRANCH>

--else-branch

--endif-branch


完全な概要については、branch selectionを参照してください。


--hash <HASH>


オプション:40文字のSHA-1コミットハッシュ。 2つのレポートが同じブランチとハッシュを持っている場合、それらは同じコミットから来たものと見なされます。 したがって、それらは同じブランチバージョン番号を持つでしょう。


--testbed <TESTBED>


オプション:--testbedオプションまたはBENCHER_TESTBED環境変数のいずれかを既存のテストベッドのスラグまたはUUIDに設定することができます。 両方が定義されている場合、--testbedオプションはBENCHER_TESTBED環境変数に優先します。 どちらも定義されていない場合、デフォルトのテストベッドとしてlocalhostが使用されます。


--adapter <ADAPTER>

--average <AVERAGE>

--file <FILE>


完全な概要については、benchmark harness adapterを参照してください。


--iter <ITER>


オプション:実行繰り返し数。デフォルトは1です。

--fold <FOLD>


オプション:複数の結果を一つの結果にまとめます。
必要条件:--iterが設定されていること。
可能な値:

  • min: 最小値
  • max: 最大値
  • mean: 値の平均
  • median: 値の中央値

--backdate <DATETIME_SECONDS>


オプション:レポートのバックデート(エポックからの秒数)。 注:これは過去のレポートの並べ替えに影響を及ぼしません! これは、プロジェクトに初めて歴史的データを_時系列_順にシーディングする際に便利です。


--allow-failure


オプション:ベンチマークテストの失敗を許可する。


--err


オプション:アラートが生成されたときにエラーになります。完全な概要については、thresholds and alertsを参照してください。


--html


オプション:結果をHTML形式で出力します。


--ci-with-metrics


オプション:ベンチマークのメトリクスと境界値を表示します。 必要条件: --github-actions


--ci-only-thresholds


オプション:メトリックの種類、ブランチ、テストベッドに対するThresholdが存在する場合にのみ、結果をCIに投稿します。Thresholdが存在しない場合、何も投稿されません。 --github-actionsが必要です。


--ci-only-on-alert


オプション:Alertが生成された場合にのみ、結果の投稿をCIに開始します。 Alertが生成されると、その後の結果もアラートが含まれていなくても投稿されます。 --github-actionsが必要です。



オプション: すべてのリンクはログイン不要の公開URLであるべきです。 必要条件: --github-actions


--ci-id


オプション:CIに結果を投稿するためのカスタムID。 デフォルトでは、Bencherはプロジェクト、ブランチ、テストベッド、Adapterの組み合わせによって自動的に結果を分割します。 同じプロジェクト、ブランチ、テストベッド、アダプタの組み合わせでBencherを同じCIワークフローで複数回実行するときに、カスタムIDを設定することは便利です。 --github-actionsが必要です。


--ci-number


オプション:CIに結果を投稿するための問題番号。 Bencherは結果を投稿するために必要なCIの問題番号を検出するために最善を尽くします。 しかし、これは複雑な設定で、GitHub Actionsのworkflow_runを使用している場合など、常に利用できるわけではありません。 --github-actionsが必要です。


--github-actions


オプション:GitHub API認証トークンを設定します(例 --github-actions ${{ secrets.GITHUB_TOKEN }})。 このオプションが設定されていて、bencher runがプルリクエストの一部としてGitHub Actionsで使用される場合、 結果はプルリクエストにコメントとして追加されます。 これを行う最も便利な方法は、GitHub ActionsのGITHUB_TOKEN環境変数です。

🐰 GitHub Actionの中でDockerコンテナ内で実行している場合、次の環境変数を渡し、GITHUB_EVENT_PATHで指定されたパスをマウントする必要があります:

  • GITHUB_ACTIONS
  • GITHUB_EVENT_NAME
  • GITHUB_EVENT_PATH

--shell <SHELL>


オプション:シェルコマンドパス。Unixライクな環境ではデフォルトで/bin/sh、Windowsではcmdになります。


--flag <FLAG>


オプション:シェルコマンドフラグ。Unixライクな環境ではデフォルトで-c、Windowsでは/Cになります。


--host <HOST>


オプション:バックエンドホストURL。デフォルトはhttps://api.bencher.devです。


--attempts <ATTEMPTS>


オプション:最大リクエスト再試行回数。デフォルトは10回です。


--retry-after <RETRY_AFTER>


オプション:指定した秒数後にリクエストを再試行します (指数関数的バックオフ)。デフォルトは1秒です。


--dry-run


オプション:ドライランを実行します。これはバックエンドに何もデータを保存しません。 branch selectionで詳述されるレポートやブランチは作成されません。


-h

--help


オプション:ヘルプを表示します。



🐰 おめでとう!bencher runの基本を学びました!🎉


bencher runでのBranch Selectionを続ける ➡

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