bencher runを用いたブランチの選択


いくつかの方法がありますでプロジェクトのブランチをbencher run CLIサブコマンドで設定するための。 これらのオプションやフラグが使用されない場合、mainがデフォルトのブランチとして使用されます。


--branch


最も簡単な方法は、 --branchオプションまたは BENCHER_BRANCH 環境変数を既存のブランチのスラッグまたはUUIDに設定することです。 両方が定義されている場合、--branchオプションはBENCHER_BRANCH環境変数より優先します。

しかし、これら両方が欠けている場合、または提供されている値が無効な場合、bencher runコマンドはエラーになります。 これは、新しいブランチが絶えず出現しているCI/CD環境では最も便利ではありません。 その代わりに、--branchまたはBENCHER_BRANCH 環境変数を使用する代わりに、--if-branchオプションがあります。


--if-branch


--if-branchオプションはブランチの 名前 引数を期待し、その名前の単一のブランチが存在するかどうかを問い合わせます。 もし正確に一つのブランチが見つかった場合、bencher runはそのブランチを使用して処理を続けます。 それ以外の場合、bencher runはただログを出力して正常に終了します。

例えば、 mainが存在していれば、 --if-branch mainを使用するとそれを見つけます。そしてbencher runmainを使用して処理を進めます。

--branchオプションは --if-branchオプションと競合しますが、BENCHER_BRANCH環境変数は --if-branchオプションよりも優先します。


🐰 メモ: 環境変数を使用するときは必ずダブルクォート(つまり --if-branch "$MY_ENV_VAR")で囲むべきです。


--else-if-branch


フィーチャーブランチを作業中に、親/ベースブランチからの履歴データがあると便利です。 これが --else-if-branchオプションの出番です。 --else-if-branchオプションは別のブランチの 名前 引数を期待します。 もし --if-branchが失敗すると、--else-if-branchはその名前の単一のブランチが存在するかどうかを問い合わせます。 もし正確に一つのブランチが見つかれば、--if-branchに与えられた名前で新しく作成されたブランチに、このスタートポイントのブランチからのすべてのデータと閾値がコピーされます。

例えば、feature_branchがまだ存在せず、mainは存在して履歴データがあったとしてみましょう。 そこで --if-branch feature_branch --else-if-branch mainを使用すると、feature_branchと名付けられた新しいブランチが作成され、 そこには mainからのすべてのデータと閾値のコピーがあります。 そして bencher runfeature_branchを使用して処理を進めます。

複数の --else-if-branchオプションを使用することも可能です。 例えば、 mia_branchが存在しない場合、 --if-branch feature_branch --else-if-branch mia_branch --else-if-branch main は、前述の例と同じように機能し、mainからのすべてのデータと閾値をコピーして処理を進めます。

--if-branchの問い合わせが成功すれば、--else-if-branchは実行されず、--if-branch--else-if-branchが両方とも失敗すれば、 bencher runはただログを出力して正常に終了します。


🐰 メモ: 環境変数を使用するときは必ずダブルクォート(つまり--else-if-branch "$MY_ENV_VAR")で囲むべきです。


--else-branch


すべてのケースで実行からのメトリクスが保存されることを保証するために、 --else-branchフラグがあります。 --else-branchフラグには引数はありません。 もし --if-branchが失敗したら、--else-branchは単に --if-branchに与えられた名前の新しいブランチを作成します。

例えば、 feature_branchがまだ存在していない場合。 そこで --if-branch feature_branch --else-branchを使用すると、feature_branchと名付けられた新しいブランチが作成され、 それには初期のデータも閾値もありません。 そして bencher runfeature_branchを使用して処理を進めます。

全三つのフラグを連鎖させることも可能です: --if-branch, --else-if-branch, --else-branch. 例えば、--if-branch feature_branch --else-if-branch main --else-branchとします。

--if-branchの問い合わせが成功すれば、--else-branchは実行されず、同様に、--if-else-branchの問い合わせが成功すれば、--else-branchは実行されません。 そして --else-branchは必ず成功し、正常に終了することが期待されます。


--endif-branch


--endif-branchフラグは、--if-branchステートメントの終わりを表すためのオプショナルなnoopフラグとして機能します。

全四つのフラグを連鎖させることが可能です: --if-branch, --else-if-branch, --else-branch, --endif-branch. 例えば、--if-branch feature_branch --else-if-branch "$MY_ENV_VAR" --else-branch --endif-branchとします。



🐰 おめでとうございます! すべてのブランチ選択について学びました! 🎉


続けて学ぶ: ベンチマークハーネスアダプター ➡

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