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.

bencher run [OPTIONS] [COMMAND] [ARGUMENTS...]

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:

Terminal window
bencher run "bencher mock"

Forma Exec:

Terminal window
bencher run bencher mock

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.

Opciones

--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>

--branch-start-point <BRANCH>

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

--branch-reset


Ver selección de ramas para obtener una visió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.


--adapter <ADAPTER>

--average <AVERAGE>

--file <FILE>

--file-size <FILE>


See adaptador de arnés de benchmark para una visión completa.


--iter <ITER>


Opcional: Número de iteraciones de ejecución. El valor predeterminado es 1.


--fold <FOLD>


Opcional: Condensa múltiples resultados en un solo resultado.
Requiere: que se establezca --iter.
Valores posibles:

  • min: Valor mínimo
  • max: Valor máximo
  • mean: Media de valores
  • median: Mediana de valores

--backdate <DATETIME_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.


--err


Opcional: Error cuando se genera una alerta. Ver umbrales y alertas para obtener una visión completa.


--html


Opcional: Producción de resultados en formato HTML.


--quiet


Opcional: Modo silencioso, solo muestra el Informe JSON final. Por defecto es false.


--github-actions <GITHUB_TOKEN>


Opcional: Establecer el token de autenticación de API de GitHub (es decir, --github-actions ${{ secrets.GITHUB_TOKEN }}). Cuando esta opción está establecida y bencher run se usa en GitHub Actions como parte de una solicitud de extracción, entonces los resultados se agregarán a la solicitud de extracción como un comentario. La forma más conveniente de hacer esto es utilizando la variable de entorno GITHUB_TOKENde GitHub Actions.

🐰 Si estás ejecutando en un contenedor Docker dentro de GitHub Action, necesitarás pasar las siguientes variables de entorno y montar la ruta especificada por GITHUB_EVENT_PATH:

  • GITHUB_ACTIONS
  • GITHUB_EVENT_NAME
  • GITHUB_EVENT_PATH

--ci-only-thresholds


Opcional: Solo publicar resultados en CI si existe un Umbral para el Tipo de Métrica, Rama y Banco de Pruebas. Si no existen Umbrales, entonces no se publicará nada. Requiere: --github-actions


--ci-only-on-alert


Opcional: solo comienza a publicar resultados en CI si se genera una Alerta. Si se genera una Alerta, los resultados de seguimiento, incluso si no contienen ninguna Alerta, también se publicarán. Requiere: --github-actions


--ci-id


Opcional: ID personalizada 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 está ejecutando varias veces en la misma rutina de CI para la misma combinación de Proyecto, Rama, Banco de Pruebas, y Adaptador. Requiere: --github-actions


--ci-number


Opcional: Número de problema para publicar resultados en CI. Bencher intentará detectar el número de problema necesario para publicar resultados en CI. Sin embargo, esto no siempre está disponible en configuraciones complejas, como usar workflow_run en GitHub Actions. Requiere: --github-actions


--shell <SHELL>


Opcional: Ruta del comando de la shell. Predeterminado en /bin/sh en entornos tipo Unix y cmd en Windows.


--flag <FLAG>


Opcional: Banderas del comando de la shell. Predeterminado en -c en entornos tipo 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. Predeterminado en https://api.bencher.dev.


--attempts <ATTEMPTS>


Opcional: Intentos maximos de reintentos de solicitud. Predeterminado en 10.


--retry-after <RETRY_AFTER_SECONDS>


Opcional: Reintentar solicitud después del número de segundos dado (retroceso exponencial). Predeterminado en 1.


--dry-run


Opcional: Realizar una ejecución en seco. Esto no almacenará ningún dato en el backend. No se creará ni un Informe ni una Rama como se detalla en selección de ramas.


-h

--help


Opcional: Ver ayuda.



🐰 ¡Felicidades! Has aprendido los conceptos básicos de bencher run! 🎉


Continúa: Selección de Ramas con bencher run

🤖 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: Tue, April 23, 2024 at 12:23:00 PM UTC