actions-marketplace-validations/benchdiff
Runs go benchmarks on HEAD and a base branch and reports the resulting benchstat output.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| benchdiff_args | Arguments for the benchdiff command line. This action will run the command line `benchdiff <benchdiff_args>` after making some adjustments to the arguments (listed below). If `--base-ref` isn't present in the arguments, then `--base-ref <default branch>` will be added. `--json` is always added because the action requires json formatted output. `--benchstat-output=markdown` is added when no other benchstat-output value is set because the reports look best with markdown formatting. Consider this example: ``` --cpu=1,2 --warmup-count=1 --warmup-time=10ms --tolerance=50 --debug ``` `--cpu=1,2` is important on actions because runners have only two cores available to them. `--warmup-count=1` and `warmup-time=10ms` cause benchdiff to do a quick warmup before starting the benchmarks. This is important on actions because the runners appear to have a small amount of cpu burst available. If you burn through that in the warmup, then it makes for a better cmoparison between the real runs. `--tolerance=50` means that a benchmark isn't considered degraded unless it's delta is greater than +50%. Action runners can have inconsistent performance within the same run. This helps mitigate a lot of false alarms. `--debug` causes benchdiff to output raw results to stderr (among other debug data). I like having this on just to see progress in the logs. See https://github.com/willabides/benchdiff for all available flags. | no | "" |
| benchdiff_version | Version of the benchdiff command to use. When a new version of this action is released, the default value will be updated to the latest version of benchdiff that isn't a breaking change from the previous default. | no | 0.5.6 |
| report_status | Whether to report the status. Any value other than "true" is interpreted as false. I call this "status" because that's a better known term. What is actually created is a check-run. | no | true |
| status_name | Name to use in reporting status. This is the name of the check-run that is created. | no | benchdiff |
| status_sha | Report status to this sha. Default is the head of your benchdiff run. | no | "" |
| status_on_degraded | Status to report for degraded results. Options are "success", "failure" and "neutral" | no | failure |
| github_token | Authentication token to use for reporting status. If you use a non-default token it needs to be a token for a GitHub App installation with permission to create a check-run. | no | ${{ github.token }} |
Outputs
| name | description |
|---|---|
| benchstat_output | Stdout from the benchdiff command. |
| bench_command | Command used to run benchmarks. This is derived from the `benchdiff_args` input. |
| degraded_result | Whether any of the benchmarks degraded between base and head. |
| head_sha | The git revision benchstat used as head. |
| base_sha | The git revision benchstat used as base. |