Cómo usar Bencher en GitLab CI/CD
Dependiendo de su caso de uso, puede configurar el Benchmarking Continuo en GitLab CI/CD para su:
🐰 Asegúrese de haber creado un token de API y configurarlo como una variable enmascarada llamada
BENCHER_API_TOKEN
antes de continuar. Navegue aSu Repo -> Configuración -> CI/CD -> Variables -> Expandir -> Agregar variable
. La clave de la variable debe serBENCHER_API_TOKEN
y el valor de la variable debe ser su token de API. Marque ambas casillasProteger variable
yEnmascarar variable
.
Rama Objetivo
Una piedra angular del Benchmarking Continuo Estadístico es tener una línea base histórica para su rama objetivo. Esta línea base histórica puede utilizarse para detectar regresiones de rendimiento en Solicitudes de Fusión.
- Cree un archivo de CI/CD de GitLab.
(ej:
.gitlab-ci.yml
) - Cree un trabajo de CI/CD de GitLab.
(ej:
benchmark_target_branch
) - Ejecute
if
el pipeline fue activado por unpush
hacia la ramamain
. Consulte la documentación derules
de CI/CD de GitLab y la documentación de variables predefinidas de CI/CD de GitLab para una visión completa. (ej:rules: - if: ...
) - Establezca la
image
en la que el trabajo se ejecutará. Consulte la documentación deimage
de CI/CD de GitLab para una visión completa. (ej:image: debian:bullseye
) - Instale el CLI de Bencher usando el script de conveniencia.
(ej:
before_script: ...
) - Utilice el subcomando CLI
bencher run
para ejecutar sus benchmarks de la ramamain
. Consulte el subcomando CLIbencher run
para una visión completa. (ej:bencher run
) - Establezca la opción
--project
al slug del Proyecto. Consulte los docs de--project
para más detalles. (ej:--project save-walter-white-1234abcd
) - Establezca la opción
--token
a la variable de entornoBENCHER_API_TOKEN
enmascarada. Consulte los docs de--token
para más detalles. (ej:--token "$BENCHER_API_TOKEN"
) - Establezca la opción
--branch
al nombre de la Rama. Consulte selección de rama para una visión completa. (ej:--branch main
) - Establezca la opción
--testbed
al nombre del Entorno de Pruebas. Esto probablemente debería coincidir con la máquina seleccionada enimage
. Consulte los docs de--testbed
para más detalles. (ej:--testbed debian:bullseye
) - Establezca la opción
--adapter
al adaptador del arnés de evaluación comparativa deseado. Consulte adaptadores de arneses de evaluación comparativa para una visión completa. (ej:--adapter json
) - Establezca la bandera
--err
para fallar el comando si se genera una Alerta. Consulte Umbral & Alertas para una visión completa. (ej:--err
) - Especifique los argumentos del comando de benchmark.
Consulte comando de benchmark para una visión completa.
(ej:
bencher mock
)
Solicitudes de Fusión
Para detectar la regresión de rendimiento en las Solicitudes de Fusión, necesitarás ejecutar tus pruebas de referencia en las MRs. El siguiente ejemplo solo debe usarse para ramas dentro del mismo repositorio.
- Crear o actualizar un archivo de CI/CD de GitLab.
(ej:
.gitlab-ci.yml
) - Crear un trabajo de CI/CD de GitLab.
(ej:
benchmark_mr_branch
) - Ejecutar
if
el pipeline fue disparado por unmerge_request_event
. Consulta la documentación derules
de CI/CD de GitLab y la documentación de variables predefinidas de CI/CD de GitLab para una visión completa. (ej:rules: - if: ...
) - Establecer la
image
en la que el trabajo se ejecutará. Consulta la documentación deimage
de CI/CD de GitLab para una visión completa. (ej:image: debian:bullseye
) - Instala el CLI de Bencher usando el script de conveniencia.
(ej:
before_script: ...
) - Usa el subcomando CLI
bencher run
para ejecutar tus pruebas de rendimiento de la rama de la solicitud de fusión. Consulta el subcomando CLIbencher run
para una visión completa. (ej:bencher run
) - Establece la opción
--project
al slug del Proyecto. Consulta los docs de--project
para más detalles. (ej:--project save-walter-white-1234abcd
) - Establece la opción
--token
a la variable de entornoBENCHER_API_TOKEN
enmascarada. Consulta los docs de--token
para más detalles. (ej:--token "$BENCHER_API_TOKEN"
) - Establece la opción
--branch
al nombre de la rama MR usando una variable predefinida de CI/CD de GitLab. Consulta selección de rama para una visión completa. (ej:--branch "$CI_COMMIT_REF_NAME"
) - Establece la opción
--branch-start-point
al punto de inicio de la Rama objetivo de MR usando una variable predefinida de CI/CD de GitLab. Consulta selección de rama para una visión completa. (ej:--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
) - Establece la opción
--branch-start-point-hash
al hash del punto de inicio de la Rama objetivo de MR usando una variable predefinida de CI/CD de GitLab. Consulta selección de rama para una visión completa. (ej:--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
) - Establece la opción
--testbed
al nombre del Entorno de Pruebas. Esto probablemente debería coincidir con la máquina seleccionada enimage
. Consulta los docs de--tested
para más detalles. (ej:--testbed debian:bullseye
) - Establece la opción
--adapter
al adaptador deseado del banco de pruebas. Consulta adaptadores de banco de pruebas para una visión completa. (ej:--adapter json
) - Establece la bandera
--err
para fallar el comando si se genera una Alerta. Consulta Umbrales & Alertas para una visión completa. (ej:--err
) - Especificar los argumentos del comando de benchmark.
Consulta comando de benchmark para una visión completa.
(ej:
bencher mock
)
🐰 ¡Felicidades! ¡Has aprendido cómo usar Bencher en GitLab CI/CD! 🎉