1
- # Executes benchmarks implemented in this repository
1
+ # Executes benchmarks implemented in this repository,
2
+ # using scripts for benchmark results visualisation,
3
+ # which are downloaded from Unified Runtime repository.
4
+ # The results are displayed in form of charts on Github Pages
5
+ # at <github-pages-url>/benchmark_results.html
2
6
name : Benchmarks
3
7
4
8
on :
5
9
workflow_call :
6
10
inputs :
7
11
pr_no :
8
- required : true
12
+ # required: true
9
13
# even though this is a number, this is a workaround for issues with
10
14
# reusable workflow calls that result in "Unexpected value '0'" error.
11
15
type : string
30
34
jobs :
31
35
benchmarks :
32
36
name : Benchmarks
33
- # env:
34
- # VCPKG_PATH: "${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
35
37
strategy :
36
38
matrix :
37
- os : ['ubuntu-latest'] # , 'windows-latest']
38
- include :
39
- # Windows doesn't recognize 'CMAKE_BUILD_TYPE', it uses '--config' param in build command to determine the build type
40
- - os : ubuntu-latest
41
- extra_build_option : ' -DCMAKE_BUILD_TYPE=Release'
39
+ os : ['ubuntu-latest']
42
40
runs-on : ${{matrix.os}}
43
41
44
42
steps :
43
+ # Workspace on self-hosted runners is not cleaned automatically.
44
+ # We have to delete the files created outside of using actions.
45
+ - name : Cleanup self-hosted workspace
46
+ if : always()
47
+ run : |
48
+ ls -la ./
49
+ rm -rf ./* || true
50
+
45
51
- name : Add comment to PR
46
52
uses : actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
47
53
if : ${{ always() && inputs.pr_no != 0 }}
@@ -75,31 +81,17 @@ jobs:
75
81
git rev-parse origin/pr/${PR_NO}/merge
76
82
77
83
- name : Install apt packages
78
- if : matrix.os == 'ubuntu-latest'
79
84
run : |
80
85
sudo apt-get update
81
86
sudo apt-get install -y cmake libhwloc-dev libnuma-dev libtbb-dev
82
87
83
- # - name: Initialize vcpkg
84
- # if: matrix.os == 'windows-latest'
85
- # uses: lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
86
- # with:
87
- # vcpkgGitCommitId: 3dd44b931481d7a8e9ba412621fa810232b66289
88
- # vcpkgDirectory: ${{env.BUILD_DIR}}/vcpkg
89
- # vcpkgJsonGlob: '**/vcpkg.json'
90
-
91
- # - name: Install vcpkg packages
92
- # if: matrix.os == 'windows-latest'
93
- # run: vcpkg install
94
- # shell: pwsh # Specifies PowerShell as the shell for running the script.
95
-
96
- # -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
97
88
- name : Configure build
98
89
run : >
99
90
cmake
100
91
-B ${{env.BUILD_DIR}}
101
92
${{matrix.extra_build_option}}
102
93
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
94
+ -DCMAKE_BUILD_TYPE=Release
103
95
-DUMF_BUILD_SHARED_LIBRARY=ON
104
96
-DUMF_BUILD_BENCHMARKS=ON
105
97
-DUMF_BUILD_BENCHMARKS_MT=ON
@@ -112,13 +104,8 @@ jobs:
112
104
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
113
105
114
106
- name : Build UMF on Linux
115
- if : matrix.os == 'ubuntu-latest'
116
107
run : cmake --build ${{env.BUILD_DIR}} -j $(nproc)
117
108
118
- # - name: Build UMF on Windows
119
- # if: matrix.os == 'windows-latest'
120
- # run: cmake --build ${{env.BUILD_DIR}} --config Release -j $Env:NUMBER_OF_PROCESSORS
121
-
122
109
- name : Checkout UR
123
110
uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
124
111
with :
@@ -132,14 +119,12 @@ jobs:
132
119
pip install --force-reinstall -r ${{github.workspace}}/ur-repo/third_party/benchmark_requirements.txt
133
120
134
121
- name : Install HWLOC
135
- if : matrix.os == 'ubuntu-latest'
136
122
run : |
137
123
sudo apt-get update
138
124
sudo apt-get install libhwloc-dev
139
125
140
126
- name : Run benchmarks
141
127
id : benchmarks
142
- if : matrix.os == 'ubuntu-latest'
143
128
working-directory : ${{env.BUILD_DIR}}
144
129
run : >
145
130
${{ github.workspace }}/ur-repo/scripts/benchmarks/main.py
@@ -152,16 +137,6 @@ jobs:
152
137
run : >
153
138
echo 'out: ${{ steps.benchmarks.outcome }}'
154
139
155
- # - name: Run benchmarks
156
- # if: matrix.os == 'windows-latest'
157
- # working-directory: ${{env.BUILD_DIR}}
158
- # run: >
159
- # python3 ${{ github.workspace }}/ur-repo/scripts/benchmarks/main.py
160
- # ~/bench_workdir
161
- # --umf ${{env.BUILD_DIR}}
162
- # ${{ inputs.upload_report && '--output-html' || '' }}
163
- # ${{ inputs.bench_script_params }}
164
-
165
140
- name : Add comment to PR
166
141
uses : actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
167
142
if : ${{ always() && inputs.pr_no != 0 }}
0 commit comments