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 <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 <BRANCH_NAME>


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 <BRANCH_NAME>


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.