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 serBENCHER_API_TOKEN
e o valor da variƔvel deve ser o seu token de API. Marque as caixasProteger variƔvel
eMascarar 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.
- Crie um arquivo GitLab CI/CD.
(ex.:
.gitlab-ci.yml
) - Crie um trabalho GitLab CI/CD.
(ex.:
benchmark_target_branch
) - Execute
if
o pipeline foi acionado por umpush
para a ramificaĆ§Ć£omain
. Consulte a documentaĆ§Ć£o deregras
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: ...
) - Defina a
imagem
na qual o trabalho serĆ” executado. Consulte a documentaĆ§Ć£o deimagem
do GitLab CI/CD para uma visĆ£o geral completa. (ex.:image: debian:bullseye
) - Instale o CLI do Bencher usando o script de conveniĆŖncia.
(ex.:
before_script: ...
) - Use o subcomando CLI
bencher run
para rodar os benchmarks da sua ramificaĆ§Ć£omain
. Consulte o subcomando CLIbencher run
para uma visĆ£o geral completa. (ex.:bencher run
) - 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
) - Defina a opĆ§Ć£o
--token
para a variƔvel de ambienteBENCHER_API_TOKEN
mascarada. Consulte os docs da opĆ§Ć£o--token
para mais detalhes. (ex.:--token "$BENCHER_API_TOKEN"
) - 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
) - Defina a opĆ§Ć£o
--testbed
para o nome do Testbed. Isso provavelmente deve corresponder Ć mĆ”quina selecionada emimagem
. Veja os docs da opĆ§Ć£o--tested
para mais detalhes. (ex.:--testbed debian:bullseye
) - 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
) - Defina a bandeira
--err
para falhar o comando se um Alerta for gerado. Veja Limite & Alertas para uma visĆ£o geral completa. (ex.:--err
) - 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.
- Crie ou atualize um arquivo GitLab CI/CD.
(ex:
.gitlab-ci.yml
) - Crie um trabalho GitLab CI/CD.
(ex:
benchmark_mr_branch
) - Execute
if
o pipeline foi acionado por ummerge_request_event
. Veja a documentaĆ§Ć£o dasregras
do GitLab CI/CD e a documentaĆ§Ć£o das variĆ”veis predefinidas do GitLab CI/CD para uma visĆ£o completa. (ex:rules: - if: ...
) - Defina a
imagem
na qual o trabalho serĆ” executado. Veja a documentaĆ§Ć£o deimagem
do GitLab CI/CD para uma visĆ£o completa. (ex:image: debian:bullseye
) - Instale o CLI do Bencher usando o script de conveniĆŖncia.
(ex:
before_script: ...
) - Use o subcomando CLI
bencher run
para executar os benchmarks do branch da sua solicitaĆ§Ć£o de merge. Veja o subcomando CLIbencher run
para uma visĆ£o completa. (ex:bencher run
) - Defina a opĆ§Ć£o
--project
para o slug do Projeto. Veja a documentaĆ§Ć£o--project
para mais detalhes. (ex:--project save-walter-white-1234abcd
) - Defina a opĆ§Ć£o
--token
para a variƔvel de ambiente mascaradaBENCHER_API_TOKEN
. Veja a documentaĆ§Ć£o--token
para mais detalhes. (ex:--token "$BENCHER_API_TOKEN"
) - 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"
) - 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"
) - 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"
) - Defina a opĆ§Ć£o
--testbed
para o nome do Testbed. Isso provavelmente deve corresponder Ć mĆ”quina selecionada emimagem
. Veja a documentaĆ§Ć£o--testbed
para mais detalhes. (ex:--testbed debian:bullseye
) - 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
) - Defina a flag
--err
para falhar o comando se um Alerta for gerado. Veja Limite & Alertas para uma visĆ£o completa. (ex:--err
) - 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! š