Selección de Ramas con bencher run


Una Rama es la referencia git (es decir, nombre de la rama o etiqueta). Al usar el subcomando de la interfaz de línea de comandos bencher run, selecciona una Rama con la opción --branch o la variable de entorno BENCHER_BRANCH. Por defecto, todos los proyectos comienzan con una Rama main, y main se utiliza por defecto si no se especifica ninguna.

Cuando se realiza Benchmarking Continuo, es decir, benchmarking en CI, a menudo querrás crear o rebase una branch en una Rama ya existente. Esto se llama un Punto de Inicio de Rama Start Point. Un Punto de Inicio es otra Rama en una versión específica (y hash git, si está disponible). Al usar el subcomando de la interfaz de línea de comandos bencher run, selecciona un Punto de Inicio con la opción --branch-start-point. Adicionalmente, utiliza la opción --branch-start-point-hash para especificar un hash git específico para el Punto de Inicio. Todos los datos y Umbrales se copian desde el Punto de Inicio.

--branch <BRANCH>


Para seleccionar una Rama, establezca la opción --branch o la variable de entorno BENCHER_BRANCH al nombre, slug o UUID de la Rama. Si el valor especificado es un nombre o slug y la Rama no existe previamente, se creará para usted. Sin embargo, si el valor especificado es un UUID, entonces la Rama ya debe existir. Si ambos están especificados, la opción --branch tiene precedencia sobre la variable de entorno BENCHER_BRANCH.

Si no se especifica ninguno, el CLI de Bencher intenta encontrar la rama actual de git. Comienza buscando un repositorio de git en el directorio de trabajo actual. Si no tiene éxito, continúa con el directorio padre y reintentar hasta llegar al directorio raíz. Si se encuentra un repositorio de git, entonces se usa el nombre corto de la rama actual. Sin embargo, si no se encuentra un repositorio de git, entonces main se utiliza como la rama predeterminada.

--branch-start-point <BRANCH>


Utilice el nombre de la Rama, slug o UUID especificado como el Punto de Inicio para la opción branch. Para GitHub, esto suele ser la base branch para una Pull Request, y para GitLab, esto suele ser la branch objetivo para una Merge Request. El caso de uso principal para --branch-start-point es Benchmarking Continuo Estadístico.

  • Si el Punto de Inicio especificado es una cadena vacía, entonces esta opción se ignora.
  • Si branch no existe, se creará usando este Punto de Inicio.
  • Si branch ya existe y el Punto de Inicio es el mismo, entonces esta opción se ignora.
  • Si branch ya existe y el Punto de Inicio es diferente, la versión antigua de branch será renombrada y se creará una nueva branch usando este Punto de Inicio actualizado.

Si se crea una nueva branch con un Punto de Inicio, entonces todos los datos y Umbrales del Punto de Inicio especificado se copian.

Por ejemplo, si feature_branch aún no existe, pero main existe y tiene datos históricos. Entonces, usando --branch feature_branch --branch-start-point main se:

  1. Crearía una nueva Rama llamada feature_branch
  2. Copiaría todos los datos y Umbrales de main a feature_branch
  3. bencher run procedería usando feature_branch

🐰 Nota: Siempre que se utilicen variables de entorno, se deben envolver entre comillas dobles (es decir, --branch-start-point "$MY_BRANCH_ENV_VAR"), si desea que bencher run no falle cuando MY_BRANCH_ENV_VAR esté indefinido.

--branch-start-point-hash <HASH>


Utiliza el hash completo de Git especificado como Punto de Inicio para la opción branch. Esta opción requiere que se establezca la opción --branch-start-point.

  • Si branch no existe, se creará a partir de branch-start-point en el hash especificado.
  • Si branch ya existe y tanto branch-start-point como el hash especificado son iguales, entonces esta opción se ignora.
  • Si branch ya existe y tanto el branch-start-point como el hash especificado son diferentes, la antigua versión de branch se renombrará y se creará una nueva branch a partir de branch-start-point en el hash especificado.

Si se crea una nueva branch con un Punto de Inicio, entonces todos los datos y Umbrales desde el branch-start-point en el hash especificado se copian.

Por ejemplo, si feature_branch existe con su Punto de Inicio siendo la rama main en el hash 32aea434d751648726097ed3ac760b57107edd8b entonces usar --branch feature_branch --branch-start-point main --branch-start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562 haría:

  1. Renombrar la antigua feature_branch a feature_branch@main/hash/32aea434d751648726097ed3ac760b57107edd8b
  2. Crear una nueva rama nombrada feature_branch
  3. Copiar todos los datos y Umbrales desde main en el hash 68b12758509ca5e2b1e3983525625e532eb5f562 a la nueva feature_branch
  4. bencher run procedería utilizando la nueva feature_branch

--branch-reset


Restablece la branch especificada. El principal caso de uso para --branch-reset es el Benchmarking Continuo Relativo. Esta bandera es incompatible con la opción --branch-start-point.

  • Si branch no existe, será creada.
  • Si branch ya existe, la versión antigua de branch será renombrada y se creará una nueva branch.

Cuando se crea una nueva branch, esta no tendrá datos históricos ni Umbrales.

Por ejemplo, si feature_branch existe sin un Punto Inicial entonces usar --branch feature_branch --branch-reset haría:

  1. Renombrar la antigua feature_branch a feature_branch@detached
  2. Crear una nueva Branch llamada feature_branch
  3. bencher run procedería usando la nueva feature_branch

🐰 ¡Felicidades! Has aprendido todo sobre la selección de ramas. 🎉


Continúa: Adaptadores de Harness de Benchmark ➡

🤖 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.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Thu, May 9, 2024 at 9:23:00 AM UTC