From 493ab0c6b4478956bf8f559a59530ea6b8c33b54 Mon Sep 17 00:00:00 2001 From: Ian Date: Sun, 24 Jan 2021 14:01:04 -0500 Subject: [PATCH] add basic CI Benchmarking --- .github/workflows/benchmark.yml | 32 ++++++++++++++++++++++++++++++++ benchmark/benchmarks.jl | 8 ++++++++ 2 files changed, 40 insertions(+) create mode 100644 .github/workflows/benchmark.yml create mode 100644 benchmark/benchmarks.jl diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 00000000..06bde175 --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,32 @@ +name: Run benchmarks + +on: + pull_request: + +jobs: + Benchmark: + if: "!contains(github.event.head_commit.message, '[skip ci]')" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@latest + with: + version: 1 + + ## Setup + - name: Default TESTCMD + run: echo "TESTCMD=julia" >> $GITHUB_ENV + - name: Ubuntu TESTCMD + if: startsWith(matrix.os,'ubuntu') + run: echo "TESTCMD=xvfb-run --auto-servernum julia" >> $GITHUB_ENV + - name: Install Plots dependencies + uses: julia-actions/julia-buildpkg@latest + - name: Install Benchmarking dependencies + run: julia -e 'using Pkg; pkg"add PkgBenchmark BenchmarkCI@0.1"' + + - name: Run benchmarks + run: $TESTCMD -e 'using BenchmarkCI; BenchmarkCI.judge()' + - name: Post results + run: julia -e 'using BenchmarkCI; BenchmarkCI.postjudge()' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/benchmark/benchmarks.jl b/benchmark/benchmarks.jl new file mode 100644 index 00000000..b4994a6c --- /dev/null +++ b/benchmark/benchmarks.jl @@ -0,0 +1,8 @@ +using BenchmarkTools + +const SUITE = BenchmarkGroup() + +# numbered to enforce sequence +SUITE["1_load"] = @benchmarkable @eval(using Plots) +SUITE["2_plot"] = @benchmarkable p = plot(1:0.1:10, sin.(1:0.1:10)) +SUITE["3_display"] = @benchmarkable display(p) setup=(p = plot(1:0.1:10, sin.(1:0.1:10)))