GitLab CI/CD에서 Bencher 를 사용하는 방법


benchmark_with_bencher:
    image: rust:bullseye
    variables:
      BENCHER_PROJECT: save-walter-white
      BENCHER_API_TOKEN: ${{ secrets.BENCHER_API_TOKEN }}
      BENCHER_ADAPTER: json
      BENCHER_TESTBED: bullseye
      BENCHER_VERSION: 0.3.18
    before_script:
      - wget https://github.com/bencherdev/bencher/releases/download/v${BENCHER_VERSION}/bencher_${BENCHER_VERSION}_amd64.deb
      - dpkg -i bencher_${BENCHER_VERSION}_amd64.deb
    script:
      - |
        bencher run \
        --if-branch "$CI_COMMIT_REF_NAME" \
        --else-if-branch "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" \
        --else-if-branch main \
        --err \
        "bencher mock"
  1. GitLab CI/CD 파일을 생성합니다 (예: .gitlab-ci.yml)
  2. GitLab CI/CD 작업(job)을 생성합니다 (예: benchmark_with_bencher)
  3. 작업을 실행할 Docker 이미지를 선택합니다 (예: image: rust:bullseye)
  4. 프로젝트는 이미 존재해야 합니다. --project 플래그를 설정하거나 BENCHER_PROJECT 환경 변수를 프로젝트 슬러그 또는 UUID로 설정합니다 (예: BENCHER_PROJECT: save-walter-white)
  5. BENCHER_API_TOKEN을 프로젝트의 CI/CD 시크릿에 추가합니다. 설정 -> CI / CD -> 변수 -> 변수 추가 경로를 따라 이동합니다
  6. API 토큰은 이미 존재해야 합니다. --token 플래그를 설정하거나 BENCHER_API_TOKEN 환경 변수를 API 토큰으로 설정합니다 (예: BENCHER_API_TOKEN: ${{ secrets.BENCHER_API_TOKEN }})
  7. 선택 사항: --adapter 플래그를 설정하거나 BENCHER_ADAPTER 환경 변수를 원하는 어댑터 이름으로 설정합니다. 이 값이 설정되지 않으면 magic 어댑터가 사용됩니다. 전체 개요는 벤치마크 하네스 어댑터를 참조하십시오. (예: BENCHER_ADAPTER: json)
  8. 선택 사항: --testbed 플래그를 설정하거나 BENCHER_TESTBED 환경 변수를 Testbed의 슬러그 또는 UUID로 설정합니다. Testbed는 반드시 이미 존재해야 합니다. 이 값이 설정되지 않으면 localhost Testbed가 사용됩니다. (예: BENCHER_TESTBED: bullseye)
  9. 선택 사항: 사용 중인 CLI 버전을 쉽게 추적할 수 있도록 환경 변수를 생성합니다 (예: BENCHER_VERSION: 0.3.18)
  10. .deb에서 Bencher CLI 를 다운로드하고 설치합니다.
  11. bencher run CLI 하위 명령어를 이용하여 벤치마크를 추적합니다(벤치마크 추적 참조):
    1. 프로젝트의 브랜치를 설정하는 여러 옵션이 있습니다. 전체 개요는 브랜치 선택을 참조하십시오. 제공된 명령어는 GitLab CI/CD 사전 정의 변수를 사용하며:
      1. 해당 브랜치가 이미 존재하면 해당 브랜치를 사용합니다 (예: --if-branch "$CI_COMMIT_REF_NAME")
      2. MR 타겟 브랜치 데이터와 임계값의 복제본을 생성합니다 (예: --else-if-branch "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME")
      3. 그렇지 않으면, main 브랜치 데이터와 임계값의 복제본을 생성합니다 (예: --else-if-branch main)
    2. 경고가 생성되면 명령어가 실패하도록 설정합니다. 경고가 생성되려면, 임계값이 이미 존재해야 합니다. (예: --err)
    3. 벤치마크를 실행하고 결과보고서를 생성합니다 (예: "bencher mock")


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


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

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