Как использовать Bencher в GitHub Actions
Depending on your use case, you can set up Continuous Benchmarking in GitHub Actions for your:
Make sure you have created an API token
and set it as a Repository secret named BENCHER_API_TOKEN before continuing on!
Navigate to Your Repo -> Settings -> Secrets and variables -> Actions -> New repository secret.
Name the secret BENCHER_API_TOKEN and set the secret value to your API token.
In GitHub Actions,
secrets are not passed to the runner when a workflow is triggered from a forked repository.
Therefore, you will need to use a branch from the same repository
when adding any of the workflows below to your repository with a pull request.
If you try to add Bencher with a pull request from a fork,
then the BENCHER_API_TOKEN secret will not be available.
${{ secrets.BENCHER_API_TOKEN }} will be an empty string.
Основная ветка
Краеугольным камнем Статистического непрерывного бенчмаркинга является наличие исторического базового уровня для вашей основной ветки. Этот исторический базовый уровень затем может быть использован для обнаружения ухудшений производительности в Pull Requests.
on: push: branches: main
jobs: benchmark_base_branch: name: Continuous Benchmarking with Bencher permissions: checks: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: bencherdev/bencher@main - name: Track base branch benchmarks with Bencher run: | bencher run \ --project project-abc4567-wxyz123456789 \ --token '${{ secrets.BENCHER_API_TOKEN }}' \ --branch main \ --testbed ubuntu-latest \ --threshold-measure latency \ --threshold-test t_test \ --threshold-max-sample-size 64 \ --threshold-upper-boundary 0.99 \ --thresholds-reset \ --err \ --adapter json \ --github-actions '${{ secrets.GITHUB_TOKEN }}' \ bencher mock- Создайте файл
workflowдля GitHub Actions. (например,.github/workflows/base_benchmarks.yml) - Запустите при событиях
pushв веткуmain. См. документацию GitHub Actionsonи документацию оpushдля GitHub Actions для получения общей информации. (например,on: push: branches: main) - Создайте
jobдля GitHub Actions. (например,jobs: benchmark_base_branch) - Установите разрешения для
GITHUB_TOKENнаwriteдляchecks. (например:permissions: checks: write) - Установите тип машины, на которой будет выполняться задание.
См. документацию о
runs-onдля GitHub Actions для получения подробной информации. (например,runs-on: ubuntu-latest) - Получите исходный код вашей основной ветки.
(например,
uses: actions/checkout@v4) - Установите Bencher CLI, используя GitHub Action.
(например,
uses: bencherdev/bencher@main) - Используйте подкaманды CLI
bencher runдля запуска бенчмарков вашей веткиmain. См. подкaманды CLIbencher runдля получения полной информации. (например,bencher run) - Установите опцию
--projectна шифр проекта. См. документацию о--projectдля получения более подробной информации. (например,--project project-abc4567-wxyz123456789) - Установите опцию
--tokenна секрет RepositorийBENCHER_API_TOKEN. См. документацию о--tokenдля получения более подробной информации. (например,--token '${{ secrets.BENCHER_API_TOKEN }}') - Установите опцию
--branchна имя основной ветки. См. документацию о--branchдля получения полной информации. (например,--branch main) - Установите опцию
--testbedна имя Testbed. Это, вероятно, должно соответствовать машине, выбранной вruns-on. См. документацию о--testedдля получения более подробной информации. (например,--testbed ubuntu-latest) - Установите порог для ветки
main, тестового стендаubuntu-latestи измеренияlatency:- Установите опцию
--threshold-measureна встроенное измерениеlatency, которое создаетсяbencher mock. См. документацию о--threshold-measureдля получения более подробной информации. (например,--threshold-measure latency) - Установите опцию
--threshold-testна t-критерий Стьюдента (t_test). См. документацию о--threshold-testдля получения полной информации. (например,--threshold-test t_test) - Установите опцию
--threshold-max-sample-sizeна максимальный размер выборки64. См. документацию о--threshold-max-sample-sizeдля получения более подробной информации. (например,--threshold-max-sample-size 64) - Установите опцию
--threshold-upper-boundaryна верхнюю границу0.99. См. документацию о--threshold-upper-boundaryдля получения более подробной информации. (например,--threshold-upper-boundary 0.99) - Установите флаг
--thresholds-reset, чтобы только указанное пороговое значение было активным. См. документацию о--thresholds-resetдля получения полной информации. (например,--thresholds-reset)
- Установите опцию
- Установите флаг
--err, чтобы команда завершалась с ошибкой, если будет сформировано оповещение. См. документацию о--errдля получения полной информации. (например,--err) - Установите опцию
--adapterна формат метрик Bencher в формате JSON (json), который сгенерированbencher mock. См. Адаптеры для бенчмарк-харнесов для получения полной информации. (например,--adapter json) - Установите опцию
--github-actionsна токен аутентификации API GitHub, чтобы отправить результаты в виде комментария GitHub Checks, используя переменную окруженияGITHUB_TOKENдля GitHub Actions. См. документацию о--github-actionsдля получения более подробной информации. (например,--github-actions '${{ secrets.GITHUB_TOKEN }}') - Укажите аргументы для команды бенчмарков.
См. документацию о команде бенчмарков для получения полной информации.
(например,
bencher mock)
Pull Requests
Чтобы отлавливать регрессии производительности в Pull Requests, вам нужно будет запускать свои тесты производительности на PRs.
Если вы ожидаете иметь PR только из веток внутри того же репозитория,
тогда вы можете просто создать другой workflow для запуска on событий pull_request из того же репозитория.
⚠️ Это решение работает только если все PR из того же репозитория! См. Pull Requests из Fork ниже.
on: pull_request: types: [opened, reopened, edited, synchronize]
jobs: benchmark_pr_branch: name: Continuous Benchmarking PRs with Bencher # DO NOT REMOVE: For handling Fork PRs see Pull Requests from Forks if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository permissions: pull-requests: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: bencherdev/bencher@main - name: Track PR Benchmarks with Bencher run: | bencher run \ --project project-abc4567-wxyz123456789 \ --token '${{ secrets.BENCHER_API_TOKEN }}' \ --branch "$GITHUB_HEAD_REF" \ --start-point "$GITHUB_BASE_REF" \ --start-point-hash '${{ github.event.pull_request.base.sha }}' \ --start-point-clone-thresholds \ --start-point-reset \ --testbed ubuntu-latest \ --err \ --adapter json \ --github-actions '${{ secrets.GITHUB_TOKEN }}' \ bencher mock-
Создайте файл
workflowGitHub Actions. (пример:.github/workflows/pr_benchmarks.yml) -
Запустите на событиях
pull_request:opened- Pull request был создан.reopened- Ранее закрытый pull request был переоткрыт.edited- Название или тело pull request было отредактировано, или базовая ветка pull request была изменена.synchronize- Ветка head pull request была обновлена. Например, ветка head была обновлена из базовой ветки или новые коммиты были добавлены в ветку head.
См. документацию GitHub Actions
onи документацию GitHub Actionspull_requestдля полного обзора. (пример:on: pull_request: types: [opened, reopened, edited, synchronize]) -
Создайте
jobGitHub Actions. (пример:jobs: benchmark_pr_branch) -
Запустите на событиях
pull_requestтолько в том случае, если pull request из того же репозитория. ⚠️ НЕ УДАЛЯЙТЕ ЭТУ СТРОКУ! Для обработки Fork PRs см. Pull Requests из Fork ниже. (пример:if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) -
Установите разрешения для
GITHUB_TOKENнаwriteдляpull-requests. В зависимости от настроек GitHub, это может не требоваться. Но для всех организаций и личных репозиториев, созданных после 02 февраля 2023, это поведение является поведением по умолчанию. См. документацию GitHub для полного обзора. (пример:permissions: pull-requests: write) -
Установите тип машины, на которой будет выполняться job. См. документацию GitHub Actions
runs-onдля полного обзора. (пример:runs-on: ubuntu-latest) -
Проверьте исходный код ветки PR. (пример:
uses: actions/checkout@v4) -
Установите Bencher CLI с использованием GitHub Action. (пример:
uses: bencherdev/bencher@main) -
Используйте
bencher runCLI подкоманду для запуска тестов производительности ветки pull request. См. подкомандуbencher runCLI для полного обзора. (пример:bencher run) -
Установите опцию
--projectна идентификатор проекта. См. документацию--projectдля подробностей. (пример:--project project-abc4567-wxyz123456789) -
Установите опцию
--tokenна секрет репозиторияBENCHER_API_TOKEN. См. документацию--tokenдля подробностей. (пример:--token '${{ secrets.BENCHER_API_TOKEN }}') -
Установите опцию
--branchна имя ветки PR используя переменную окруженияGITHUB_HEAD_REFпо умолчанию GitHub Actions. См. документацию--branchдля полного обзора. (пример:--branch "$GITHUB_HEAD_REF") -
Установите начальную точку для ветки PR:
- Установите опцию
--start-pointна стартовую точку ветки PR используя переменную окруженияGITHUB_BASE_REFпо умолчанию GitHub Actions. См. документацию--start-pointдля полного обзора. (пример:--start-point "$GITHUB_BASE_REF") - Установите опцию
--start-point-hashнаgitхеш стартовой точки ветки PR используя событиеpull_requestGitHub Actions. См. документацию--start-point-hashдля полного обзора. (пример:--start-point-hash '${{ github.event.pull_request.base.sha }}') - Установите флаг
--start-point-clone-thresholds, чтобы клонировать пороги из стартовой точки. См. документацию--start-point-clone-thresholdsдля полного обзора. (пример:--start-point-clone-thresholds) - Установите флаг
--start-point-reset, чтобы всегда сбрасывать ветку PR в стартовую точку. Это предотвратит дрейф данных тестов производительности. См. документацию--start-point-resetдля полного обзора. (пример:--start-point-reset)
- Установите опцию
-
Установите опцию
--testbedна имя Testbed. Это, вероятно, должно совпадать с машиной, выбранной вruns-on. См. документацию--testbedдля подробностей. (пример:--testbed ubuntu-latest) -
Установите флаг
--err, чтобы команда завершалась неудачей, если генерируется предупреждение. См. документацию--errдля полного обзора. (пример:--err) -
Установите опцию
--adapterна Bencher Metric Format JSON (json), который генерируетсяbencher mock. См. адаптеры тестовых сред для полного обзора. (пример:--adapter json) -
Установите опцию
--github-actionsна токен аутентификации API GitHub для публикации результатов как комментарий к Pull Request с использованием переменной окруженияGITHUB_TOKEN. См. документацию--github-actionsдля подробностей. (пример:--github-actions '${{ secrets.GITHUB_TOKEN }}') -
Укажите аргументы команды теста производительности. См. команду теста производительности для полного обзора. (пример:
bencher mock)
Чтобы очистить PR-ветку после закрытия PR, вы можете создать отдельный workflow, который будет запускаться on событиях типа pull_request с типом closed. Этот workflow архивирует PR-ветку с помощью команды bencher archive.
on: pull_request: types: [closed]
jobs: archive_pr_branch: name: Archive closed PR branch with Bencher # DO NOT REMOVE: For handling Fork PRs see Pull Requests from Forks if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: bencherdev/bencher@main - name: Archive closed PR branch with Bencher run: | bencher archive \ --project project-abc4567-wxyz123456789 \ --token '${{ secrets.BENCHER_API_TOKEN }}' \ --branch "$GITHUB_HEAD_REF"-
Создайте файл
workflowдля GitHub Actions. (например,.github/workflows/pr_benchmarks_closed.yml) -
Запускать на событиях
pull_request:closed- запрос на включение изменений был закрыт.
См. документацию по GitHub Actions
onи документацию по GitHub Actionspull_requestдля полного обзора. (например,on: pull_request: types: [closed]) -
Создайте
jobдля GitHub Actions. (например,jobs: archive_pr_branch) -
Запускайте на событиях
pull_requestтолько если запрос на включение изменений из того же репозитория. ⚠️ НЕ УДАЛЯЙТЕ ЭТУ СТРОКУ! Для обработки Fork PR см. ниже Запросы на включение изменений из форков. (например,if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) -
Установите тип машины, на которой будет выполняться работа. См. документацию по GitHub Actions
runs-onдля полного обзора. (например,runs-on: ubuntu-latest) -
Выполните проверку исходного кода PR-ветки. (например,
uses: actions/checkout@v4) -
Установите Bencher CLI, используя GitHub Action. (например,
uses: bencherdev/bencher@main) -
Используйте подкоманду CLI
bencher archiveдля архивирования PR-ветки. (например,bencher archive) -
Установите для опции
--projectзначение идентификатора проекта (slug). См. документацию по--projectопции для более подробной информации. (например,--project project-abc4567-wxyz123456789) -
Установите для опции
--tokenзначение секрета РепозиторияBENCHER_API_TOKEN. См. документацию по--tokenопции для более подробной информации. (например,--token '${{ secrets.BENCHER_API_TOKEN }}') -
Установите для опции
--branchзначение имени PR-ветки, используя переменную среды по умолчанию GitHub ActionsGITHUB_HEAD_REF. (например,--branch "$GITHUB_HEAD_REF")
Запросы на вытягивание из форков
Если вы планируете принимать запросы на вытягивание из форков, как это часто бывает в публичных open source проектах, то вам потребуется немного по-другому с этим справляться. По соображениям безопасности, такие данные, как ваш BENCHER_API_TOKEN и GITHUB_TOKEN, недоступны в GitHub Actions для запросов на вытягивание из форков. То есть, если внешний участник открывает PR из форка, приведенный выше пример не будет работать. Смотрите это описание безопасности от лаборатории GitHub и этот пост в блоге для полного обзора о предотвращении атак pwn requests.
Это безопасный и рекомендуемый способ добавления Непрерывного Бенчмаркинга к запросам на вытягивание из форков. Он требует двух отдельных рабочих процессов. Первый рабочий процесс запускается и кэширует результаты бенчмаркинга в контексте pull_request. Там недоступны такие секреты, как ваш BENCHER_API_TOKEN и GITHUB_TOKEN. Затем второй рабочий процесс загружает кешированные результаты бенчмаркинга в контексте workflow_run и загружает их в Bencher. Это работает, потому что workflow_run запускается в контексте основной ветки репозитория, где доступны такие секреты, как ваш BENCHER_API_TOKEN и GITHUB_TOKEN. Номер запроса на вытягивание, ветка источника и базовая ветка, используемые в первоначальном рабочем процессе pull_request, также должны быть явно переданы в рабочий процесс workflow_run, так как они там недоступны. Эти рабочие процессы будут выполняться только если они существуют в основной ветке. Смотрите использование данных от запускающего рабочего процесса для полного обзора.
name: Run Benchmarks
on: pull_request: types: [opened, reopened, edited, synchronize]
jobs: benchmark_fork_pr_branch: name: Run Fork PR Benchmarks runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Mock Benchmarking run: | /bin/echo '{ "bencher::mock_0": { "latency": { "value": 1.0 } } }' > benchmark_results.json - name: Upload Benchmark Results uses: actions/upload-artifact@v4 with: name: benchmark_results.json path: ./benchmark_results.json - name: Upload GitHub Pull Request Event uses: actions/upload-artifact@v4 with: name: event.json path: ${{ github.event_path }}-
Создайте первый файл
workflowGitHub Actions. (например:.github/workflows/fork_pr_benchmarks_run.yml) -
Назовите этот workflow так, чтобы его можно было использовать во втором workflow. (например:
name: Run Benchmarks) -
Запускайте на событиях
pull_request:opened- Создан новый pull request.reopened- Повторно открыт ранее закрытый pull request.edited- Изменен заголовок или тело pull request, или изменена базовая ветка pull request.synchronize- Обновлена головная ветка pull request. Например, головная ветка была обновлена из базовой ветки или в головную ветку были отправлены новые коммиты.
См. документацию по
onв GitHub Actions и документацию поpull_requestв GitHub Actions для полного обзора. (например:on: pull_request: types: [opened, reopened, edited, synchronize]) -
Создайте
jobв GitHub Actions. (например:jobs: benchmark_fork_pr_branch) -
Установите тип машины, на которой будет выполняться job. См. документацию по
runs-onв GitHub Actions для полного обзора. (например:runs-on: ubuntu-latest) -
Выполните checkout исходного кода ветки fork PR. (например:
uses: actions/checkout@v4) -
Запустите тесты производительности и сохраните результаты в файл. (например:
/bin/echo '{ ... }' > benchmark_results.json) -
Загрузите файл с результатами тестов производительности как артефакт. (например:
uses: actions/upload-artifact@v4) -
Загрузите объект события
pull_requestкак артефакт. (например:uses: actions/upload-artifact@v4)
name: Track Benchmarks with Bencher
on: workflow_run: workflows: [Run Benchmarks] types: [completed]
jobs: track_fork_pr_branch: if: github.event.workflow_run.conclusion == 'success' permissions: pull-requests: write runs-on: ubuntu-latest env: BENCHMARK_RESULTS: benchmark_results.json PR_EVENT: event.json steps: - name: Download Benchmark Results uses: dawidd6/action-download-artifact@v6 with: name: ${{ env.BENCHMARK_RESULTS }} run_id: ${{ github.event.workflow_run.id }} - name: Download PR Event uses: dawidd6/action-download-artifact@v6 with: name: ${{ env.PR_EVENT }} run_id: ${{ github.event.workflow_run.id }} - name: Export PR Event Data uses: actions/github-script@v6 with: script: | let fs = require('fs'); let prEvent = JSON.parse(fs.readFileSync(process.env.PR_EVENT, {encoding: 'utf8'})); core.exportVariable("PR_HEAD", prEvent.pull_request.head.ref); core.exportVariable("PR_HEAD_SHA", prEvent.pull_request.head.sha); core.exportVariable("PR_BASE", prEvent.pull_request.base.ref); core.exportVariable("PR_BASE_SHA", prEvent.pull_request.base.sha); core.exportVariable("PR_NUMBER", prEvent.number); - uses: bencherdev/bencher@main - name: Track Benchmarks with Bencher run: | bencher run \ --project project-abc4567-wxyz123456789 \ --token '${{ secrets.BENCHER_API_TOKEN }}' \ --branch "$PR_HEAD" \ --hash "$PR_HEAD_SHA" \ --start-point "$PR_BASE" \ --start-point-hash "$PR_BASE_SHA" \ --start-point-clone-thresholds \ --start-point-reset \ --testbed ubuntu-latest \ --err \ --adapter json \ --github-actions '${{ secrets.GITHUB_TOKEN }}' \ --ci-number "$PR_NUMBER" \ --file "$BENCHMARK_RESULTS"- Создайте первый файл
workflowдля GitHub Actions. (например,.github/workflows/fork_pr_benchmarks_track.yml) - Назовите этот workflow вторым workflow.
(например,
name: Track Benchmarks with Bencher) - Свяжите два workflow с помощью
события
workflow_run. (например,on: workflow_run: ...) - Создайте
jobдля GitHub Actions. (например,jobs: track_fork_pr_branch) - Выполните эту задачу только в случае успешного завершения предыдущего workflow, используя
событие
workflow_runGitHub Actions. (например,if: github.event.workflow_run.conclusion == 'success') - Установите разрешения для
GITHUB_TOKENнаwriteдляpull-requests. В зависимости от ваших настроек GitHub, это может не требоваться. Однако для всех организаций и персональных репозиториев, созданных после 02 февраля 2023 года, это поведение по умолчанию. Полный обзор см. в документации GitHub. (например,permissions: pull-requests: write) - Установите тип компьютера, на котором будет выполняться задача.
Полный обзор см. в документации
runs-onдля GitHub Actions. (например,runs-on: ubuntu-latest) - Задайте результаты бенчмарков и файлы объектов события
pull_requestв качестве переменных среды. (например,env: ...) - Скачайте кешированные результаты бенчмарков и событие
pull_requestс помощью GitHub Actionaction-download-artifact. (например,uses: dawidd6/action-download-artifact@v6) - Экспортируйте необходимые данные из события
pull_requestкак промежуточные переменные среды. (например,core.exportVariable(...)) - Установите Bencher CLI с помощью GitHub Action.
(например,
uses: bencherdev/bencher@main) - Используйте подкоманду CLI
bencher runдля отслеживания бенчмарков брэнча в вашем форке. Полный обзор см. в подкомандеbencher runдля CLI. (например,bencher run) - Установите параметр
--projectв значение Project slug. Подробности смотрите в документации--project. (например,--project project-abc4567-wxyz123456789) - Установите параметр
--tokenв значение секрета RepositoryBENCHER_API_TOKEN. Подробности смотрите в документации--token. (например,--token '${{ secrets.BENCHER_API_TOKEN }}') - Установите параметр
--branchна имя ветки PR форка с использованием промежуточной переменной среды. Полный обзор см. в документации--branch. (например,--branch "$PR_HEAD") - Установите параметр
--hashвgithash ветки PR форка с использованием промежуточной переменной среды. Полный обзор см. в документации--hash. (например,--hash "$PR_HEAD_SHA") - Установите Начальную Точку для ветки PR форка:
- Установите параметр
--start-pointна начальную точку ветки PR форка с использованием промежуточной переменной среды. Полный обзор см. в документации--start-point. (например,--start-point "$PR_BASE") - Установите параметр
--start-point-hashвgithash начальной точки ветки PR форка с использованием промежуточной переменной среды. Полный обзор см. в документации--start-point-hash. (например,--start-point-hash "$PR_BASE_SHA") - Установите флаг
--start-point-clone-thresholds, чтобы клонировать Пороги с начальной точки. Полный обзор см. в документации--start-point-clone-thresholds. (например,--start-point-clone-thresholds) - Установите флаг
--start-point-resetдля всегда сбрасывания ветки PR форка к начальной точке. Это предотвратит сдвиг данных бенчмарков. Полный обзор см. в документации--start-point-reset. (например,--start-point-reset)
- Установите параметр
- Установите параметр
--testbedна имя Testbed. Это должно совпадать с машиной, выбранной вruns-on. Подробности смотрите в документации--tested. (например,--testbed ubuntu-latest) - Установите флаг
--err, чтобы команда завершилась неудачно, если сгенерируется Уведомление. Полный обзор см. в документации--err. (например,--err) - Установите параметр
--adapterв значение Bencher Metric Format JSON (json), который генерируетсяbencher mock. Полный обзор см. в документации адаптеров. (например,--adapter json) - Установите параметр
--github-actionsна значение токена аутентификации GitHub API для публикации результатов в виде комментария к Pull Request, используя переменную средыGITHUB_TOKENGitHub Actions. Подробности смотрите в документации--github-actions. (например,--github-actions '${{ secrets.GITHUB_TOKEN }}') - Установите параметр
--ci-numberна номер pull request, используя промежуточную переменную среды. Подробности смотрите в документации--ci-number. (например,--ci-number "$PR_NUMBER") - Установите параметр
--fileна путь к файлу с результатами бенчмарков. Полный обзор см. в документации о команде бенчмарков. (например,--file "$BENCHMARK_RESULTS")
Чтобы очистить ветку PR форка после закрытия её PR, вы можете создать отдельный рабочий процесс, который будет запускаться на события pull_request_target с типом closed. Этот рабочий процесс заархивирует ветку PR форка с помощью команды bencher archive.
on: pull_request_target: types: [closed]
jobs: archive_fork_pr_branch: name: Archive closed fork PR branch with Bencher runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: bencherdev/bencher@main - name: Archive closed fork PR branch with Bencher run: | bencher archive \ --project project-abc4567-wxyz123456789 \ --token '${{ secrets.BENCHER_API_TOKEN }}' \ --branch "$GITHUB_HEAD_REF"-
Создайте файл
workflowдля GitHub Actions. (например,.github/workflows/fork_pr_benchmarks_closed.yml) -
Запускайте на событиях
pull_request_target:closed- Пул-реквест был закрыт.
См. документацию по GitHub Actions
onи документацию по GitHub Actionspull_request_targetдля полного обзора. (например,on: pull_request_target: types: [closed]) -
Создайте задание
jobдля GitHub Actions. (например,jobs: archive_pr_branch) -
Установите тип машины, на которой будет выполнено задание. См. документацию по GitHub Actions
runs-onдля полного обзора. (например,runs-on: ubuntu-latest) -
Выполните проверку исходного кода ветки PR. (например,
uses: actions/checkout@v4) -
Установите Bencher CLI, используя действие GitHub Action. (например,
uses: bencherdev/bencher@main) -
Используйте подкоманду CLI
bencher archiveдля архивирования ветки PR. (например,bencher archive) -
Установите опцию
--projectна идентификатор проекта. Подробнее см. в документации по--project. (например,--project project-abc4567-wxyz123456789) -
Установите опцию
--tokenна секрет репозиторияBENCHER_API_TOKEN. Подробнее см. в документации по--token. (например,--token '${{ secrets.BENCHER_API_TOKEN }}') -
Установите опцию
--branchна имя ветки PR, используя переменную среды по умолчаниюGITHUB_HEAD_REFдля GitHub Actions. (например,--branch "$GITHUB_HEAD_REF")
🐰 Поздравляем! Вы научились использовать Bencher в GitHub Actions! 🎉