Selección de Ramas con bencher run


A Branch es la referencia de git (es decir, el nombre de la rama o la etiqueta). Al usar el subcomando CLI bencher run, selecciona una Branch con la opción --branch o la variable de entorno BENCHER_BRANCH. De forma predeterminada, todos los proyectos comienzan con una Branch main, y main se usa por defecto si no se especifica ninguna.

Cuando Benchmarking Continuo, es decir, benchmarking en CI, a menudo querrás crear o rebasar una branch en una Branch ya existente. Esto se llama un Punto de Inicio de Branch Start Point. Un Start Point es otra Branch en una versión específica (y git hash, si está disponible). Al usar el subcomando CLI bencher run, selecciona un Punto de Inicio con la opción --branch-start-point. Además, usa la opción --branch-start-point-hash para especificar un git hash específico para el Punto de Inicio. Todos los datos y Umbrales se copian del Punto de Inicio. Para evitar la deriva, usa la bandera --branch-reset para siempre reiniciar la Branch al 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 Branch especificado, slug o UUID como el Punto de Inicio para la opción branch. Para GitHub, esto es usualmente la base branch para un Pull Request, y para GitLab, esto es usualmente la target branch para un 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 existe y el Punto de Inicio es el mismo, entonces esta opción se ignora.
  • Si branch existe y el Punto de Inicio es diferente, la versión antigua de branch será renombrada y archivada, y una nueva branch será creada usando este Punto de Inicio actualizado.
  • Si branch no existe y el Punto de Inicio no existe, entonces la branch será creada sin ningún dato histórico.
  • Si branch existe y el Punto de Inicio no existe, entonces esta opción se ignora.

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 no existe aún, pero main sí existe y tiene datos históricos. Entonces, usar --branch feature_branch --branch-start-point main haría:

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

🐰 Nota: Siempre que use variables de entorno, deben estar entre comillas dobles (es decir, --branch-start-point "$MY_BRANCH_ENV_VAR"), si desea que bencher run no arroje un error cuando MY_BRANCH_ENV_VAR no esté definida.

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


Usa el hash completo de Git especificado como el Punto de Inicio para la opción branch. Esta opción requiere que la opción --branch-start-point esté configurada.

  • Si branch no existe, se creará desde branch-start-point en el hash especificado.
  • Si branch existe y tanto branch-start-point como el hash especificado son los mismos, entonces esta opción se ignorará.
  • Si branch ya existe y cualquiera de branch-start-point o el hash especificado son diferentes, la versión antigua de branch será renombrada y archivada, y se creará un nuevo branch desde branch-start-point en el hash especificado.
  • Si branch no existe y branch-start-point no existe en el hash especificado, entonces el branch se creará sin ningún dato histórico.
  • Si branch existe y branch-start-point no existe en el hash especificado, entonces esta opción se ignorará.

Si se crea un nuevo branch con un Punto de Inicio, todos los datos y Umbrales del branch-start-point en el hash especificado se copiarán.

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 lo siguiente:

  1. Renombrar el viejo feature_branch a feature_branch@archive-suffix y archivarlo
  2. Crear una nueva Rama llamada feature_branch
  3. Copiar todos los datos y Umbrales de main en el hash 68b12758509ca5e2b1e3983525625e532eb5f562 a la nueva feature_branch
  4. bencher run procederá usando la nueva feature_branch

--branch-reset


Restablecer la branch especificada. Cuando la opción --branch-start-point está configurada, la branch se restablecerá al Punto de Inicio especificado. Esto es útil para prevenir desviaciones en los datos de Benchmarking Continuo Estadístico. El caso principal de uso para --branch-reset sin especificar un Punto de Inicio es Benchmarking Continuo Relativo.

  • Si la branch no existe y no se especifica un Punto de Inicio, la branch será creada sin ningún dato histórico.
  • Si la branch existe y no se especifica un Punto de Inicio, la versión antigua de branch será renombrada y archivada y una nueva branch será creada sin ningún dato histórico.
  • Si la branch no existe y se especifica un Punto de Inicio, la branch será creada usando el Punto de Inicio.
  • Si la branch existe y se especifica un Punto de Inicio, la versión antigua de branch será renombrada y archivada y una nueva branch será creada usando el Punto de Inicio.

Si una nueva branch es creada con un Punto de Inicio, entonces todos los datos y Umbrales del Punto de Inicio especificado se copiarán. De lo contrario, la branch será creada sin ningún dato histórico.

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

  1. Renombrar la antigua feature_branch a feature_branch@archive-suffix y archivarla
  2. Crear una nueva Rama llamada feature_branch
  3. bencher run procederá 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: Invalid Date