1
+ # Performance benchmarking workflow
2
+ name : " Build and Run Benchmark"
3
+ on :
4
+ workflow_dispatch :
5
+ push :
6
+ branches-ignore :
7
+ - ' main'
8
+ - ' [0-9]+.[0-9]+.[0-9]+'
9
+ env :
10
+ MLM_LICENSE_TOKEN : ${{ secrets.MLM_LICENSE_TOKEN }}
11
+ jobs :
12
+ get_version :
13
+ runs-on : ubuntu-20.04
14
+ outputs :
15
+ version : ${{ steps.getversion.outputs.latest_tag }}
16
+ steps :
17
+ # need fetch-depth:0 to also download the tags
18
+ - name : Download OpenTelemetry-Matlab source
19
+ uses : actions/checkout@v3
20
+ with :
21
+ path : opentelemetry-matlab
22
+ fetch-depth : 0
23
+ - name : Get Version
24
+ id : getversion
25
+ shell : bash
26
+ working-directory : opentelemetry-matlab
27
+ run : echo "latest_tag=$(sed -re 's/^v?([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)?.*/\1/' <<< $(git describe --tags --abbrev=0))" >> $GITHUB_OUTPUT
28
+ benchmark-ubuntu :
29
+ # Running on ubuntu-latest would use a glibc version that is incompatible when using the built mex files on a Debian 11
30
+ # Instead, run on ubuntu-20.04
31
+ runs-on : ubuntu-20.04
32
+ needs : get_version
33
+ env :
34
+ OPENTELEMETRY_MATLAB_INSTALL : " ${{ github.workspace }}/otel_matlab_install"
35
+ SYSTEM_LIBSTDCPP_PATH : " /usr/lib/x86_64-linux-gnu/libstdc++.so.6"
36
+ steps :
37
+ - name : Download OpenTelemetry-Matlab source
38
+ uses : actions/checkout@v3
39
+ with :
40
+ path : opentelemetry-matlab
41
+ - name : Install ninja-build
42
+ run : sudo apt-get install ninja-build
43
+ - name : Install MATLAB
44
+ uses : matlab-actions/setup-matlab@v2
45
+ with :
46
+ products : MATLAB_Compiler MATLAB_Compiler_SDK
47
+ - name : Build OpenTelemetry-Matlab
48
+ working-directory : opentelemetry-matlab
49
+ run : |
50
+ cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DOTEL_MATLAB_VERSION=${{ needs.get_version.outputs.version }} -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
51
+ cmake --build build --config Release --target install
52
+ - name : Run Benchmark
53
+ env :
54
+ # Add the installation directory to the MATLAB Search Path by
55
+ # setting the MATLABPATH environment variable.
56
+ MATLABPATH : ${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
57
+ uses : matlab-actions/run-command@v2
58
+ with :
59
+ command : opentelemetry-matlab/test/performance/runPerf
60
+ - name : Download previous benchmark data
61
+ uses : actions/cache@v4
62
+ with :
63
+ path : ./cache
64
+ key : ${{ runner.os }}-benchmark
65
+ - name : Store benchmark result
66
+ uses : benchmark-action/github-action-benchmark@v1
67
+ with :
68
+ tool : ' customSmallerIsBetter'
69
+ output-file-path : opentelemetry-matlab/test/performance/Benchmarks/OutputBenchmark.json
70
+ external-data-json-path : ./cache/OutputBenchmark.json
0 commit comments