bencher run CLI 하위 명령어
bencher run
은 가장 인기 있는 CLI 하위 명령어입니다.
이는 벤치마크를 실행하고 결과를 보고하는 데 사용됩니다.
따라서 가장 복잡한 하위 명령어 중 하나입니다.
이 페이지에서는 bencher run
에 전달할 수 있는 옵션, 플래그, 인수에 대해 설명합니다.
벤치마크 명령어
bencher run
의 첫 번째 인자는 선택적인 벤치마크 명령어입니다.
이는 벤치마크 하네스를 호출하여 실행될 명령어입니다.
BENCHER_CMD
환경 변수를 사용하여 설정할 수도 있습니다.
기본적으로 이 명령어는 셸에서 실행되며, 이는 --shell
및 --flag
옵션으로 구성할 수 있습니다.
그 출력은 벤치마크 하네스 어댑터에 의해 파싱되며, --adapter
옵션을 사용해 설정할 수 있습니다.
그러나, 벤치마크 하네스가 파일로 출력하는 경우, 출력 파일 경로를 지정하기 위해 반드시 --file
옵션을 사용해야 합니다.
대신 내용보다는 출력 파일(예: 바이너리 크기)의 크기를 추적하려면, 출력 파일 경로를 지정하기 위해 --file-size
옵션을 사용하세요.
명령어를 셸에서 실행하지 않길 원한다면, --exec
플래그를 사용하거나 bencher run
에 추가 인자로 명령어에 추가 인자를 제공할 수 있습니다.
Shell Form:
Exec Form:
--iter
옵션을 사용하면 벤치마크 명령어를 여러 번 실행할 수 있으며,
--fold
옵션을 사용하여 그 결과를 단일 결과로 합칠 수 있습니다.
반복 실행 중 하나라도 실패하면, --allow-failure
플래그가 설정되지 않은 경우 전체 명령어는 실패한 것으로 간주됩니다.
벤치마크 명령어가 지정되지 않았지만 --file
옵션이 지정된 경우, 그러면 bencher run
은 대신 출력 파일 경로에서 읽기만 할 것입니다.
마찬가지로, 벤치마크 명령어가 지정되지 않았지만 --file-size
옵션이 지정된 경우, bencher run
은 지정된 파일 경로에서 파일의 크기만 읽을 것입니다.
벤치마크 명령어, --file
옵션, 또는 --file-size
옵션 중 어느 것도 지정되지 않으면,
bencher run
은 대신 stdin
에서 읽을 것입니다.
이를 통해 다른 명령어의 출력을 파일에 저장하거나 bencher run
으로 파이프할 수 있습니다.
Options
--project <PROJECT>
--project
옵션이나 BENCHER_PROJECT
환경 변수가 이미 존재하는 프로젝트의 슬러그 또는 UUID로 설정되어야 합니다.
둘 다 정의된 경우, --project
옵션이 BENCHER_PROJECT
환경 변수보다 우선순위를 가집니다.
--token <TOKEN>
--token
옵션 또는 BENCHER_API_TOKEN
환경 변수는 유효한 API 토큰으로 설정되어야 합니다.
둘 다 정의된 경우, --token
옵션이 BENCHER_API_TOKEN
환경 변수보다 우선순위를 가집니다.
--branch <BRANCH>
--start-point <BRANCH>
--start-point-hash <HASH>
--start-point-max-versions <COUNT>
--start-point-clone-thresholds
--start-point-reset
자세한 내용은 브랜치 선택을 참조하세요.
--hash <HASH>
선택사항: 40자리 SHA-1 커밋 해시입니다. 두 보고서가 동일한 branch와 hash를 가지면 동일한 커밋에서 비롯된 것으로 간주됩니다. 따라서 동일한 branch 버전 번호를 가집니다.
제공되지 않은 경우, Bencher CLI는 현재 git 해시를 찾으려고 시도합니다. 그것은 현재 작업 디렉토리에서 git 리포지토리를 찾는 것으로 시작합니다. 성공하지 못하면, 상위 디렉토리로 이동하여 루트 디렉토리까지 모두 다시 시도합니다. git 리포지토리가 발견되면, 현재 브랜치의 HEAD git 해시가 사용됩니다.
--no-hash
선택사항: git
커밋 해시를 찾으려고 시도하지 마십시오.
이 옵션은 --hash
와 충돌되며, 기본적으로 git
저장소를 검색하는 기본 동작을 덮어씁니다.
--testbed <TESTBED>
선택사항: --testbed
옵션 또는 BENCHER_TESTBED
환경 변수를 이미 존재하는 테스트베드의 슬러그 또는 UUID로 설정할 수 있습니다.
둘 다 정의된 경우, --testbed
옵션이 BENCHER_TESTBED
환경 변수보다 우선순위를 가집니다.
둘 다 정의되지 않은 경우, 기본 테스트베드로 localhost
가 사용됩니다.
--threshold-measure <MEASURE>
--threshold-test <TEST>
--threshold-min-sample-size <SAMPLE_SIZE>
--threshold-max-sample-size <SAMPLE_SIZE>
--threshold-window <WINDOW>
--threshold-lower-boundary <BOUNDARY>
--threshold-upper-boundary <BOUNDARY>
--thresholds-reset
--err
전체 개요는 임계값 및 알림을 참조하세요.
--adapter <ADAPTER>
--average <AVERAGE>
--file <FILE>
--build-time
--file-size <FILE>
전체 개요는 benchmark harness adapter를 참조하세요.
--iter <COUNT>
선택사항: 실행 반복 횟수입니다. 기본값은 1
입니다.
--fold <AGGREGATE_FUNCTION>
선택사항: 여러 결과들을 하나의 결과로 병합합니다.
필요사항: --iter
가 설정되어야 합니다.
가능한 값들:
min
: 최소값max
: 최대값mean
: 평균값median
: 중위값
--backdate <SECONDS>
선택사항: 보고서의 날짜를 과거로 변경합니다 (epoch 이후 초). 주의: 이는 과거 보고서의 순서에 영향을 줄 수 없습니다! 이는 프로젝트에 연대순서대로 역사적 데이터를 초기 씨딩할 때 유용합니다.
--allow-failure
선택사항: 벤치마크 테스트 실패를 허용합니다.
--format <FORMAT>
선택 사항: 최종 보고서의 형식.
기본 값은 human
입니다.
가능한 값:
human
: 사람이 읽을 수 있는 형식json
: JSON 형식html
: HTML 형식
--quiet
선택 사항: 조용한 모드, 최종 보고서만 출력합니다.
출력 형식을 변경하려면 --format
옵션을 사용하세요.
--github-actions <GITHUB_TOKEN>
선택 사항: GitHub API 인증 토큰을 설정하세요.
가장 편리한 방법은 GitHub Actions GITHUB_TOKEN
환경 변수를 사용하는 것입니다(예: --github-actions ${{ secrets.GITHUB_TOKEN }}
).
이 옵션이 설정되고 GitHub Actions에서 pull request의 일부로 bencher run
이 사용될 경우,
결과가 pull request에 댓글로 추가됩니다.
이 경우 토큰에 write
권한을 가진 pull-requests
범위가 필요합니다.
그렇지 않으면, 결과가 커밋에 GitHub Check로 추가됩니다.
이 경우 토큰에 write
권한을 가진 checks
범위가 필요합니다.
어느 경우건, 결과는 작업 요약에도 추가됩니다.
🐰 GitHub Action 내의 Docker 컨테이너 안에서 실행하는 경우, 다음 환경 변수를 전달하고
GITHUB_EVENT_PATH
로 지정된 경로를 마운트해야 합니다:
GITHUB_ACTIONS
GITHUB_EVENT_NAME
GITHUB_EVENT_PATH
GITHUB_SHA
--ci-only-thresholds
선택 사항: 분기, 테스트베드 및 측정에 대한 기준점이 존재하는 경우에만 CI에 결과를 게시합니다. 기준점이 존재하지 않으면 아무 것도 게시되지 않습니다. 필요 조건: --github-actions
--ci-only-on-alert
선택 사항: 경고가 생성된 경우 에만 CI에 결과 게시를 시작합니다. 경고가 생성되면 그 이후의 모든 결과도 경고를 포함하지 않더라도 게시됩니다. 필요 조건: --github-actions
--ci-id <ID>
선택 사항: CI에 결과를 게시하기 위한 사용자 정의 ID입니다. 기본적으로, Bencher는 프로젝트, 브랜치, 테스트베드 및 어댑터의 조합에 따라 결과를 자동으로 분리합니다. Bencher가 동일한 CI 워크플로우에서 동일한 프로젝트, 브랜치, 테스트베드 및 어댑터 조합으로 여러 번 실행될 때 사용자 정의 ID를 설정하는 것이 유용합니다. 필요 사항: --github-actions
--ci-number <NUMBER>
선택적: CI에 결과를 게시하기 위한 이슈 번호입니다.
Bencher는 결과를 게시하는 데 필요한 CI 이슈 번호를 자동으로 감지하려고 시도합니다.
하지만 GitHub Actions에서 workflow_run
을 사용하는 복잡한 설정에서는 항상 가능한 것은 아닙니다.
필수 조건: --github-actions
--shell <SHELL>
옵션: 쉘 명령어 경로.
기본값은 유닉스 계열 환경에서는 /bin/sh
, 윈도우에서는 cmd
입니다.
--flag <FLAG>
선택사항: 셸 명령어 플래그.
Unix 계열 환경에서는 기본값이 -c
, Windows에서는 /C
입니다.
--exec
선택 사항: 명령을 쉘 명령이 아닌 실행 가능한 명령으로 실행합니다.
bencher run
에 대한 인수의 수가 하나보다 많은 경우 기본값입니다.
--host <URL>
선택 사항: 백엔드 호스트 URL. 기본값은 Bench Cloud 입니다: https://api.bencher.dev
--attempts <COUNT>
선택 사항: 최대 요청 재시도 횟수입니다. 기본값은 10
회입니다.
--retry-after <SECONDS>
옵션: 시도 간 대기할 초기 초(지수 백오프).
기본값은 1
초입니다.
--dry-run
선택 사항: 드라이 런을 수행합니다. 이를 통해 백엔드에 데이터를 저장하지 않습니다. 브랜치 선택에 상세히 설명된 대로, 리포트, 브랜치 또는 테스트베드가 생성되지 않습니다.
--help
선택 사항: 도움말을 출력합니다.
🐰 축하합니다!
bencher run
의 기본사항을 배웠습니다! 🎉