Como usar o Bencher no GitLab CI/CD


Conforme o seu caso de uso, vocĆŖ pode configurar o Benchmarking ContĆ­nuo no GitLab CI/CD para o seu:

šŸ° Certifique-se de ter criado um token de API e definido como uma variĆ”vel mascarada chamada BENCHER_API_TOKEN antes de continuar! Navegue atĆ© Seu RepositĆ³rio -> ConfiguraƧƵes -> CI/CD -> VariĆ”veis -> Expandir -> Adicionar variĆ”vel. A chave da variĆ”vel deve ser BENCHER_API_TOKEN e o valor da variĆ”vel deve ser o seu token de API. Marque as caixas Proteger variĆ”vel e Mascarar variĆ”vel.

RamificaĆ§Ć£o Alvo

Uma pedra angular do Benchmarking ContĆ­nuo EstatĆ­stico Ć© ter uma base histĆ³rica para a sua ramificaĆ§Ć£o alvo. Esta base histĆ³rica pode entĆ£o ser usada para detectar regressƵes de desempenho em SolicitaƧƵes de Merge.

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. Crie um arquivo GitLab CI/CD. (ex.: .gitlab-ci.yml)
  2. Crie um trabalho GitLab CI/CD. (ex.: benchmark_target_branch)
  3. Execute if o pipeline foi acionado por um push para a ramificaĆ§Ć£o main. Consulte a documentaĆ§Ć£o de regras do GitLab CI/CD e a documentaĆ§Ć£o de variĆ”veis predefinidas do GitLab CI/CD para uma visĆ£o geral completa. (ex.: rules: - if: ...)
  4. Defina a imagem na qual o trabalho serĆ” executado. Consulte a documentaĆ§Ć£o de imagem do GitLab CI/CD para uma visĆ£o geral completa. (ex.: image: debian:bullseye)
  5. Instale o CLI do Bencher usando o script de conveniĆŖncia. (ex.: before_script: ...)
  6. Use o subcomando CLI bencher run para rodar os benchmarks da sua ramificaĆ§Ć£o main. Consulte o subcomando CLI bencher run para uma visĆ£o geral completa. (ex.: bencher run)
  7. Defina a opĆ§Ć£o --project para o slug do Projeto. Consulte os docs da opĆ§Ć£o --project para mais detalhes. (ex.: --project save-walter-white-1234abcd)
  8. Defina a opĆ§Ć£o --token para a variĆ”vel de ambiente BENCHER_API_TOKEN mascarada. Consulte os docs da opĆ§Ć£o --token para mais detalhes. (ex.: --token "$BENCHER_API_TOKEN")
  9. Defina a opĆ§Ć£o --branch para o nome da RamificaĆ§Ć£o. Veja seleĆ§Ć£o de ramificaĆ§Ć£o para uma visĆ£o geral completa. (ex.: --branch main)
  10. Defina a opĆ§Ć£o --testbed para o nome do Testbed. Isso provavelmente deve corresponder Ć  mĆ”quina selecionada em imagem. Veja os docs da opĆ§Ć£o --tested para mais detalhes. (ex.: --testbed debian:bullseye)
  11. Defina a opĆ§Ć£o --adapter para o adaptador de suporte de benchmark desejado. Veja adaptadores de suporte de benchmark para uma visĆ£o geral completa. (ex.: --adapter json)
  12. Defina a bandeira --err para falhar o comando se um Alerta for gerado. Veja Limite & Alertas para uma visĆ£o geral completa. (ex.: --err)
  13. Especifique os argumentos do comando de benchmark. Veja comando de benchmark para uma visĆ£o geral completa. (ex.: bencher mock)

SolicitaƧƵes de Merge

Para detectar regressƵes de desempenho em SolicitaƧƵes de Merge, vocĆŖ precisarĆ” executar seus benchmarks em MRs. O exemplo abaixo deve ser usado apenas para branches dentro do mesmo repositĆ³rio.

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. Crie ou atualize um arquivo GitLab CI/CD. (ex: .gitlab-ci.yml)
  2. Crie um trabalho GitLab CI/CD. (ex: benchmark_mr_branch)
  3. Execute if o pipeline foi acionado por um merge_request_event. Veja a documentaĆ§Ć£o das regras do GitLab CI/CD e a documentaĆ§Ć£o das variĆ”veis predefinidas do GitLab CI/CD para uma visĆ£o completa. (ex: rules: - if: ...)
  4. Defina a imagem na qual o trabalho serĆ” executado. Veja a documentaĆ§Ć£o de imagem do GitLab CI/CD para uma visĆ£o completa. (ex: image: debian:bullseye)
  5. Instale o CLI do Bencher usando o script de conveniĆŖncia. (ex: before_script: ...)
  6. Use o subcomando CLI bencher run para executar os benchmarks do branch da sua solicitaĆ§Ć£o de merge. Veja o subcomando CLI bencher run para uma visĆ£o completa. (ex: bencher run)
  7. Defina a opĆ§Ć£o --project para o slug do Projeto. Veja a documentaĆ§Ć£o --project para mais detalhes. (ex: --project save-walter-white-1234abcd)
  8. Defina a opĆ§Ć£o --token para a variĆ”vel de ambiente mascarada BENCHER_API_TOKEN. Veja a documentaĆ§Ć£o --token para mais detalhes. (ex: --token "$BENCHER_API_TOKEN")
  9. Defina a opĆ§Ć£o --branch para o nome do branch da MR usando uma variĆ”vel predefinida do GitLab CI/CD. Veja seleĆ§Ć£o de branch para uma visĆ£o completa. (ex: --branch "$CI_COMMIT_REF_NAME")
  10. Defina a opĆ§Ć£o --branch-start-point para o ponto inicial do Branch alvo da MR usando uma variĆ”vel predefinida do GitLab CI/CD. Veja seleĆ§Ć£o de branch para uma visĆ£o completa. (ex: --branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME")
  11. Defina a opĆ§Ć£o --branch-start-point-hash para o hash do ponto inicial do Branch alvo da MR usando uma variĆ”vel predefinida do GitLab CI/CD. Veja seleĆ§Ć£o de branch para uma visĆ£o completa. (ex: --branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA")
  12. Defina a opĆ§Ć£o --testbed para o nome do Testbed. Isso provavelmente deve corresponder Ć  mĆ”quina selecionada em imagem. Veja a documentaĆ§Ć£o --testbed para mais detalhes. (ex: --testbed debian:bullseye)
  13. Defina a opĆ§Ć£o --adapter para o adaptador de harness de benchmark desejado. Veja adaptadores de harness de benchmark para uma visĆ£o completa. (ex: --adapter json)
  14. Defina a flag --err para falhar o comando se um Alerta for gerado. Veja Limite & Alertas para uma visĆ£o completa. (ex: --err)
  15. Especifique os argumentos do comando de benchmark. Veja comando de benchmark para uma visĆ£o completa. (ex: bencher mock)


šŸ° ParabĆ©ns! VocĆŖ aprendeu como usar o Bencher no GitLab CI/CD! šŸŽ‰


Continue: VisĆ£o Geral do Benchmarking āž”

šŸ¤– Este documento foi gerado automaticamente pelo OpenAI GPT-4. Pode nĆ£o ser preciso e pode conter erros. Se vocĆŖ encontrar algum erro, abra um problema no GitHub.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Mon, April 1, 2024 at 7:00:00 AM UTC