Skip to content

Commit

Permalink
Create benchmark_pr.yml (#141)
Browse files Browse the repository at this point in the history
* Create benchmark_pr.yml

Benchmark workflow for Pull Request

* Update benchmark_pr.yml

* Update benchmark_pr.yml

* Update benchmark_pr.yml
  • Loading branch information
ZigRazor authored Oct 21, 2021
1 parent 69257f5 commit c80ec1d
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/benchmark_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Benchmark
on:
#push:
# branches: [ master ]
pull_request:
branches: [ master ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release

jobs:
benchmark:
name: Performance regression check
runs-on: ubuntu-latest
steps:
- name: Install gtest manually
run: sudo apt-get install libgtest-dev

- name: Install benchmark manually
run: |
git clone https://github.com/google/benchmark.git
git clone https://github.com/google/googletest.git benchmark/googletest
cd benchmark
cmake -E make_directory "build"
cmake -E chdir "build" cmake -DCMAKE_BUILD_TYPE=Release ../
cmake --build "build" --config Release
sudo cmake --build "build" --config Release --target install
- uses: actions/checkout@v2

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBENCHMARK=ON

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Download previous benchmark data
uses: actions/cache@v1
with:
path: ./cache
key: ${{ runner.os }}-benchmark

- name: Benchmarking
working-directory: ${{github.workspace}}/build
run: ./benchmark --benchmark_format=json | tee benchmark_result.json
# Run `github-action-benchmark` action
- name: Store benchmark result
uses: rhysd/github-action-benchmark@v1
with:
# What benchmark tool the output.txt came from
tool: 'googlecpp'
# Where the output from the benchmark tool is stored
output-file-path: ${{github.workspace}}/build/benchmark_result.json
# Where the previous data file is stored
#external-data-json-path: ./cache/benchmark-data.json
# Workflow will fail when an alert happens
fail-on-alert: false
# Upload the updated cache file for the next job by actions/cache
# Personal access token to deploy GitHub Pages branch
github-token: ${{ secrets.PERSONAL_TOKEN }}
# Push and deploy GitHub pages branch automatically
#auto-push: true
# Enable alert commit comment
comment-on-alert: true
# Mention @rhysd in the commit comment
alert-comment-cc-users: '@ZigRazor'

1 comment on commit c80ec1d

@ZigRazor
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: c80ec1d Previous: 69257f5 Ratio
RemoveEdgeX_MT_TS/4096/threads:2 560058.2490117239 ns/iter 216532.5492289298 ns/iter 2.59

This comment was automatically generated by workflow using github-action-benchmark.

CC: @ZigRazor

Please sign in to comment.