Selección de Ramas con bencher run


Una Rama es la referencia git (es decir, el nombre de la rama o la etiqueta). Al usar el subcomando CLI bencher run, selecciona una Rama con la opción --branch o la variable de entorno BENCHER_BRANCH. El hash actual de git también se puede especificar con la opción --hash. Si no se especifica una Rama, se utiliza el nombre de la rama actual de git si está disponible. De lo contrario, se usa main como la Rama predeterminada. De manera similar, si no se especifica el hash de git, se utiliza el hash actual de git si está disponible.

Cuando se realiza Benchmarking Continuo, es decir, benchmarking en CI, a menudo querrás crear o hacer rebase de una rama en una Rama ya existente. Esto se llama un Punto de Inicio de Rama. Un Punto de Inicio es otra Rama en una versión específica (y hash de git, 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 hash de git 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 ser copiados desde el Punto de Inicio con el flag --start-point-clone-thresholds. Para prevenir desviaciones, usa el flag --start-point-reset para siempre reiniciar la Rama 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.

--hash <HASH>


Un hash de commit SHA-1 de 40 caracteres. Si dos informes tienen la misma rama y hash, se considerará que provienen del mismo commit. Por lo tanto, tendrán el mismo número de versión de rama.

Si no se proporciona, la CLI de Bencher intenta encontrar el hash git actual. Comienza buscando un repositorio git en el directorio de trabajo actual. Si no tiene éxito, continúa hacia su directorio padre y vuelve a intentar todo el camino hasta el directorio raíz. Si se encuentra un repositorio git, entonces se utiliza el hash git de la HEAD de la rama actual.

--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: Thu, February 20, 2025 at 10:36:00 PM UTC