diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 06f45e42..77a522e8 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -1,20 +1,13 @@ name: Benchmark on: - pull_request +permissions: + pull-requests: write # needed to post comments jobs: benchmark: name: Benchmark runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@latest + - uses: MilesCranmer/AirspeedVelocity.jl@action-v1 with: - version: "1" - - run: git fetch origin '+refs/heads/master:refs/remotes/origin/master' - - run: git branch master origin/master - - run: | - julia --project=benchmark -e ' - using Pkg - Pkg.develop(PackageSpec(path=pwd())) - Pkg.instantiate()' - - run: julia --project=benchmark benchmark/runbenchmarks.jl + julia-version: '1' diff --git a/benchmark/runbenchmarks.jl b/benchmark/runbenchmarks.jl deleted file mode 100644 index 06bedc74..00000000 --- a/benchmark/runbenchmarks.jl +++ /dev/null @@ -1,81 +0,0 @@ -# This file was adapted from Transducers.jl -# which is available under an MIT license (see LICENSE). -using ArgParse -using PkgBenchmark -using Markdown - -function displayresult(result) - md = sprint(export_markdown, result) - md = replace(md, ":x:" => "❌") - md = replace(md, ":white_check_mark:" => "✅") - display(Markdown.parse(md)) -end - -function printnewsection(name) - println() - println() - println() - printstyled("▃" ^ displaysize(stdout)[2]; color=:blue) - println() - printstyled(name; bold=true) - println() - println() -end - -function parse_commandline() - s = ArgParseSettings() - - @add_arg_table! s begin - "--target" - help = "the branch/commit/tag to use as target" - default = "HEAD" - "--baseline" - help = "the branch/commit/tag to use as baseline" - default = "master" - "--retune" - help = "force re-tuning (ignore existing tuning data)" - action = :store_true - end - - return parse_args(s) -end - -function main() - parsed_args = parse_commandline() - - mkconfig(; kwargs...) = - BenchmarkConfig( - env = Dict( - "JULIA_NUM_THREADS" => "1", - ); - kwargs... - ) - - target = parsed_args["target"] - group_target = benchmarkpkg( - dirname(@__DIR__), - mkconfig(id = target), - resultfile = joinpath(@__DIR__, "result-$(target).json"), - retune = parsed_args["retune"], - ) - - baseline = parsed_args["baseline"] - group_baseline = benchmarkpkg( - dirname(@__DIR__), - mkconfig(id = baseline), - resultfile = joinpath(@__DIR__, "result-$(baseline).json"), - ) - - printnewsection("Target result") - displayresult(group_target) - - printnewsection("Baseline result") - displayresult(group_baseline) - - judgement = judge(group_target, group_baseline) - - printnewsection("Judgement result") - displayresult(judgement) -end - -main()