@@ -20,14 +20,14 @@ jobs:
2020    if : (github.event_name == 'push') || 
2121      (github.event_name == 'pull_request' && 
2222        github.event.pull_request.head.repo.full_name != github.repository) 
23-     runs-on : ubuntu-20 .04 
23+     runs-on : ubuntu-24 .04 
2424
2525    strategy :
2626      fail-fast : false 
2727
2828    steps :
2929      - name : Clone the connector repo 
30-         uses : actions/checkout@v3  
30+         uses : actions/checkout@v4  
3131        #  Checkout all tags for correct version computation.
3232        with :
3333          fetch-depth : 0 
3838          python-version : ' 3.11' 
3939
4040      - name : Install tools for packing and verification 
41-         run : pip3 install wheel twine 
41+         run : | 
42+           pip3 install wheel twine 
43+           pip3 install --upgrade setuptools 
4244
4345       - name : Pack source and binary files 
4446        run : make pip-dist 
@@ -65,14 +67,14 @@ jobs:
6567    if : (github.event_name == 'push') || 
6668      (github.event_name == 'pull_request' && 
6769        github.event.pull_request.head.repo.full_name != github.repository) 
68-     runs-on : ubuntu-20 .04 
70+     runs-on : ubuntu-24 .04 
6971
7072    strategy :
7173      fail-fast : false 
7274
7375    steps :
7476      - name : Clone the connector repo 
75-         uses : actions/checkout@v3  
77+         uses : actions/checkout@v4  
7678
7779      - name : Setup Python 
7880        uses : actions/setup-python@v4 
8385        run : python3 .github/scripts/remove_source_code.py 
8486
8587      - name : Install tarantool 
86-         uses : tarantool/setup-tarantool@v2  
88+         uses : tarantool/setup-tarantool@v3  
8789        with :
8890          tarantool-version : ' 2.11' 
8991
@@ -99,10 +101,13 @@ jobs:
99101      - name : Install test requirements 
100102        run : pip3 install -r requirements-test.txt 
101103
104+       #  Installation of the specific CMake version is a hotfix for
105+       #  https://github.com/tarantool/checks/issues/64
102106      - name : Install the crud module for testing purposes 
103107        run : | 
104108          curl -L https://tarantool.io/release/2/installer.sh | bash 
105109          sudo apt install -y tt 
110+           pip3 install cmake==3.15.3 
106111          tt rocks install crud 
107112
108113       - name : Run tests 
@@ -127,7 +132,7 @@ jobs:
127132
128133    steps :
129134      - name : Clone the connector repo 
130-         uses : actions/checkout@v3  
135+         uses : actions/checkout@v4  
131136
132137      - name : Setup Python 
133138        uses : actions/setup-python@v4 
@@ -188,14 +193,14 @@ jobs:
188193      - run_tests_pip_package_linux 
189194      - run_tests_pip_package_windows 
190195
191-     runs-on : ubuntu-20 .04 
196+     runs-on : ubuntu-24 .04 
192197
193198    strategy :
194199      fail-fast : false 
195200
196201    steps :
197202      - name : Clone the connector repo 
198-         uses : actions/checkout@v3  
203+         uses : actions/checkout@v4  
199204
200205      - name : Setup Python and basic packing tools 
201206        uses : actions/setup-python@v4 
@@ -226,7 +231,7 @@ jobs:
226231    if : (github.event_name == 'push') || 
227232      (github.event_name == 'pull_request' && 
228233        github.event.pull_request.head.repo.full_name != github.repository) 
229-     runs-on : ubuntu-20 .04 
234+     runs-on : ubuntu-24 .04 
230235
231236    container :
232237      image : ${{ matrix.target.os }}:${{ matrix.target.dist }} 
@@ -250,7 +255,7 @@ jobs:
250255        run : dnf install -y git 
251256
252257      - name : Clone the connector repo 
253-         uses : actions/checkout@v3  
258+         uses : actions/checkout@v4  
254259        #  Checkout all tags for correct version computation.
255260        with :
256261          fetch-depth : 0 
@@ -293,7 +298,7 @@ jobs:
293298    if : (github.event_name == 'push') || 
294299      (github.event_name == 'pull_request' && 
295300        github.event.pull_request.head.repo.full_name != github.repository) 
296-     runs-on : ubuntu-20 .04 
301+     runs-on : ubuntu-24 .04 
297302
298303    container :
299304      image : ${{ matrix.target.os }}:${{ matrix.target.dist }} 
@@ -312,7 +317,7 @@ jobs:
312317
313318    steps :
314319      - name : Clone the connector repo 
315-         uses : actions/checkout@v3  
320+         uses : actions/checkout@v4  
316321
317322      - name : Setup Python and test running tools 
318323        #  cmake rocks fail to install as expected without findutils:
@@ -343,6 +348,7 @@ jobs:
343348        run : | 
344349          curl -L https://tarantool.io/release/2/installer.sh | bash 
345350          sudo dnf install -y tt 
351+           pip3 install cmake==3.15.3 
346352          tt rocks install crud 
347353
348354       - name : Run tests 
@@ -354,7 +360,7 @@ jobs:
354360    needs :
355361      - run_tests_rpm 
356362
357-     runs-on : ubuntu-20 .04 
363+     runs-on : ubuntu-24 .04 
358364
359365    strategy :
360366      fail-fast : false 
@@ -370,7 +376,7 @@ jobs:
370376
371377    steps :
372378      - name : Clone the connector repo 
373-         uses : actions/checkout@v3  
379+         uses : actions/checkout@v4  
374380
375381      - name : Install tools for package publishing 
376382        run : sudo apt install -y curl make 
@@ -404,14 +410,14 @@ jobs:
404410    if : (github.event_name == 'push') || 
405411      (github.event_name == 'pull_request' && 
406412        github.event.pull_request.head.repo.full_name != github.repository) 
407-     runs-on : ubuntu-20 .04 
413+     runs-on : ubuntu-24 .04 
408414
409415    strategy :
410416      fail-fast : false 
411417
412418    steps :
413419      - name : Clone the connector repo 
414-         uses : actions/checkout@v3  
420+         uses : actions/checkout@v4  
415421        #  Checkout all tags for correct version computation
416422        with :
417423          fetch-depth : 0 
@@ -420,6 +426,7 @@ jobs:
420426        run : | 
421427          sudo apt update 
422428          sudo apt install -y devscripts equivs 
429+           sudo apt install python3-setuptools python3-stdeb dh-python 
423430
424431       - name : Make changelog entry for non-release build 
425432        if : startsWith(github.ref, 'refs/tags') != true 
@@ -453,7 +460,7 @@ jobs:
453460    if : (github.event_name == 'push') || 
454461      (github.event_name == 'pull_request' && 
455462        github.event.pull_request.head.repo.full_name != github.repository) 
456-     runs-on : ubuntu-20 .04 
463+     runs-on : ubuntu-24 .04 
457464
458465    container :
459466      image : ${{ matrix.target.os }}:${{ matrix.target.dist }} 
@@ -463,18 +470,20 @@ jobs:
463470
464471      matrix :
465472        target :
473+         - os : debian 
474+           dist : bullseye  #  11
475+         - os : debian 
476+           dist : bookworm  #  12
466477        - os : ubuntu 
467478          dist : focal  #  20.04
468479        - os : ubuntu 
469480          dist : jammy  #  22.04
470-         - os : debian 
471-           dist : buster  #  10
472-         - os : debian 
473-           dist : bullseye  #  11
481+         - os : ubuntu 
482+           dist : noble  #  24.04
474483
475484    steps :
476485      - name : Clone the connector repo 
477-         uses : actions/checkout@v3  
486+         uses : actions/checkout@v4  
478487
479488      - name : Prepare apt 
480489        run : apt update 
@@ -504,25 +513,56 @@ jobs:
504513        env :
505514          DEBIAN_FRONTEND : noninteractive 
506515
516+       #  Usage of venv is mandatory starting with Debian 12 and Ubuntu 24.04.
517+       - name : Create venv 
518+         run : | 
519+           apt install -y python3-venv 
520+           python3 -m venv .venv 
521+ 
507522       - name : Install test requirements 
508523        run : pip3 install -r requirements-test.txt 
524+         if : matrix.target.dist != 'bookworm' && matrix.target.dist != 'noble' 
525+ 
526+       - name : Install test requirements 
527+         run : | 
528+           . .venv/bin/activate 
529+           pip3 install -r requirements-test.txt 
530+          if : matrix.target.dist == 'bookworm' || matrix.target.dist == 'noble' 
509531
510532      - name : Install the crud module for testing purposes 
511533        run : | 
512534          curl -L https://tarantool.io/release/2/installer.sh | bash 
513535          apt install -y tt 
514536          tt rocks install crud 
537+          if : matrix.target.dist != 'bookworm' && matrix.target.dist != 'noble' 
538+       
539+       - name : Install the crud module for testing purposes 
540+         run : | 
541+           . .venv/bin/activate 
542+           curl -L https://tarantool.io/release/3/installer.sh | bash 
543+           apt install -y tt 
544+           tt rocks install crud 
545+          if : matrix.target.dist == 'bookworm' || matrix.target.dist == 'noble' 
515546
516547      - name : Run tests 
517548        run : make test-pure-install 
549+         if : matrix.target.dist != 'bookworm' && matrix.target.dist != 'noble' 
550+ 
551+       - name : Run tests 
552+         run : | 
553+           . .venv/bin/activate 
554+           export PYTHONPATH=$PYTHONPATH:/usr/lib/python3.11:/usr/lib/python3.12:/usr/bin:/usr/lib/python3/dist-packages 
555+           export PATH=$PATH:/usr/lib/python3/dist-packages 
556+           make test-pure-install 
557+          if : matrix.target.dist == 'bookworm' || matrix.target.dist == 'noble' 
518558
519559  publish_deb :
520560    if : startsWith(github.ref, 'refs/tags') 
521561
522562    needs :
523563      - run_tests_deb 
524564
525-     runs-on : ubuntu-20 .04 
565+     runs-on : ubuntu-24 .04 
526566
527567    strategy :
528568      fail-fast : false 
@@ -533,14 +573,18 @@ jobs:
533573          dist : focal  #  20.04
534574        - os : ubuntu 
535575          dist : jammy  #  22.04
576+         - os : ubuntu 
577+           dist : noble  #  24.04
536578        - os : debian 
537579          dist : buster  #  10
538580        - os : debian 
539581          dist : bullseye  #  11
582+         - os : debian 
583+           dist : bookworm  #  12
540584
541585    steps :
542586      - name : Clone the connector repo 
543-         uses : actions/checkout@v3  
587+         uses : actions/checkout@v4  
544588
545589      - name : Install tools for package publishing 
546590        run : sudo apt install -y curl make 
0 commit comments