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
branchno existe, será creado usando este Punto de Inicio. - Si
branchexiste y el Punto de Inicio es el mismo, entonces esta opción se ignora. - Si
branchexiste y el Punto de Inicio es diferente, se creará un nuevo Head para elbranchusando este Punto de Inicio actualizado. - Si
branchno existe y el Punto de Inicio no existe, entonces elbranchse creará sin ningún dato histórico. - Si
branchexiste 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:
- Crear un nuevo Branch llamado
feature_branch - Copiar los datos más recientes de
mainafeature_branch bencher runprocedería usandofeature_branch
🐰 Nota: Siempre que use variables de entorno, deben ir entre comillas dobles (es decir,
--start-point "$MY_BRANCH_ENV_VAR"), si desea quebencher runno genere un error cuandoMY_BRANCH_ENV_VARno 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
branchno existe, se creará desdestart-pointen el hash especificado. - Si
branchexiste y tantostart-pointcomo el hash especificado son iguales, entonces esta opción se ignora. - Si
branchexiste y ya sea elstart-pointo el hash especificado son diferentes, se creará un nuevo Head delbranchdesdestart-pointen el hash especificado. - Si
branchno existe y elstart-pointno existe en el hash especificado, entonces elbranchse creará sin ningún dato histórico. - Si
branchexiste y elstart-pointno 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:
- Eliminará el antiguo Head de
feature_branch - Creará un nuevo Head de
feature_branch - Copiará todos los datos más recientes desde
mainen el hash68b12758509ca5e2b1e3983525625e532eb5f562al nuevo Head defeature_branch bencher runprocederá entonces usando el nuevo Head defeature_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 delstart-point. - Si un Umbral existe y el Umbral del
start-pointno 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
branchno existe y no se especifica un Punto de Inicio, labranchse creará sin ningún dato histórico. - Si
branchexiste y no se especifica un Punto de Inicio, se creará un nuevo Head debranchsin ningún dato histórico. - Si
branchno existe y se especifica un Punto de Inicio, labranchse creará utilizando el Punto de Inicio. - Si
branchexiste y se especifica un Punto de Inicio, se creará un nuevo Head debranchutilizando 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:
- Eliminar el antiguo
feature_branchHead - Crear un nuevo Head de
feature_branchsin datos históricos bencher runprocedería entonces usando el nuevo Head defeature_branch
🐰 ¡Felicidades! Has aprendido todo sobre la selección de ramas. 🎉