diff --git a/.github/workflows/jsroot-ci-old.yml b/.github/workflows/jsroot-ci-old.yml
new file mode 100644
index 000000000..2de76a5c5
--- /dev/null
+++ b/.github/workflows/jsroot-ci-old.yml
@@ -0,0 +1,193 @@
+name: JSROOT CI Old
+
+on:
+  push:
+    branches:
+      - "7.7"
+      - "7.8"
+
+jobs:
+  build-ubuntu:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        node-version: [18.x, 20.x]
+        cxx: [g++-11, g++-12, g++-13]
+
+    steps:
+      - uses: actions/checkout@v4
+      - name: Use Node.js ${{ matrix.node-version }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.node-version }}
+          cache: 'npm'
+
+      - name: Set up C++ compiler (Ubuntu)
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y ${{ matrix.cxx }}
+          sudo apt-get install -y xutils-dev libxi-dev libxxf86vm-dev x11proto-xf86vidmode-dev mesa-utils xvfb libgl1-mesa-dri libglapi-mesa libosmesa6 musl-dev libgl1-mesa-dev
+          sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev pkg-config
+          echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV
+
+      - name: Install dependencies
+        run: |
+          npm ci
+          npm install gl --no-save
+
+      - name: Run eslint
+        run: |
+          npm run check
+
+      - name: Build jsroot.js
+        run: |
+          npm run build
+
+      - name: Run demos
+        run: |
+          cd demo/node; npm install; cd ../..
+          xvfb-run -s "-ac -screen 0 1280x1024x24" node demo/node/makesvg.js
+          node demo/node/tree_dump.js
+          node demo/node/tree_draw.js
+          xvfb-run -s "-ac -screen 0 1280x1024x24" node demo/node/geomsvg.js
+          node demo/node/selector.js
+          cd demo/node; xvfb-run -s "-ac -screen 0 1280x1024x24" node make_image.js
+
+  tests_ubuntu:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        node-version: [18.x, 20.x]
+    steps:
+      - name: Checkout jsroot
+        uses: actions/checkout@v4
+        with:
+          path: 'jsroot'
+
+      - name: Checkout jsroot-test repo
+        uses: actions/checkout@v4
+        with:
+          repository: 'linev/jsroot-test'
+          ref: '${{ github.ref }}'
+          path: 'jsroot-test'
+
+      - name: Show jsroot status
+        run: |
+          cd jsroot
+          git status
+
+      - name: Show jsroot-test status
+        run: |
+          cd jsroot-test
+          git status
+
+      - name: Install System Dependencies for headless-gl
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev xvfb
+
+      - name: Dependencies jsroot
+        run: |
+          cd jsroot
+          npm ci
+          npm install gl --no-save
+
+      - name: Dependencies jsroot-test
+        run: |
+          cd jsroot-test
+          npm install
+
+      - name: Run all tests
+        run: |
+          cd jsroot-test
+          xvfb-run -s "-ac -screen 0 1280x1024x24"  node test.js -c -m -p
+
+  build-macos:
+    runs-on: macos-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        node-version: [18.x, 20.x]
+
+    steps:
+      - uses: actions/checkout@v4
+      - name: Use Node.js ${{ matrix.node-version }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.node-version }}
+          cache: 'npm'
+
+      - name: Configure xcode usage
+        uses: maxim-lobanov/setup-xcode@v1
+        with:
+          xcode-version: latest-stable
+
+      - name: Set up C++ compiler (macOS)
+        run: |
+          echo "CXX=clang++" >> $GITHUB_ENV
+
+      - name: Install dependencies
+        run: |
+          brew install python-setuptools pango librsvg
+          npm ci
+          npm install gl --no-save
+
+      - name: Run eslint
+        run: |
+          npm run check
+
+      - name: Build jsroot.js
+        run: |
+          npm run build
+
+      - name: Run demos
+        run: |
+          cd demo/node; npm install; cd ../..
+          node demo/node/makesvg.js
+          node demo/node/tree_dump.js
+          node demo/node/tree_draw.js
+          node demo/node/selector.js
+          cd demo/node; node make_image.js
+
+  build-windows:
+    runs-on: windows-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        node-version: [18.x, 20.x]
+
+    steps:
+      - uses: actions/checkout@v4
+      - name: Use Node.js ${{ matrix.node-version }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.node-version }}
+          cache: 'npm'
+
+      - name: Set up C++ compiler (Windows)
+        run: |
+          echo "CXX=cl" >> $GITHUB_ENV
+
+      - name: Install dependencies
+        run: |
+          npm install
+          npm install gl --no-save
+
+      - name: Run eslint
+        run: |
+          npm run check
+
+      - name: Build jsroot.js
+        run: |
+          npm run build
+
+      - name: Run demos
+        run: |
+          cd demo/node; npm install; cd ../..
+          node demo/node/makesvg.js
+          node demo/node/tree_dump.js
+          node demo/node/tree_draw.js
+          node demo/node/geomsvg.js
+          node demo/node/selector.js
+          cd demo/node; node make_image.js
diff --git a/.github/workflows/jsroot-ci.yml b/.github/workflows/jsroot-ci.yml
index be5708749..0c0f4ee1b 100644
--- a/.github/workflows/jsroot-ci.yml
+++ b/.github/workflows/jsroot-ci.yml
@@ -4,8 +4,6 @@ on:
   push:
     branches:
       - "master"
-      - "7.7"
-      - "7.8"
   pull_request:
     branches:
       - "master"
@@ -16,11 +14,12 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        node-version: [18.x, 20.x]
+        node-version: [18.x, 20.x, 22.x]
         cxx: [g++-11, g++-12, g++-13]
 
     steps:
       - uses: actions/checkout@v4
+
       - name: Use Node.js ${{ matrix.node-version }}
         uses: actions/setup-node@v4
         with:
@@ -38,7 +37,6 @@ jobs:
       - name: Install dependencies
         run: |
           npm ci
-          npm install gl --no-save
 
       - name: Run eslint
         run: |
@@ -61,8 +59,11 @@ jobs:
   tests_ubuntu:
     runs-on: ubuntu-latest
     strategy:
+      fail-fast: false
       matrix:
-        node-version: [18.x, 20.x]
+        node-version: [18.x, 20.x, 22.x]
+        cxx: [g++-11, g++-12, g++-13]
+
     steps:
       - name: Checkout jsroot
         uses: actions/checkout@v4
@@ -73,18 +74,32 @@ jobs:
         uses: actions/checkout@v4
         with:
           repository: 'linev/jsroot-test'
-          ref: '${{ github.ref }}'
           path: 'jsroot-test'
 
       - name: Show jsroot status
         run: |
-          cd jsroot
-          git status
+            cd jsroot
+            git status
 
       - name: Show jsroot-test status
         run: |
-          cd jsroot-test
-          git status
+            cd jsroot-test
+            git status
+
+      - name: Use Node.js ${{ matrix.node-version }}
+        uses: actions/setup-node@v4
+        with:
+          cache-dependency-path: jsroot/package-lock.json
+          node-version: ${{ matrix.node-version }}
+          cache: 'npm'
+
+      - name: Set up C++ compiler (Ubuntu)
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y ${{ matrix.cxx }}
+          sudo apt-get install -y xutils-dev libxi-dev libxxf86vm-dev x11proto-xf86vidmode-dev mesa-utils xvfb libgl1-mesa-dri libglapi-mesa libosmesa6 musl-dev libgl1-mesa-dev
+          sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev pkg-config
+          echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV
 
       - name: Install System Dependencies for headless-gl
         run: |
@@ -95,7 +110,6 @@ jobs:
         run: |
           cd jsroot
           npm ci
-          npm install gl --no-save
 
       - name: Dependencies jsroot-test
         run: |
@@ -112,7 +126,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        node-version: [18.x, 20.x]
+        node-version: [18.x, 20.x, 22.x]
 
     steps:
       - uses: actions/checkout@v4
@@ -135,7 +149,6 @@ jobs:
         run: |
           brew install python-setuptools pango librsvg
           npm ci
-          npm install gl --no-save
 
       - name: Run eslint
         run: |
@@ -159,7 +172,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        node-version: [18.x, 20.x]
+        node-version: [18.x, 20.x, 22.x]
 
     steps:
       - uses: actions/checkout@v4
@@ -176,7 +189,6 @@ jobs:
       - name: Install dependencies
         run: |
           npm install
-          npm install gl --no-save
 
       - name: Run eslint
         run: |