Hi, Sergey,
LGTM
Sergey
Hi, Sergey! Thanks for the review! Please consider my answers below. Fixed your comment and force-pushed the branch. On 13.01.26, Sergey Bronnikov wrote:Hi, Sergey! thanks for the patch! Please see my comments. Sergey On 12/26/25 12:18, Sergey Kaplun wrote:This patch adds the workflow to run benchmarks from various suites, aggregate their results, and send statistics to the InfluxDB to be processed later. The workflow contains a matrix to measure GC64 and non-GC64 modes with enabled/disabled JIT for x64 architecture. --- .github/actions/setup-performance/README.md | 10 ++ .github/actions/setup-performance/action.yml | 18 +++ .github/workflows/performance.yml | 110 +++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 .github/actions/setup-performance/README.md create mode 100644 .github/actions/setup-performance/action.yml create mode 100644 .github/workflows/performance.yml diff --git a/.github/actions/setup-performance/README.md b/.github/actions/setup-performance/README.md new file mode 100644 index 00000000..4c4bbdab --- /dev/null +++ b/.github/actions/setup-performance/README.md<snipped>diff --git a/.github/actions/setup-performance/action.yml b/.github/actions/setup-performance/action.yml new file mode 100644 index 00000000..24d07440 --- /dev/null +++ b/.github/actions/setup-performance/action.yml @@ -0,0 +1,18 @@ +name: Setup performance +description: The Linux machine setup for running LuaJIT benchmarks +runs: + using: composite + steps: + - name: Setup CI environment (Linux) + uses: ./.github/actions/setup-linux + - name: Install dependencies for the LuaJIT benchmarks + run: | + apt -y update + apt install -y luarocks curlI propose to add util-linux package that provides taskset utility.Sure! Added: =================================================================== diff --git a/.github/actions/setup-performance/action.yml b/.github/actions/setup-performance/action.yml index 24d07440..4e0e1929 100644 --- a/.github/actions/setup-performance/action.yml +++ b/.github/actions/setup-performance/action.yml @@ -8,7 +8,7 @@ runs: - name: Install dependencies for the LuaJIT benchmarks run: | apt -y update - apt install -y luarocks curl + apt install -y curl luarocks util-linux shell: bash - name: Install Lua modules run: luarocks install lua-cjson ===================================================================+ shell: bash + - name: Install Lua modules + run: luarocks install lua-cjson + shell: bash + - name: Run script to setup Linux environment + run: sh ./perf/helpers/setup_env.sh + shell: bash diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml new file mode 100644 index 00000000..fe22eb4b --- /dev/null +++ b/.github/workflows/performance.yml<snipped>+concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + #do we need this text?I suppose yes, it is left intact with the strange hacks below. It is a generic part for all workflows.+ # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('{0}-{1}', github.run_id, github.run_attempt) + || format('{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + performance-luajit: + # The 'performance' label _must_ be set only for the single + # runner to guarantee that results are not dependent on the + # machine.we don't use PR's in LuaJITIt is about runner label, not PR label.+ runs-on: + - self-hosted + - Linux + - x86_64 + - 'performance'<snipped>