Hi, Sergey, thanks for the patch! See my comments. Sergey On 5/19/26 15:39, Sergey Kaplun wrote: > The debugger extension test is run for both LLDB and GDB for GC64 and > non-GC64 builds for arm64 and x86_64. > --- > .github/actions/setup-debuggers/README.md | 13 +++++ > .github/actions/setup-debuggers/action.yml | 12 +++++ > .github/workflows/debuggers.yml | 61 ++++++++++++++++++++++ > 3 files changed, 86 insertions(+) > create mode 100644 .github/actions/setup-debuggers/README.md > create mode 100644 .github/actions/setup-debuggers/action.yml > create mode 100644 .github/workflows/debuggers.yml > > diff --git a/.github/actions/setup-debuggers/README.md b/.github/actions/setup-debuggers/README.md > new file mode 100644 > index 00000000..7c542ddb > --- /dev/null > +++ b/.github/actions/setup-debuggers/README.md > @@ -0,0 +1,13 @@ > +# Setup environment for testing debugger extension on Linux > + > +Action setups the environment on Linux runners (install requirements, setup the > +workflow environment, etc.) for testing the python debugger extension for > +various debuggers. > + > +## How to use Github Action from Github workflow > + > +Add the following code to the running steps before LuaJIT configuration: > +``` > +- uses: ./.github/actions/setup-debuggers > + if: ${{ matrix.OS == 'Linux' }} > +``` > diff --git a/.github/actions/setup-debuggers/action.yml b/.github/actions/setup-debuggers/action.yml > new file mode 100644 > index 00000000..c34d4502 > --- /dev/null > +++ b/.github/actions/setup-debuggers/action.yml > @@ -0,0 +1,12 @@ > +name: Setup CI environment for testing the debugger extension > +description: The Linux machine setup for tests of the debugger extension > +runs: > + using: composite > + steps: > + - name: Setup CI environment (Linux) > + uses: ./.github/actions/setup-linux > + - name: Install dependencies for the tests > + run: | > + apt -y update > + apt install -y python3 gdb lldb Why Python 3 only? AFAIR we discussed that Python 2 should be supported as well, it means we should test with Python 2 too. Also, should we test with the latest versions of GDB/LLDB? > + shell: bash > diff --git a/.github/workflows/debuggers.yml b/.github/workflows/debuggers.yml > new file mode 100644 > index 00000000..489c2bed > --- /dev/null > +++ b/.github/workflows/debuggers.yml > @@ -0,0 +1,61 @@ > +name: Debuggers > + > +on: > + push: > + branches-ignore: > + - '**-notest' > + - 'upstream-**' > + tags-ignore: > + - '**' > + > +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. > + # > + # 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: > + test-debuggers: > + strategy: > + fail-fast: false > + matrix: > + ARCH: [ARM64, x86_64] > + GC64: [ON, OFF] > + exclude: > + - ARCH: ARM64 > + GC64: OFF > + runs-on: [self-hosted, regular, Linux, '${{ matrix.ARCH }}'] > + name: > > + LuaJIT > + (${{ matrix.ARCH }}) > +GC64:${{ matrix.GC64 }} > + steps: > + - uses: actions/checkout@v4 > + with: > + fetch-depth: 0 > + submodules: recursive > + - name: setup debuggers > + uses: ./.github/actions/setup-debuggers > + - name: configure > + run: > > + cmake -S . -B ${{ env.BUILDDIR }} > + -DCMAKE_BUILD_TYPE=Debug > + -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }} > + - name: build > + run: cmake --build . --parallel > + working-directory: ${{ env.BUILDDIR }} > + - name: test > + run: cmake --build . --parallel --target tarantool-debugger-tests > + working-directory: ${{ env.BUILDDIR }}