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
- GitLab CI/CD 파일을 생성합니다.
(예:
.gitlab-ci.yml
) - GitLab CI/CD 작업을 생성합니다.
(예:
benchmark_target_branch
) - 파이프라인이
main
브랜치로의push
에 의해 트리거되었을 때 실행합니다. GitLab CI/CDrules
문서 및 GitLab CI/CD 사전 정의된 변수 문서를 참조하여 전체 개요를 확인하세요. (예:rules: - if: ...
) - 작업을 실행할
image
를 설정합니다. GitLab CI/CDimage
문서 를 참조하여 전체 개요를 확인하세요. (예:image: debian:bullseye
) - 편리한 스크립트를 사용해 Bencher CLI를 설치합니다.
(예:
before_script: ...
) main
브랜치 벤치마크를 실행하기 위해bencher run
CLI 하위 명령어를 사용합니다. thebencher run
CLI 하위 명령어를 참조하여 전체 개요를 확인하세요. (예:bencher run
)--project
옵션을 프로젝트 슬러그로 설정합니다. the--project
문서를 참조하여 자세한 내용을 확인하세요. (예:--project save-walter-white-1234abcd
)--token
옵션을 마스킹된BENCHER_API_TOKEN
환경 변수로 설정합니다. the--token
문서를 참조하여 자세한 내용을 확인하세요. (예:--token "$BENCHER_API_TOKEN"
)--branch
옵션을 브랜치 이름으로 설정합니다. 브랜치 선택을 참조하여 전체 개요를 확인하세요. (예:--branch main
)--testbed
옵션을 테스트베드 이름으로 설정합니다. 이는image
에서 선택한 기계와 일치해야 합니다. the--testbed
문서를 참조하여 자세한 내용을 확인하세요. (예:--testbed debian:bullseye
)- 원하는 벤치마크 하네스 어댑터에 대한
--adapter
옵션을 설정합니다. 벤치마크 하네스 어댑터를 참조하여 전체 개요를 확인하세요. (예:--adapter json
) - 경고가 생성되면 명령을 실패하도록
--err
플래그를 설정합니다. 임계값 및 경고를 참조하여 전체 개요를 확인하세요. (예:--err
) - 벤치마크 명령 인수를 지정합니다.
벤치마크 명령을 참조하여 전체 개요를 확인하세요.
(예:
bencher mock
)
Merge Requests
Merge Requests에서 성능 회귀를 감지하려면 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" \ --branch-reset \ --testbed debian:bullseye \ --adapter json \ --err \ bencher mock
- GitLab CI/CD 파일을 생성하거나 업데이트합니다.
(예:
.gitlab-ci.yml
) - GitLab CI/CD 작업을 만듭니다.
(예:
benchmark_mr_branch
) merge_request_event
에 의해 파이프라인이 트리거된 경우 실행합니다. 전체 개요는 GitLab CI/CDrules
문서 및 GitLab CI/CD 미리 정의된 변수 문서를 참조하세요. (예:rules: - if: ...
)- 작업을 실행할
image
를 설정합니다. 전체 개요는 GitLab CI/CDimage
문서를 참조하세요. (예:image: debian:bullseye
) - 편의 스크립트를 사용하여 Bencher CLI를 설치합니다.
(예:
before_script: ...
) bencher run
CLI 하위 명령어를 사용하여 merge request 브랜치 벤치마크를 실행합니다. 전체 개요는bencher run
CLI 하위 명령어를 참조하세요. (예:bencher run
)- 프로젝트 슬러그에
--project
옵션을 설정합니다. 자세한 내용은--project
문서를 참조하세요. (예:--project save-walter-white-1234abcd
) - 마스크된
BENCHER_API_TOKEN
환경 변수를--token
옵션에 설정합니다. 자세한 내용은--token
문서를 참조하세요. (예:--token "$BENCHER_API_TOKEN"
) - GitLab CI/CD 미리 정의된 변수를 사용하여 MR 브랜치 이름에
--branch
옵션을 설정합니다. 전체 개요는 브랜치 선택 문서를 참조하세요. (예:--branch "$CI_COMMIT_REF_NAME"
) - GitLab CI/CD 미리 정의된 변수를 사용하여 MR 타깃 브랜치 시작 지점에
--branch-start-point
옵션을 설정합니다. 전체 개요는 브랜치 선택를 참조하세요. (예:--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
) - GitLab CI/CD 미리 정의된 변수를 사용하여 MR 타깃 브랜치 시작 지점 해시에
--branch-start-point-hash
옵션을 설정합니다. 전체 개요는 브랜치 선택를 참조하세요. (예:--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
) - 항상 브랜치를 시작 지점으로 다시 설정하도록
--branch-reset
플래그를 설정합니다. 이는 벤치마크 데이터 드리프트를 방지합니다. 전체 개요는 브랜치 선택 문서를 참조하세요. (예:--branch-reset
) - Testbed 이름에
--testbed
옵션을 설정합니다. 이는 아마도image
에서 선택된 머신과 일치할 가능성이 높습니다. 자세한 내용은--testbed
문서를 참조하세요. (예:--testbed debian:bullseye
) - 원하는 벤치마크 하네스 어댑터에
--adapter
옵션을 설정합니다. 전체 개요는 벤치마크 하네스 어댑터를 참조하세요. (예:--adapter json
) - 경고가 생성되면 명령을 실패하도록
--err
플래그를 설정합니다. 전체 개요는 임계값 및 경고 문서를 참조하세요. (예:--err
) - 벤치마크 명령 인수를 지정합니다.
전체 개요는 벤치마크 명령 문서를 참조하세요.
(예:
bencher mock
)
🐰 축하합니다! GitLab CI/CD에서 Bencher를 사용하는 방법을 배웠습니다! 🎉
계속하기: 벤치마킹 개요 ➡
🤖 이 문서는 OpenAI GPT-4에 의해 자동으로 생성되었습니다. 정확하지 않을 수도 있고 오류가 있을 수도 있습니다. 오류를 발견하면 GitHub에서 문제를 열어주세요.