Selección de Ramas con bencher run


A Branch es la referencia 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. Por defecto, todos los proyectos comienzan con una Branch main, y main se utiliza por defecto si no se especifica.

Cuando Benchmarking Continuo, es decir, benchmarking en CI, a menudo querrá crear o rebasar una branch sobre una Branch ya existente. Esto se llama un Punto de Inicio de Branch. Un Punto de Inicio 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 --start-point. Además, usa la opción --start-point-hash para especificar un git hash específico para el Punto de Inicio. La cantidad de datos que se copian desde el Punto de Inicio se controla con la opción --start-point-max-versions. De manera similar, los Umbrales pueden copiarse desde el Punto de Inicio con el flag --start-point-clone-thresholds. Para prevenir desviaciones, utiliza el flag --start-point-reset para siempre restablecer la Branch al Punto de Inicio.

--branch <BRANCH>


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

Si ninguno está especificado, el Bencher CLI intenta encontrar la rama git actual. Comienza buscando un repositorio git en el directorio de trabajo actual. Si no tiene éxito, continúa con su directorio padre y reintenta hasta el directorio raíz. Si se encuentra un repositorio git, entonces se utiliza el nombre corto de la branch actual. Sin embargo, si no se encuentra un repositorio git, entonces main se utiliza como Branch predeterminada.

--start-point <BRANCH>


Utilice el nombre del branch, slug o UUID especificado como el Punto de Inicio para la opción branch. Para GitHub, esto suele ser el branch base para una Pull Request, y para GitLab, esto suele ser el branch target para una Merge Request. El caso de uso principal para --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, será creado 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, se creará un nuevo Head para el branch usando este Punto de Inicio actualizado.
  • Si branch no existe y el Punto de Inicio no existe, entonces el branch se creará sin ningún dato histórico.
  • Si branch existe y el Punto de Inicio no existe, entonces esta opción se ignora.

Si un nuevo branch se crea con un Punto de Inicio, entonces los datos más recientes y opcionalmente los Umbrales del Punto de Inicio especificado se copian. Consulte la opción --start-point-max-versions y la opción --start-point-clone-thresholds para más detalles.

Por ejemplo, si feature_branch aún no existe, pero main sí existe y tiene datos históricos. Entonces usar --branch feature_branch --start-point main haría lo siguiente:

  1. Crear un nuevo Branch llamado feature_branch
  2. Copiar los datos más recientes de main a feature_branch
  3. bencher run procedería usando feature_branch

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

--start-point-hash <HASH>


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

  • Si branch no existe, se creará desde start-point en el hash especificado.
  • Si branch existe y tanto start-point como el hash especificado son iguales, entonces esta opción se ignora.
  • Si branch existe y ya sea el start-point o el hash especificado son diferentes, se creará un nuevo Head del branch desde start-point en el hash especificado.
  • Si branch no existe y el start-point no existe en el hash especificado, entonces el branch se creará sin ningún dato histórico.
  • Si branch existe y el start-point no existe en el hash especificado, entonces esta opción se ignora.

Si se crea un nuevo branch con un Punto de Inicio, entonces se copian todos los datos más recientes y opcionalmente los Umbrales desde el start-point en el hash especificado. Consulta la opción --start-point-max-versions y la opción --start-point-clone-thresholds para más detalles.

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

  1. Eliminará el antiguo Head de feature_branch
  2. Creará un nuevo Head de feature_branch
  3. Copiará todos los datos más recientes desde main en el hash 68b12758509ca5e2b1e3983525625e532eb5f562 al nuevo Head de feature_branch
  4. bencher run procederá entonces usando el nuevo Head de feature_branch

--start-point-max-versions <COUNT>


Utilice el número máximo de versiones históricas de rama especificadas para incluir desde el Punto de Inicio para la opción branch. Cualquier versión más allá de este número será omitida. El valor predeterminado es 255 versiones. Esta opción requiere que se establezca la opción --start-point.

Por ejemplo, si feature_branch existe con su Punto de Inicio siendo la rama main y main tiene 300 versiones, entonces al usar --branch feature_branch --start-point main --start-point-max-versions 100 solo se incluirían las 100 versiones más recientes de main en feature_branch.

--start-point-clone-thresholds


Clona todos los Umbrales del Punto de Inicio para la opción branch. Esta bandera requiere que se configure la opción --start-point.

  • Si un Umbral no existe, se creará desde el Umbral del start-point.
  • Si un Umbral existe y es igual al Umbral del start-point, entonces ese Umbral se ignora efectivamente.
  • Si un Umbral existe y su modelo es diferente al Umbral del start-point, entonces el modelo antiguo será reemplazado por el modelo del Umbral del start-point.
  • Si un Umbral existe y el Umbral del start-point no existe, entonces el modelo del Umbral se elimina.

Por ejemplo, si feature_branch existe con su Punto de Inicio siendo la Rama main y main tiene un Umbral para el Banco de Pruebas incorporado localhost y la Medida latency, entonces usar --branch feature_branch --start-point main --start-point-clone-thresholds crearía un nuevo Umbral para feature_branch con el Banco de Pruebas localhost y la Medida latency.

--start-point-reset


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

  • Si branch no existe y no se especifica un Punto de Inicio, la branch se creará sin ningún dato histórico.
  • Si branch existe y no se especifica un Punto de Inicio, se creará un nuevo Head de branch sin ningún dato histórico.
  • Si branch no existe y se especifica un Punto de Inicio, la branch se creará utilizando el Punto de Inicio.
  • Si branch existe y se especifica un Punto de Inicio, se creará un nuevo Head de branch utilizando el Punto de Inicio.

Si se crea una nueva branch con un Punto de Inicio, entonces todos los datos más recientes y opcionalmente los Umbrales del start-point en el hash especificado se copian. Consulta la opción --start-point-max-versions y la opción --start-point-clone-thresholds para más detalles.

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

  1. Eliminar el antiguo feature_branch Head
  2. Crear un nuevo Head de feature_branch sin datos históricos
  3. bencher run procedería entonces usando el nuevo Head de feature_branch

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


Continúa: Umbrales y Alertas ➡

🤖 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: Sun, October 13, 2024 at 12:36:00 PM UTC