GitLab CI/CD에서 Bencher 사용하기


사용 사례에 따라 GitLab CI/CD에서 다음을 위한 지속적인 벤치마킹을 설정할 수 있습니다:

🐰 API 토큰을 생성하였는지 확인하고, 계속하기 전에 BENCHER_API_TOKEN이라는 이름의 마스킹된 변수로 설정하세요! 당신의 저장소 -> 설정 -> CI/CD -> 변수 -> 확장 -> 변수 추가로 이동합니다. 변수 키는 BENCHER_API_TOKEN이어야 하며 변수 값은 당신의 API 토큰이어야 합니다. 변수 보호변수 마스크 체크박스를 모두 선택하세요.

대상 브랜치

통계적 지속적 벤치마킹의 핵심은 대상 브랜치에 대한 역사적 기준선을 갖는 것입니다. 이 역사적 기준선은 병합 요청에서 성능 회귀를 감지하는 데 사용할 수 있습니다.

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. GitLab CI/CD 파일을 생성합니다. (예: .gitlab-ci.yml)
  2. GitLab CI/CD 작업을 생성합니다. (예: benchmark_target_branch)
  3. 파이프라인이 main 브랜치로의 push에 의해 트리거되었을 때 실행합니다. GitLab CI/CD rules 문서GitLab CI/CD 사전 정의된 변수 문서를 참조하여 전체 개요를 확인하세요. (예: rules: - if: ...)
  4. 작업을 실행할 image를 설정합니다. GitLab CI/CD image 문서 를 참조하여 전체 개요를 확인하세요. (예: image: debian:bullseye)
  5. 편리한 스크립트를 사용해 Bencher CLI를 설치합니다. (예: before_script: ...)
  6. main 브랜치 벤치마크를 실행하기 위해 bencher run CLI 하위 명령어를 사용합니다. the bencher run CLI 하위 명령어를 참조하여 전체 개요를 확인하세요. (예: bencher run)
  7. --project 옵션을 프로젝트 슬러그로 설정합니다. the --project 문서를 참조하여 자세한 내용을 확인하세요. (예: --project save-walter-white-1234abcd)
  8. --token 옵션을 마스킹된 BENCHER_API_TOKEN 환경 변수로 설정합니다. the --token 문서를 참조하여 자세한 내용을 확인하세요. (예: --token "$BENCHER_API_TOKEN")
  9. --branch 옵션을 브랜치 이름으로 설정합니다. 브랜치 선택을 참조하여 전체 개요를 확인하세요. (예: --branch main)
  10. --testbed 옵션을 테스트베드 이름으로 설정합니다. 이는 image에서 선택한 기계와 일치해야 합니다. the --testbed 문서를 참조하여 자세한 내용을 확인하세요. (예: --testbed debian:bullseye)
  11. 원하는 벤치마크 하네스 어댑터에 대한 --adapter 옵션을 설정합니다. 벤치마크 하네스 어댑터를 참조하여 전체 개요를 확인하세요. (예: --adapter json)
  12. 경고가 생성되면 명령을 실패하도록 --err 플래그를 설정합니다. 임계값 및 경고를 참조하여 전체 개요를 확인하세요. (예: --err)
  13. 벤치마크 명령 인수를 지정합니다. 벤치마크 명령을 참조하여 전체 개요를 확인하세요. (예: bencher mock)

머지 요청

머지 요청에서 성능 회귀를 포착하기 위해서는 MR에서 벤치마크를 실행해야 합니다. 아래 예제는 동일한 저장소 내의 브랜치에만 사용해야 합니다.

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. GitLab CI/CD 파일을 생성하거나 업데이트하십시오. (예: .gitlab-ci.yml)
  2. GitLab CI/CD 작업을 생성하십시오. (예: benchmark_mr_branch)
  3. 파이프라인이 merge_request_event에 의해 트리거되었는지 확인하십시오. GitLab CI/CD rules 문서GitLab CI/CD 사전 정의된 변수 문서를 살펴보십시오. (예: rules: - if: ...)
  4. 작업이 실행될 image를 설정하십시오. GitLab CI/CD image 문서를 살펴보십시오. (예: image: debian:bullseye)
  5. 편리한 스크립트를 사용하여 Bencher CLI를 설치하십시오. (예: before_script: ...)
  6. bencher run CLI 하위 명령어를 사용하여 머지 요청 브랜치 벤치마크를 실행하십시오. the bencher run CLI 하위 명령어를 확인하십시오. (예: bencher run)
  7. --project 옵션을 프로젝트 슬러그로 설정하십시오. the --project 문서를 확인하십시오. (예: --project save-walter-white-1234abcd)
  8. --token 옵션을 마스킹된 BENCHER_API_TOKEN 환경 변수로 설정하십시오. the --token 문서를 확인하십시오. (예: --token "$BENCHER_API_TOKEN")
  9. MR 브랜치 명을 사용하여 --branch 옵션을 설정하십시오 GitLab CI/CD 사전 정의된 변수를 사용하십시오. 브랜치 선택을 확인하십시오. (예: --branch "$CI_COMMIT_REF_NAME")
  10. MR 대상 브랜치 시작 지점을 사용하여 --branch-start-point 옵션을 설정하십시오 GitLab CI/CD 사전 정의된 변수를 사용하십시오. 브랜치 선택을 확인하십시오. (예: --branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME")
  11. MR 대상 브랜치 시작 지점 해시를 사용하여 --branch-start-point-hash 옵션을 설정하십시오 GitLab CI/CD 사전 정의된 변수를 사용하십시오. 브랜치 선택을 확인하십시오. (예: --branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA")
  12. --testbed 옵션을 테스트베드 이름으로 설정하십시오. 이는 image에서 선택한 기계와 일치해야 합니다. the --testbed 문서를 확인하십시오. (예: --testbed debian:bullseye)
  13. 원하는 벤치마크 하니스 어댑터에 대한 --adapter 옵션을 설정하십시오. 벤치마크 하니스 어댑터를 확인하십시오. (예: --adapter json)
  14. 경고가 생성될 경우 명령을 실패하게 하는 --err 플래그를 설정하십시오. 임계값 및 경고를 확인하십시오. (예: --err)
  15. 벤치마크 명령 인자를 지정하십시오. 벤치마크 명령를 확인하십시오. (예: bencher mock)


🐰 축하합니다! GitLab CI/CD에서 Bencher를 사용하는 방법을 배웠습니다! 🎉


계속하기: 벤치마킹 개요 ➡

🤖 이 문서는 OpenAI GPT-4에 의해 자동으로 생성되었습니다. 정확하지 않을 수도 있고 오류가 있을 수도 있습니다. 오류를 발견하면 GitHub에서 문제를 열어주세요.


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