[Tarantool-patches] [PATCH v2 luajit 41/41] ci: introduce the performance workflow

Sergey Bronnikov sergeyb at tarantool.org
Thu Jan 15 10:52:56 MSK 2026


Hi, Sergey,

LGTM

Sergey

On 1/14/26 13:19, Sergey Kaplun wrote:
> 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 curl
>> I 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 LuaJIT
> It is about runner label, not PR label.
>
>>> +    runs-on:
>>> +      - self-hosted
>>> +      - Linux
>>> +      - x86_64
>>> +      - 'performance'
> <snipped>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20260115/23d37f7d/attachment.htm>


More information about the Tarantool-patches mailing list