Selecci贸n de Ramas con bencher run


Hay varias maneras de establecer la rama del proyecto en el subcomando CLI de bencher run. Si no se utilizan ninguna de estas opciones o banderas, entonces main se usa como la rama predeterminada.


--branch


La forma m谩s sencilla es establecer la opci贸n --branch o la variable de entorno BENCHER_BRANCH en el slug o UUID de una rama ya existente. Si ambos est谩n definidos, la opci贸n --branch tiene prioridad sobre la variable de entorno BENCHER_BRANCH.

Sin embargo, si ambos est谩n ausentes o el valor proporcionado es inv谩lido, el comando bencher run dar谩 error. Esto no es lo m谩s conveniente en los entornos de CI/CD, donde aparecen nuevas ramas todo el tiempo. En lugar de utilizar --branch o la variable de entorno BENCHER_BRANCH, existe una opci贸n --if-branch.


--if-branch


La opci贸n --if-branch espera un argumento de nombre de rama y consulta para ver si existe una 煤nica rama con ese nombre. Si se encuentra exactamente una rama, entonces bencher run procede utilizando esa rama. De lo contrario, bencher run simplemente registra y sale exitosamente.

Por ejemplo, si main existe, entonces usar --if-branch main lo encontrar铆a. Luego, bencher run proceder铆a usando main.

La opci贸n --branch entra en conflicto con la opci贸n --if-branch, pero la variable de entorno BENCHER_BRANCH tiene prioridad sobre la opci贸n --if-branch.


馃惏 Nota: Siempre que utilices variables de entorno, estas deben ir entre comillas dobles (es decir, --if-branch "$MY_ENV_VAR").


--else-if-branch


A menudo, al trabajar en ramas de caracter铆sticas, ser铆a 煤til tener datos hist贸ricos de la rama principal o base. Aqu铆 es donde entra la opci贸n --else-if-branch. La opci贸n --else-if-branch espera otro argumento de nombre de rama. Si --if-branch falla, entonces --else-if-branch consulta para ver si existe una 煤nica rama con ese nombre. Si se encuentra exactamente una rama, entonces todos los datos y umbrales de esta rama de partida se copian a una nueva rama con el nombre dado a --if-branch.

Por ejemplo, si feature_branch a煤n no existe, pero main s铆 existe y tiene datos hist贸ricos. Entonces, al usar --if-branch feature_branch --else-if-branch main, se crear谩 una nueva rama llamada feature_branch, y tendr铆a una copia de todos los datos y umbrales de main. Luego, bencher run proceder铆a usando feature_branch.

Tambi茅n es posible usar m煤ltiples opciones --else-if-branch. Por ejemplo, si mia_branch no existe, --if-branch feature_branch --else-if-branch mia_branch --else-if-branch main funcionar铆a de la misma manera que el ejemplo anterior, copiando todos los datos y umbrales de main y procediendo luego.

Si la consulta --if-branch tiene 茅xito, entonces --else-if-branch nunca se ejecuta, y si tanto --if-branch como --else-if-branch fallan, bencher run simplemente registra y sale exitosamente.


馃惏 Nota: Siempre que utilices variables de entorno, estas deben ir entre comillas dobles (es decir, --else-if-branch "$MY_ENV_VAR").


--else-branch


Para garantizar en todos los casos que las m茅tricas de una ejecuci贸n se guarden, existe una bandera --else-branch. La bandera --else-branch no toma argumentos. Si --if-branch falla, entonces --else-branch simplemente crea una nueva rama con el nombre dado a --if-branch.

Por ejemplo, si feature_branch a煤n no existe. Entonces, usar --if-branch feature_branch --else-branch, crear铆a una nueva rama llamada feature_branch, y no tendr铆a datos ni umbrales iniciales. Luego, bencher run proceder铆a usando feature_branch.

Tambi茅n es posible encadenar las tres banderas: --if-branch, --else-if-branch, y --else-branch. Por ejemplo, --if-branch feature_branch --else-if-branch main --else-branch.

Si la consulta --if-branch tiene 茅xito, entonces --else-branch nunca se ejecuta, y del mismo modo, si --if-else-branch tiene 茅xito, entonces --else-branch nunca se ejecuta. Y se espera que --else-branch siempre tenga 茅xito y salga exitosamente.


--endif-branch


La bandera --endif-branch funciona como una bandera opcional noop para indicar el fin de la declaraci贸n --if-branch.

Es posible encadenar las cuatro banderas: --if-branch, --else-if-branch, --else-branch, y --endif-branch. Por ejemplo, --if-branch feature_branch --else-if-branch "$MY_ENV_VAR" --else-branch --endif-branch.



馃惏 隆Felicidades! 隆Has aprendido todo sobre la selecci贸n de ramas! 馃帀


Contin煤a: Adaptadores de Benchmarks 鉃

馃 Este documento fue generado autom谩ticamente por OpenAI GPT-4. Puede que no sea exacto y contenga errores. Si encuentra alg煤n error, abra un problema en GitHub.