GitHub ActionsでBencherを使用する方法


GitHub Actionsであなたのユースケースに応じて、以下のために継続的ベンチマーキングを設定できます:

🐰 APIトークンを作成したことを 確認し、それをBENCHER_API_TOKENという名前のリポジトリシークレットとして設定する前に進むこと! Your Repo -> Settings -> Secrets and variables -> Actions -> New repository secretに移動します。 シークレットの名前をBENCHER_API_TOKENに設定し、シークレットの値にあなたのAPIトークンを設定してください。

基本ブランチ

統計的連続ベンチマーキング の基本は、基本ブランチのための歴史的なベースラインを持つことです。 この歴史的なベースラインを利用して、プルリクエスト中のパフォーマンスの退行を検出できます。

on:
push:
branches: main
jobs:
benchmark_base_branch:
name: Continuous Benchmarking with Bencher
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bencherdev/bencher@main
- name: Track base branch benchmarks with Bencher
run: |
bencher run \
--project save-walter-white-1234abcd \
--token '${{ secrets.BENCHER_API_TOKEN }}' \
--branch main \
--testbed ubuntu-latest \
--adapter json \
--err \
bencher mock
  1. GitHub Actions workflow ファイルを作成します。 (例: .github/workflows/base_benchmarks.yml)
  2. main ブランチへの push イベントで実行します。 GitHub Actions on documentation および GitHub Actions push documentation を参照して全体を理解してください。 (例: on: push: branches: main)
  3. GitHub Actions job を作成します。 (例: jobs: benchmark_base_branch)
  4. ジョブが実行されるマシンのタイプを設定します。 GitHub Actions runs-on documentation を参照して全体を理解してください。 (例: runs-on: ubuntu-latest)
  5. 基本ブランチのソースコードをチェックアウトします。 (例: uses: actions/checkout@v4)
  6. GitHub Action を使用して Bencher CLI をインストールします。 (例: uses: bencherdev/bencher@main)
  7. main ブランチのベンチマークを実行するために bencher run CLI サブコマンドを使用してください。 the bencher run CLI サブコマンド を参照して全体を理解してください。 (例: bencher run)
  8. --project オプションをプロジェクトスラグに設定します。 the --project docs を詳しく読んでください。 (例: --project save-walter-white-1234abcd)
  9. --token オプションを BENCHER_API_TOKEN リポジトリー シークレットに設定します。 the --token docs を詳しく読んでください。 (例: --token '${{ secrets.BENCHER_API_TOKEN }}')
  10. --branch オプションをブランチ名に設定します。 branch selection を参照して全体を理解してください。 (例: --branch main)
  11. --testbed オプションをテストベッド名に設定します。 これは runs-on で選択したマシンと一致するべきです。 the --tested docs を詳しく読んでください。 (例: --testbed ubuntu-latest)
  12. --adapter オプションを希望のベンチマークハーネスアダプターに設定します。 benchmark harness adapters を参照して全体を理解してください。 (例: --adapter json)
  13. アラートが生成された場合にコマンドを失敗させる --err フラグを設定します。 Threshold & Alerts を参照して全体を理解してください。 (例: --err)
  14. ベンチマークコマンド引数を指定します。 benchmark command を参照して全体を理解してください。 (例: bencher mock)

プルリクエスト

プルリクエストでパフォーマンスの回帰を検出するためには、PR上でベンチマークを実行する必要があります。 同じリポジトリ内のブランチからのPRのみを想定している場合は、 同じリポジトリからのpull_requestイベントに対して別のワークフローを作成するだけで済みます。

⚠️ このソリューションは、すべてのPRが同じリポジトリからのものである場合にのみ機能します! 下記のフォークからのプルリクエストを参照してください。

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 save-walter-white-1234abcd \
--token '${{ secrets.BENCHER_API_TOKEN }}' \
--branch '${{ github.head_ref }}' \
--branch-start-point '${{ github.base_ref }}' \
--branch-start-point-hash '${{ github.event.pull_request.base.sha }}' \
--testbed ubuntu-latest \
--adapter json \
--err \
--github-actions '${{ secrets.GITHUB_TOKEN }}' \
bencher mock
  1. GitHub Actionsのworkflowファイルを作成します。 (例: .github/workflows/pr_benchmarks.yml)

  2. pull_requestイベントで実行する:

    • opened - プルリクエストが作成されました。
    • reopened - 以前に閉じられたプルリクエストが再開されました。
    • edited - プルリクエストのタイトルや本文が編集されたり、プルリクエストのベースブランチが変更されました。
    • synchronize - プルリクエストのヘッドブランチが更新されました。 例えば、ベースブランチから更新されたか、ヘッドブランチに新しいコミットがプッシュされた場合です。

    GitHub ActionsのonドキュメントGitHub Actionsのpull_requestドキュメントをご覧ください。 (例: on: pull_request: types: [opened, reopened, edited, synchronize])

  3. GitHub Actionsのjobを作成します。 (例: jobs: benchmark_pr_branch)

  4. プルリクエストが同じリポジトリからのものである場合に限り、pull_requestイベントで実行します。 ⚠️ この行を削除しないでください! フォークのPRを処理する方法は、下記のフォークからのプルリクエストを参照してください。 (例: if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)

  5. GITHUB_TOKENパーミッションを pull-requestsに対してwriteに設定します。 GitHubの設定によっては、これが必要ない場合もあります。 しかし、すべての組織やパーソナルリポジトリで 2023年2月2日以降に作成されたものでは、 これがデフォルトの動作です。 GitHubドキュメントをご覧ください。 (例: permissions: pull-requests: write)

  6. ジョブが実行されるマシンのタイプを設定します。 GitHub Actionsのruns-onドキュメントをご覧ください。 (例: runs-on: ubuntu-latest)

  7. PRブランチのソースコードをチェックアウトします。 (例: uses: actions/checkout@v4)

  8. GitHub Actionを使用してBencher CLIをインストールします。 (例: uses: bencherdev/bencher@main)

  9. bencher run CLIサブコマンドを使用して プルリクエストブランチのベンチマークを実行します。 the bencher run CLIサブコマンドをご覧ください。 (例: bencher run)

  10. --projectオプションをプロジェクトスラッグに設定します。 the --projectドキュメントをご覧ください。 (例: --project save-walter-white-1234abcd)

  11. --tokenオプションをBENCHER_API_TOKENリポジトリシークレットに設定します。 the --tokenドキュメントをご覧ください。 (例: --token '${{ secrets.BENCHER_API_TOKEN }}')

  12. GitHub Actionsのgithubコンテキストを使用してPRブランチ名を--branchオプションに設定します。 ブランチの選択をご覧ください。 (例: --branch '${{ github.head_ref }}')

  13. GitHub Actionsのgithubコンテキストを使用してPRベースブランチの開始点を--branch-start-pointオプションに設定します。 ブランチの選択開始点をご覧ください。 (例: --branch-start-point '${{ github.base_ref }}')

  14. GitHub Actionsのpull_requestイベントを使用してPRベースブランチの開始点ハッシュを--branch-start-point-hashオプションに設定します。 ブランチの選択開始点ハッシュをご覧ください。 (例: --branch-start-point-hash '${{ github.event.pull_request.base.sha }}')

  15. --testbedオプションをテストベッド名に設定します。 これは、runs-onで選択したマシンと一致するべきです。 the --testedドキュメントをご覧ください。 (例: --testbed ubuntu-latest)

  16. 希望するベンチマークハーネスアダプターを--adapterオプションに設定します。 ベンチマークハーネスアダプターをご覧ください。 (例: --adapter json)

  17. アラートが生成された場合にコマンドを失敗させるために--errフラグを設定します。 しきい値とアラートをご覧ください。 (例: --err)

  18. GitHub ActionsのGITHUB_TOKEN環境変数を使用してGitHub API認証トークンを--github-actionsオプションに設定し、プルリクエストにコメントとして結果を投稿します。 the --github-actionsドキュメントをご覧ください。 (例: --github-actions '${{ secrets.GITHUB_TOKEN }}')

  19. ベンチマークコマンドの引数を指定します。 ベンチマークコマンドをご覧ください。 (例: bencher mock)


フォークからのプルリクエスト

公開されたオープンソースプロジェクトではよくあることですが、フォークからプルリクエストを受け付ける予定の場合、少し異なる扱いが必要になります。 セキュリティ上の理由から、BENCHER_API_TOKENGITHUB_TOKENなどの秘密情報は、フォークのPRでGitHub Actionsでは利用できません。 つまり、外部のコントリビュータがフォークからPRを開いた場合、上記の例は動作しません。 フォークのPRには2つの選択肢があります:

pwnリクエストを防ぐためのフルオーバービューについては、このGitHub Security Labの記事このブログ投稿を参照してください。

デフォルトブランチからのフォークPRのベンチマークとアップロード

これは、フォークプルリクエストに継続的ベンチマーキングを追加するための安全で推奨される方法です。 これには2つの別々のワークフローが必要です。 最初のワークフローは、pull_requestコンテキストでベンチマーク結果を実行してキャッシュします。 BENCHER_API_TOKENGITHUB_TOKENなどのシークレットはここでは利用できません。 次に、2つ目のワークフローがキャッシュされたベンチマーク結果をworkflow_runコンテキストでダウンロードし、それをBencherにアップロードします。 これは、workflow_runがリポジトリのデフォルトブランチのコンテキストで実行されるため、BENCHER_API_TOKENGITHUB_TOKENなどのシークレットが利用可能であるため実現します。 最初のpull_requestワークフローで使用されたプルリクエスト番号、ヘッドブランチ、およびベースブランチは、それらがそこで利用可能でないため、workflow_runワークフローに明示的に渡される必要があります。 これらのワークフローは、デフォルト ブランチに存在する場合にのみ実行されます。 詳細については、トリガーワークフローからのデータの使用をご覧ください。

name: Run and Cache 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 }}
  1. 最初のGitHub Actions workflowファイルを作成します。 (例: .github/workflows/run_fork_pr_benchmarks.yml)

  2. このワークフローに名前を付けて、2番目のワークフローから参照できるようにします。 (例: name: Run and Cache Benchmarks)

  3. pull_requestイベントで実行します:

    • opened - プルリクエストが作成されました。
    • reopened - 以前に閉じられたプルリクエストが再開されました。
    • edited - プルリクエストのタイトルまたはボディが編集されたか、プルリクエストのベースブランチが変更されました。
    • synchronize - プルリクエストのヘッドブランチが更新されました。 例えば、ヘッドブランチがベースブランチから更新されたか、ヘッドブランチに新しいコミットがプッシュされました。

    詳細については、GitHub Actions on ドキュメントGitHub Actions pull_request ドキュメントをご覧ください。 (例: on: pull_request: types: [opened, reopened, edited, synchronize])

  4. GitHub Actions jobを作成します。 (例: jobs: benchmark_fork_pr_branch)

  5. ジョブが実行されるマシンのタイプを設定します。 詳細については、GitHub Actions runs-on ドキュメント をご覧ください。 (例: runs-on: ubuntu-latest)

  6. フォークPRブランチのソースコードをチェックアウトします。 (例: uses: actions/checkout@v4)

  7. ベンチマークを実行し、結果をファイルに保存します。 (例: /bin/echo '{ ... }' > benchmark_results.json)

  8. ベンチマーク結果ファイルをアーティファクトとしてアップロードします。 (例: uses: actions/upload-artifact@v4)

  9. pull_requestイベントオブジェクトをアーティファクトとしてアップロードします。 (例: uses: actions/upload-artifact@v4)

name: Track Benchmarks with Bencher
on:
workflow_run:
workflows: [Run and Cache Benchmarks]
types: [completed]
jobs:
track_fork_pr_branch:
if: github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
env:
BENCHMARK_RESULTS: benchmark_results.json
PR_EVENT: event.json
steps:
- name: Download Benchmark Results
uses: actions/github-script@v6
with:
script: |
async function downloadArtifact(artifactName) {
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == artifactName
})[0];
if (!matchArtifact) {
core.setFailed(`Failed to find artifact: ${artifactName}`);
}
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/${artifactName}.zip`, Buffer.from(download.data));
}
await downloadArtifact(process.env.BENCHMARK_RESULTS);
await downloadArtifact(process.env.PR_EVENT);
- name: Unzip Benchmark Results
run: |
unzip $BENCHMARK_RESULTS.zip
unzip $PR_EVENT.zip
- 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.number}/merge`);
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 save-walter-white-1234abcd \
--token '${{ secrets.BENCHER_API_TOKEN }}' \
--branch '${{ env.PR_HEAD }}' \
--branch-start-point '${{ env.PR_BASE }}' \
--branch-start-point-hash '${{ env.PR_BASE_SHA }}' \
--testbed ubuntu-latest \
--adapter json \
--err \
--github-actions '${{ secrets.GITHUB_TOKEN }}' \
--ci-number '${{ env.PR_NUMBER }}' \
--file "$BENCHMARK_RESULTS"
  1. 最初のGitHub Actions workflowファイルを作成します。 (例: .github/workflows/track_fork_pr_benchmarks.yml)
  2. このワークフローに名前を付けて、2番目のワークフローとして名付けます。 (例: name: Track Benchmarks with Bencher)
  3. the workflow_run イベントで2つのワークフローを連鎖させます。 (例: on: workflow_run: ...)
  4. GitHub Actions jobを作成します。 (例: jobs: track_fork_pr_branch)
  5. 前のワークフローの結論が成功だった場合のみこのジョブを実行します。 GitHub Actions workflow_run イベントを使用します。 (例: if: github.event.workflow_run.conclusion == 'success')
  6. ジョブが実行されるマシンのタイプを設定します。 詳紀については、GitHub Actions runs-on ドキュメント をご覧ください。 (例: runs-on: ubuntu-latest)
  7. ベンチマーク結果とpull_requestイベントオブジェクトファイル名を環境変数として設定します。 (例: env: ...)
  8. キャッシュされたベンチマーク結果とpull_requestイベントをダウンロードします。 (例: uses: actions/github-script@v6)
  9. キャッシュされたベンチマーク結果とpull_requestイベントを展開します。 (例: unzip ...)
  10. pull_requestイベントから必要なデータを環境変数としてエクスポートします。 (例: core.exportVariable(...))
  11. GitHub Actionを使用してBencher CLIをインストールします。 (例: uses: bencherdev/bencher@main)
  12. bencher run CLIサブコマンドを使用して、フォークプルブランチのベンチマークを追跡します。 詳細については、the bencher run CLIサブコマンドをご覧ください。 (例: bencher run)
  13. --projectオプションをプロジェクトのスラグに設定します。 詳細については、the --project ドキュメントをご覧ください。 (例: --project save-walter-white-1234abcd)
  14. --tokenオプションをBENCHER_API_TOKEN リポジトリ シークレットに設定します。 詳細については、the --token ドキュメントをご覧ください。 (例: --token '${{ secrets.BENCHER_API_TOKEN }}')
  15. --branchオプションを、GitHub Actions pull_request イベントを使用してフォーマットしたフォークPR番号に設定します。 詳細については、branch selectionをご覧ください。 (例: --branch '${{ env.PR_HEAD }}')
  16. --branch-start-pointオプションを、GitHub Actions pull_request イベントを使用してフォークPRベースブランチの起点に設定します。 詳細については、branch selectionをご覧ください。 (例: --branch-start-point '${{ env.PR_BASE }}')
  17. --branch-start-point-hashオプションを、GitHub Actions pull_request イベントを使用してフォークPRベースブランチの起点ハッシュに設定します。 詳細については、branch selectionをご覧ください。 (例: --branch-start-point-hash '${{ env.PR_BASE_SHA }}')
  18. --testbedオプションをテストベッド名に設定します。 これは、runs-onで選択されたマシンと一致すべきです。 詳細については、the --testbed ドキュメントをご覧ください。 (例: --testbed ubuntu-latest)
  19. --adapterオプションを、望むベンチマークハーネスアダプターに設定します。 詳細については、benchmark harness adaptersをご覧ください。 (例: --adapter json)
  20. アラートが生成された場合にコマンドを失敗させるために--errフラグを設定します。 詳細については、Threshold & Alertsをご覧ください。 (例: --err)
  21. the GitHub Actions GITHUB_TOKEN 環境変数を使用してGitHub API認証トークンを--github-actionsオプションに設定し、プルリクエストに結果をコメントとして投稿します。 詳細については、the --github-actions ドキュメントをご覧ください。 (例: --github-actions '${{ secrets.GITHUB_TOKEN }}')
  22. --ci-numberオプションをプルリクエスト番号に設定します。 詳細については、the --ci-number ドキュメントをご覧ください。 (例: --ci-number '${{ env.PR_NUMBER }}')
  23. --fileオプションをベンチマーク結果ファイルのパスに設定します。 詳細については、benchmark commandをご覧ください。 (例: --file "$BENCHMARK_RESULTS")

ターゲットブランチからのフォークPRをベンチマークし、必要なレビュワーを設定する

フォークされたプルリクエストのコードが安全であることを保証するために、このGitHubアクションはフォークが別のリポジトリからかどうかをチェックします。 フォークが別のリポジトリからの場合、レビューが必要になるでしょう。

⚠️ フォークPRを承認する前に、非常に重要ですが、すべてを入念にレビューすることが重要です! そうしないと、pwnリクエストの結果になる可能性があります!

それを頭の上にぶら下げたくない場合は、上記の[Benchmark Fork PR and Upload from Default Branch][benchmark fork pr and upload from default branch]を見てください。

このワークフローを設定するためには、二つの[GitHub Actions Environments][github actions environments]を作成する必要があります。 Your Repo -> Settings -> Environments -> New environmentに移動します。 internalexternalの二つの新しい環境を作成します。 internal環境にはDeployment protection rulesを設定しません。 しかし、external環境には、ベンチマーク前にフォークPRをレビューするために信頼できるレビュワーをRequired reviewersとして設定します。 完全な概要については、[このブログ投稿][iterative.ai blog]をご覧ください。

この設定は、pull_request_targetがプルリクエストのターゲットブランチのコンテキストで実行されるために機能します。そのため、BENCHER_API_TOKENGITHUB_TOKENのような秘密が利用可能です。 したがって、このワークフローは、ターゲット ブランチに存在する場合にのみ実行されます。 GITHUB_TOKENBENCHER_API_TOKENのような秘密を環境変数として設定しないでください。 代わりに、秘密をbencher runに明示的に渡してください。

on:
pull_request_target:
types: [opened, reopened, edited, synchronize]
jobs:
fork_pr_requires_review:
environment: ${{ (github.event.pull_request.head.repo.full_name == github.repository && 'internal') || 'external' }}
runs-on: ubuntu-latest
steps:
- run: true
benchmark_fork_pr_branch:
needs: fork_pr_requires_review
name: Continuous Benchmarking Fork PRs with Bencher
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
persist-credentials: false
- uses: bencherdev/bencher@main
- name: Track Fork PR Benchmarks with Bencher
run: |
bencher run \
--project save-walter-white-1234abcd \
--token '${{ secrets.BENCHER_API_TOKEN }}' \
--branch '${{ github.event.number }}/merge' \
--branch-start-point '${{ github.base_ref }}' \
--branch-start-point-hash '${{ github.event.pull_request.base.sha }}' \
--testbed ubuntu-latest \
--adapter json \
--err \
--github-actions '${{ secrets.GITHUB_TOKEN }}' \
bencher mock
  1. GitHub Actionsのworkflowファイルを作成します。 (例: .github/workflows/pr_target_benchmarks.yml)

  2. pull_requestイベントで実行されるようにします:

    • opened - プルリクエストが作成されました。
    • reopened - 以前に閉じられたプルリクエストが再開されました。
    • edited - プルリクエストのタイトルや本文が編集されたり、プルリクエストの基本ブランチが変更されました。
    • synchronize - プルリクエストのヘッドブランチが更新されました。 例えば、ヘッドブランチがベースブランチから更新されたり、ヘッドブランチに新しいコミットがプッシュされました。

    [GitHub Actions onのドキュメント][github actions on]と [GitHub Actions pull_requestのドキュメント][github action pull_request]を参照して、完全な概要をご覧ください。 (例: on: pull_request: types: [opened, reopened, edited, synchronize])

  3. ワークフローがレビューを必要とするかどうかを確認する最初のGitHub Actionsのjobを作成します。 (例: jobs: fork_pr_requires_review)

  4. プルリクエストが同じリポジトリからの場合にのみinternalenvironmentを設定します。 それ以外の場合は、レビュワーの承認が必要になるexternalenvironmentを設定します。 ⚠️ この行を削除しないでください! (例: environment: ${{ (github.event.pull_request.head.repo.full_name == github.repository && 'internal') || 'external' }})

  5. ベンチマークを実行するための2番目のGitHub Actionsのjobを作成します。 (例: benchmark_fork_pr_branch)

  6. benchmark_fork_pr_branchジョブが実行されるには、fork_pr_requires_reviewジョブが必要です。 ⚠️ この行を削除しないでください! [GitHub Actions needsのドキュメント][github actions needs]を参照して、完全な概要をご覧ください。 (例: needs: fork_pr_requires_review)

  7. ジョブを実行するマシンのタイプを設定します。 [GitHub Actions runs-onのドキュメント][github actions runs-on]を参照して、完全な概要をご覧ください。 (例: runs-on: ubuntu-latest)

  8. フォークPRのソースコードをチェックアウトします。 pull_request_targetはプルリクエストのターゲットブランチのコンテキストで実行されるため、 プルリクエストブランチをチェックアウトする必要があります。 (例: uses: actions/checkout@v4)

    • フォークPRリポジトリを指定します (例: repository: ${{ github.event.pull_request.head.repo.full_name }})
    • フォークPRのハッシュを指定します (例: ref: ${{ github.event.pull_request.head.sha }})
    • git認証情報を保持しないでください (例: persist-credentials: false)
  9. [GitHub Actionを使用して][bencher cli github action] Bencher CLIをインストールします。 (例: uses: bencherdev/bencher@main)

  10. bencher run CLIのサブコマンドを使って、 フォークプルブランチのベンチマークを実行します。 [the bencher run CLI subcommand][bencher run]を参照して、完全な概要をご覧ください。 (例: bencher run)

  11. --projectオプションをプロジェクトのスラグに設定します。 [the --project docs][project option]を参照して、詳細をご確認ください。 (例: --project save-walter-white-1234abcd)

  12. BENCHER_API_TOKEN リポジトリ シークレットを--tokenオプションに設定します。 [the --token docs][token option]を参照して、詳細をご確認ください。 (例: --token '${{ secrets.BENCHER_API_TOKEN }}')

  13. [GitHub Actions pull_requestイベント][github action pull_request]を使用して、 フォークPR番号をフォーマットした--branchオプションを設定します。 [branch selection][branch selection branch]を参照して、完全な概要をご覧ください。 (例: --branch '${{ github.event.number }}/merge')

  14. [GitHub Actions githubコンテキスト][github actions context]を使用して、 フォークPR基本ブランチのスタートポイントを--branch-start-pointオプションに設定します。 [branch selection][branch selection start point]を参照して、完全な概要をご覧ください。 (例: --branch-start-point '${{ github.base_ref }}')

  15. [GitHub Actions pull_requestイベント][github action pull_request]を使用して、 フォークPR基本ブランチのスタートポイントハッシュを--branch-start-point-hashオプションに設定します。 [branch selection][branch selection start point hash]を参照して、完全な概要をご覧ください。 (例: --branch-start-point-hash '${{ github.event.pull_request.base.sha }}')

  16. --testbedオプションをテストベッド名に設定します。 これは、runs-onで選択されたマシンと一致すべきです。 [the --tested docs][testbed option]を参照して、詳細をご覧ください。 (例: --testbed ubuntu-latest)

  17. ベンチマークハーネスアダプターとして望ましいものを--adapterオプションに設定します。 [benchmark harness adapters][adapters]を参照して、完全な概要をご覧ください。 (例: --adapter json)

  18. アラートが生成された場合にコマンドを失敗させるために--errフラグを設定します。 [Threshold & Alerts][alerts]を参照して、完全な概要をご覧ください。 (例: --err)

  19. [GitHub Actions GITHUB_TOKEN環境変数][github token]を使用して、プルリクエストにコメントとして結果を投稿するためのGitHub API認証トークンを--github-actionsオプションに設定します。 [the --github-actions docs][github actions option]を参照して、詳細をご覧ください。 (例: --github-actions '${{ secrets.GITHUB_TOKEN }}')

  20. ベンチマークコマンド引数を指定します。 [benchmark command][command argument]を参照して、完全な概要をご覧ください。 (例: bencher mock)



🐰 おめでとうございます!GitHub Actionsで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