1616
1717jobs :
1818 formatting-check :
19- runs-on : ubuntu-22 .04
19+ runs-on : ubuntu-24 .04
2020 name : Formatting checks
2121 steps :
2222 - name : Cheking out source tree
@@ -37,24 +37,22 @@ jobs:
3737
3838 - name : Install dependencies on ubuntu
3939 run : |
40- wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
41- echo deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main | sudo tee /etc/apt/sources.list.d/llvm.list
4240 sudo apt-get update
43- sudo apt-get install clang-format-17
41+ sudo apt-get install clang-format-18
4442
4543 - name : Info Clang Format
46- run : clang-format-17 --version
44+ run : clang-format-18 --version
4745
48- - name : Check formatting with git clang-format-17
46+ - name : Check formatting with git clang-format-18
4947 working-directory : ${{github.workspace}}/src
50- run : git clang-format-17 --diff --binary=clang-format-17 HEAD~
48+ run : git clang-format-18 --diff --binary=clang-format-18 HEAD~
5149
5250 build :
5351 # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
5452 # You can convert this to a matrix build if you need cross-platform coverage.
5553 # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
5654 name : ${{ matrix.config.name }}
57- runs-on : ubuntu-22 .04
55+ runs-on : ubuntu-24 .04
5856 strategy :
5957 fail-fast : false
6058 matrix :
@@ -76,24 +74,20 @@ jobs:
7674 mtr_options : " --sanitize"
7775 }
7876 - {
79- name : " Clang 17 Debug" ,
80- label : " debug_clang17 " ,
77+ name : " Clang 18 Debug" ,
78+ label : " debug_clang18 " ,
8179 run_clang_tidy : true
8280 }
8381 - {
84- name : " Clang 17 RelWithDebInfo" ,
85- label : " release_clang17 " ,
82+ name : " Clang 18 RelWithDebInfo" ,
83+ label : " release_clang18 " ,
8684 run_clang_tidy : true
8785 }
8886 - {
89- name : " Clang 17 ASan" ,
90- label : " asan_clang17"
91- # TODO: re-enable running MTR under "Clang 17 ASan"
92- # run_mtr: true,
93- # mtr_options: "--sanitize"
94- # when "-stdlib=libc++ -fsanitize=address" alloc-dealloc-mismatch issue is fixed
95- # (https://github.com/llvm/llvm-project/issues/59432)
96- # or CI is upgraded to Clang 18
87+ name : " Clang 18 ASan" ,
88+ label : " asan_clang18" ,
89+ run_mtr : true,
90+ mtr_options : " --sanitize"
9791 }
9892
9993 steps :
@@ -128,15 +122,12 @@ jobs:
128122 - name : Install Clang dependencies on ubuntu
129123 if : startsWith(matrix.config.name, 'Clang')
130124 run : |
131- wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
132- echo deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main | sudo tee /etc/apt/sources.list.d/llvm.list
133125 sudo apt-get update
134- sudo apt-get install clang-17 lld-17 clang-tidy-17 libc++-17 -dev libc++1-17 libc++abi-17 -dev libc++abi1-17
126+ sudo apt-get install clang-18 lld-18 clang-tidy-18 libc++-18 -dev libc++1-18 libc++abi-18 -dev libc++abi1-18
135127
136128 - name : Install GCC dependencies on ubuntu
137129 if : startsWith(matrix.config.name, 'GCC')
138130 run : |
139- sudo add-apt-repository ppa:ubuntu-toolchain-r/test
140131 sudo apt-get update
141132 sudo apt-get install g++-13
142133
@@ -239,19 +230,23 @@ jobs:
239230
240231 - name : Info Clang Tidy
241232 if : matrix.config.run_clang_tidy
242- run : clang-tidy-17 --version
233+ run : clang-tidy-18 --version
243234
244235 - name : Clang Tidy
245236 if : matrix.config.run_clang_tidy
246237 # Run Clang Tidy
247- run : run-clang-tidy-17 -header-filter=.* -j=${{steps.cpu-cores.outputs.count}} -use-color -p=${{github.workspace}}/src-build-${{matrix.config.label}}
238+ run : run-clang-tidy-18 -header-filter=.* -j=${{steps.cpu-cores.outputs.count}} -use-color -p=${{github.workspace}}/src-build-${{matrix.config.label}}
248239
249240 - name : MTR tests
250241 if : matrix.config.run_mtr
251242 working-directory : /usr/lib/mysql-test
252243 run : |
253- # Switching MySQL Server Apparmor profile to "complain" as we are creating a custom data directory
254- sudo aa-complain /usr/sbin/mysqld
244+ # TODO: consider adding ${{runner.temp}}/mtrvardir into the list of
245+ # writable directories in '/etc/apparmor.d/usr.sbin.mysqld' AppArmor
246+ # profile instead of disabling it completely.
247+ # Disabling MySQL Server Apparmor profile as we are creating a custom data directory
248+ sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable
249+ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
255250 # Linking the "binlog_streaming" from the source tree into the MTR suits directory on the system
256251 sudo ln -s ${{github.workspace}}/src/mtr/binlog_streaming /usr/lib/mysql-test/suite/binlog_streaming
257252 # Running MTR from the system package
0 commit comments