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 a Su Repo -> Configuraci贸n -> CI/CD -> Variables -> Expandir -> Agregar variable. La clave de la variable debe ser BENCHER_API_TOKEN y el valor de la variable debe ser su token de API. Marque ambas casillas Proteger variable y Enmascarar 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.

benchmark_target_branch:
rules:
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
when: always
image: debian:bullseye
before_script:
- curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | sh
script:
- |
bencher run \
--project save-walter-white-1234abcd \
--token "$BENCHER_API_TOKEN" \
--branch main \
--testbed debian:bullseye \
--adapter json \
--err \
bencher mock
  1. Cree un archivo de CI/CD de GitLab. (ej: .gitlab-ci.yml)
  2. Cree un trabajo de CI/CD de GitLab. (ej: benchmark_target_branch)
  3. Ejecute if el pipeline fue activado por un push hacia la rama main. Consulte la documentaci贸n de rules 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: ...)
  4. Establezca la image en la que el trabajo se ejecutar谩. Consulte la documentaci贸n de image de CI/CD de GitLab para una visi贸n completa. (ej: image: debian:bullseye)
  5. Instale el CLI de Bencher usando el script de conveniencia. (ej: before_script: ...)
  6. Utilice el subcomando CLI bencher run para ejecutar sus benchmarks de la rama main. Consulte el subcomando CLI bencher run para una visi贸n completa. (ej: bencher run)
  7. Establezca la opci贸n --project al slug del Proyecto. Consulte los docs de --project para m谩s detalles. (ej: --project save-walter-white-1234abcd)
  8. Establezca la opci贸n --token a la variable de entorno BENCHER_API_TOKEN enmascarada. Consulte los docs de --token para m谩s detalles. (ej: --token "$BENCHER_API_TOKEN")
  9. Establezca la opci贸n --branch al nombre de la Rama. Consulte selecci贸n de rama para una visi贸n completa. (ej: --branch main)
  10. Establezca la opci贸n --testbed al nombre del Entorno de Pruebas. Esto probablemente deber铆a coincidir con la m谩quina seleccionada en image. Consulte los docs de --testbed para m谩s detalles. (ej: --testbed debian:bullseye)
  11. 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)
  12. Establezca la bandera --err para fallar el comando si se genera una Alerta. Consulte Umbral & Alertas para una visi贸n completa. (ej: --err)
  13. 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.

benchmark_mr_branch:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
image: debian:bullseye
before_script:
- curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | sh
script:
- |
bencher run \
--project save-walter-white-1234abcd \
--token "$BENCHER_API_TOKEN" \
--branch "$CI_COMMIT_REF_NAME" \
--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" \
--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA" \
--testbed debian:bullseye \
--adapter json \
--err \
bencher mock
  1. Crear o actualizar un archivo de CI/CD de GitLab. (ej: .gitlab-ci.yml)
  2. Crear un trabajo de CI/CD de GitLab. (ej: benchmark_mr_branch)
  3. Ejecutar if el pipeline fue disparado por un merge_request_event. Consulta la documentaci贸n de rules 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: ...)
  4. Establecer la image en la que el trabajo se ejecutar谩. Consulta la documentaci贸n de image de CI/CD de GitLab para una visi贸n completa. (ej: image: debian:bullseye)
  5. Instala el CLI de Bencher usando el script de conveniencia. (ej: before_script: ...)
  6. Usa el subcomando CLI bencher run para ejecutar tus pruebas de rendimiento de la rama de la solicitud de fusi贸n. Consulta el subcomando CLI bencher run para una visi贸n completa. (ej: bencher run)
  7. Establece la opci贸n --project al slug del Proyecto. Consulta los docs de --project para m谩s detalles. (ej: --project save-walter-white-1234abcd)
  8. Establece la opci贸n --token a la variable de entorno BENCHER_API_TOKEN enmascarada. Consulta los docs de --token para m谩s detalles. (ej: --token "$BENCHER_API_TOKEN")
  9. 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")
  10. 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")
  11. 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")
  12. Establece la opci贸n --testbed al nombre del Entorno de Pruebas. Esto probablemente deber铆a coincidir con la m谩quina seleccionada en image. Consulta los docs de --tested para m谩s detalles. (ej: --testbed debian:bullseye)
  13. 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)
  14. Establece la bandera --err para fallar el comando si se genera una Alerta. Consulta Umbrales & Alertas para una visi贸n completa. (ej: --err)
  15. 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! 馃帀


Contin煤a: Visi贸n General del Benchmarking 鉃

馃 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: Mon, April 1, 2024 at 7:00:00 AM UTC