Subcomando bencher run CLI
bencher run
es el subcomando CLI más popular.
Se usa para ejecutar benchmarks y reportar los resultados.
Por lo tanto, es uno de los subcomandos más complicados.
Esta página explicará las opciones, banderas y argumentos que se pueden pasar a bencher run
.
Comando de Benchmark
El primer argumento para bencher run
es el comando de benchmark opcional.
Este es el comando que se ejecutará, invocando tu arnés de referencia.
También se puede establecer usando la variable de entorno BENCHER_CMD
.
Por defecto, este comando se ejecuta en una shell,
que se puede configurar con las opciones --shell
y --flag
.
Su salida es analizada por un adaptador del arnés de referencia,
que se puede establecer usando la opción --adapter
.
Sin embargo, si el arnés de referencia genera salida a un archivo, entonces la opción --file
también debe usarse para especificar la ruta del archivo de salida.
Alternativamente, para rastrear el tamaño del archivo de salida (es decir, tamaño binario) en lugar de su contenido,
usa la opción --file-size
para especificar la ruta del archivo de salida.
Si prefieres que el comando no se ejecute en una shell, puedes usar la bandera --exec
o simplemente proporcionar argumentos adicionales a tu comando como argumentos adicionales a bencher run
.
Forma Shell:
Forma Exec:
El comando de benchmark se puede ejecutar múltiples veces usando la opción --iter
,
y esos resultados pueden ser combinados en un solo resultado usando la opción --fold
.
Si alguna de las iteraciones falla, entonces se considera que todo el comando ha fallado
a menos que la bandera --allow-failure
esté establecida.
Si el comando de benchmark no se especifica pero la opción --file
sí,
entonces bencher run
simplemente leerá de la ruta del archivo de salida en su lugar.
De manera similar, si el comando de benchmark no se especifica pero la opción --file-size
sí,
entonces bencher run
simplemente leerá el tamaño del archivo en la ruta de archivo dada en su lugar.
Si ni el comando de benchmark, la opción --file
,
ni la opción --file-size
están especificados,
entonces bencher run
leerá desde stdin
en su lugar.
Esto te permite guardar la salida de otro comando en un archivo o canalizarlo a bencher run
.
Options
--project <PROJECT>
La opción --project
o la variable de entorno BENCHER_PROJECT
deben estar configuradas con el slug o UUID de un proyecto ya existente.
Si ambas están definidas, la opción --project
tiene prioridad sobre la variable de entorno BENCHER_PROJECT
.
--token <TOKEN>
La opción --token
o la variable de entorno BENCHER_API_TOKEN
deben estar configuradas con un token de API válido.
Si ambas están definidas, la opción --token
tiene prioridad sobre la variable de entorno BENCHER_API_TOKEN
.
--branch <BRANCH>
--start-point <BRANCH>
--start-point-hash <HASH>
--start-point-max-versions <COUNT>
--start-point-clone-thresholds
--start-point-reset
Consulta selección de ramas para una descripción completa.
--hash <HASH>
Opcional: 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.
--no-hash
Opcional: No intentar encontrar un hash
de commit de git
.
Esta opción entra en conflicto con --hash
y sobrescribe su comportamiento predeterminado de buscar un repositorio de git
.
--testbed <TESTBED>
Opcional: La opción --testbed
o la variable de entorno BENCHER_TESTBED
pueden estar configuradas con el slug o UUID de un banco de pruebas ya existente.
Si ambas están definidas, la opción --testbed
tiene prioridad sobre la variable de entorno BENCHER_TESTBED
.
Si ninguna está definida, entonces localhost
se usa como banco de pruebas predeterminado.
--threshold-measure <MEASURE>
--threshold-test <TEST>
--threshold-min-sample-size <SAMPLE_SIZE>
--threshold-max-sample-size <SAMPLE_SIZE>
--threshold-window <WINDOW>
--threshold-lower-boundary <BOUNDARY>
--threshold-upper-boundary <BOUNDARY>
--thresholds-reset
--err
Consulta umbrales y alertas para una descripción completa.
--adapter <ADAPTER>
--average <AVERAGE>
--file <FILE>
--build-time
--file-size <FILE>
See adaptador de arnés de benchmark para una visión completa.
--iter <COUNT>
Opcional: Número de iteraciones de ejecución. El valor predeterminado es 1
.
--fold <AGGREGATE_FUNCTION>
Opcional: Condensa múltiples resultados en un solo resultado.
Requiere: que se establezca --iter
.
Valores posibles:
min
: Valor mínimomax
: Valor máximomean
: Media de valoresmedian
: Mediana de valores
--backdate <SECONDS>
Opcional: Retroactividad del informe (segundos desde la época) NOTA: ¡Esto no afectará el orden de los informes pasados! Esto es útil cuando inicialmente se está incorporando datos históricos a un proyecto en orden cronológico.
--allow-failure
Opcional: Permitir el fallo de la prueba de benchmark.
--format <FORMAT>
Opcional: Formato para el Reporte final.
El valor predeterminado es human
.
Valores posibles:
human
: Formato legible para humanosjson
: Formato JSONhtml
: Formato HTML
--quiet
Opcional: Modo silencioso, solo muestra el informe final.
Usa la opción --format
para cambiar el formato de salida.
--github-actions <GITHUB_TOKEN>
Opcional: Establezca el token de autenticación de la API de GitHub.
La forma más conveniente de hacer esto es la variable de entorno GITHUB_TOKEN
de GitHub Actions (es decir, --github-actions ${{ secrets.GITHUB_TOKEN }}
).
Cuando esta opción está configurada y bencher run
se utiliza en GitHub Actions como parte de una solicitud de extracción,
los resultados se agregarán a la solicitud de extracción como un comentario.
Esto requiere que el token tenga el alcance pull-requests
con permisos de escritura
.
De lo contrario, los resultados se agregarán al commit como una Verificación de GitHub.
Esto requiere que el token tenga el alcance checks
con permisos de escritura
.
En cualquier caso, los resultados también se agregarán al resumen del trabajo.
🐰 Si está ejecutando dentro de un contenedor Docker dentro de una GitHub Action, necesitará pasar las siguientes variables de entorno y montar la ruta especificada por
GITHUB_EVENT_PATH
:
GITHUB_ACTIONS
GITHUB_EVENT_NAME
GITHUB_EVENT_PATH
GITHUB_SHA
--ci-only-thresholds
Opcional: Solo enviar resultados a CI si existe un Umbral para la Rama, Testbed y Medida. Si no existen Umbrales, no se enviará nada. Requiere: --github-actions
--ci-only-on-alert
Opcional: Solo comenzar a publicar resultados en CI si se genera una Alerta. Si se genera una Alerta, entonces todos los resultados subsecuentes también se publicarán incluso si no contienen ninguna Alerta. Requiere: --github-actions
--ci-id <ID>
Opcional: ID personalizado para publicar resultados en CI.
Por defecto, Bencher segmentará automáticamente los resultados según la combinación de: Proyecto, Rama, Banco de pruebas y Adaptador.
Establecer un ID personalizado es útil cuando Bencher se ejecuta múltiples veces en el mismo flujo de trabajo de CI para la misma combinación de Proyecto, Rama, Banco de pruebas y Adaptador.
Requiere: --github-actions
--ci-number <NUMBER>
Opcional: Número de issue para publicar resultados en CI. Bencher hará todo lo posible para detectar el número de issue de CI necesario para publicar resultados. Sin embargo, esto no siempre está disponible en configuraciones complejas, como el uso de workflow_run
en GitHub Actions. Requiere: --github-actions
--shell <SHELL>
Opcional: Ruta del comando shell.
Por defecto es /bin/sh
en entornos similares a Unix y cmd
en Windows.
--flag <FLAG>
Opcional: Bandera de comando de shell.
Por defecto es -c
en entornos similares a Unix y /C
en Windows.
--exec
Opcional: Ejecuta el comando como un ejecutable no como un comando de shell.
Por defecto si el número de argumentos para bencher run
es mayor que uno.
--host <URL>
Opcional: URL del host del backend.
Por defecto es Bench Cloud: https://api.bencher.dev
--attempts <COUNT>
Opcional: Máximo número de intentos de reintento de solicitud.
Por defecto, 10
intentos.
--retry-after <SECONDS>
Opcional: Segundos iniciales para esperar entre intentos (retroceso exponencial).
Por defecto, 1
segundo.
--dry-run
Opcional: Realiza una simulación. Esto no almacenará ningún dato en el backend. Ni un Informe, Rama (como se detalla en selección de rama), ni un Banco de Pruebas serán creados.
--help
Opcional: Imprimir ayuda.
🐰 ¡Felicidades! Has aprendido los conceptos básicos de
bencher run
! 🎉