GitHub Action to transform benchmark output into a standardized format, and write to a file.
Currently supported sources:
cargo bench
criterion
name
(required): name of the benchmarktool
(required): tool used to get benchmark output. One of["cargo"]
os
(required): a string describing the osoutput-file-path
(required): a path to a file containing the output of the benchmark tooldata-out-path
(required): the path where the output of the action should be written
The benchmark name in the cargo
benchmarks can be provided as a ,
-separated string where each item represents a key-value pair with the format key=value
, e.g. category=ML-KEM,keySize=44,name=PK Validation,platform=neon,api=unpacked
.
Alternatively, the benchmark name can be provided as a simple string, which will then be set as the value of the name
key. This will only happen if there are no key=value
pairs found in the benchmark name.
The output will be written to data-out-path
in a standardized JSON format:
[
{
"api": "unpacked",
"category": "ML-KEM",
"keySize": 768,
"name": "PK Validation",
"os": "ubuntu-latest",
"platform": "neon",
"range": "± 123",
"unit": "ns/iter",
"value": 12314,
},
]