|
59 | 59 | # We only test several OTP versions with default compilers for supported OSes (gcc 11, gcc 13, clang 14, clang 18) |
60 | 60 | cc: ["gcc-11", "gcc-13", "clang-14", "clang-18"] |
61 | 61 | otp: ["26", "27", "28"] |
| 62 | + mbedtls: ["default"] |
62 | 63 |
|
63 | 64 | include: |
64 | 65 | ### gcc |
@@ -159,6 +160,12 @@ jobs: |
159 | 160 | otp: "master" |
160 | 161 | elixir_version: "main" |
161 | 162 |
|
| 163 | + # Additional mbedtls@4 coverage with the default Linux toolchain |
| 164 | + - cc: "cc" |
| 165 | + cxx: "c++" |
| 166 | + otp: "28" |
| 167 | + mbedtls: "mbedtls@4" |
| 168 | + |
162 | 169 | # Additional latest & -Os compiler builds |
163 | 170 | - cc: "gcc-14" |
164 | 171 | cxx: "g++-14" |
@@ -494,13 +501,26 @@ jobs: |
494 | 501 | run: sudo apt update -y |
495 | 502 |
|
496 | 503 | - name: "Install deps" |
497 | | - if: matrix.container != '' |
498 | | - run: sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev |
| 504 | + if: matrix.container != '' && matrix.mbedtls != 'mbedtls@4' |
| 505 | + run: | |
| 506 | + sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev |
| 507 | +
|
| 508 | + - name: "Install deps (MbedTLS 4)" |
| 509 | + if: matrix.container != '' && matrix.mbedtls == 'mbedtls@4' |
| 510 | + run: | |
| 511 | + sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind |
499 | 512 |
|
500 | 513 | - name: "Install deps" |
501 | | - if: matrix.container == '' |
| 514 | + if: matrix.container == '' && matrix.mbedtls != 'mbedtls@4' |
| 515 | + run: | |
| 516 | + sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libc6-dbg libmbedtls-dev |
| 517 | + # Get a more recent valgrind |
| 518 | + sudo snap install valgrind --classic |
| 519 | +
|
| 520 | + - name: "Install deps (MbedTLS 4)" |
| 521 | + if: matrix.container == '' && matrix.mbedtls == 'mbedtls@4' |
502 | 522 | run: | |
503 | | - sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libmbedtls-dev libc6-dbg |
| 523 | + sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libc6-dbg |
504 | 524 | # Get a more recent valgrind |
505 | 525 | sudo snap install valgrind --classic |
506 | 526 |
|
@@ -536,6 +556,19 @@ jobs: |
536 | 556 | https://repo.hex.pm |
537 | 557 | https://cdn.jsdelivr.net/hex |
538 | 558 |
|
| 559 | + - name: "Install specific MbedTLS version" |
| 560 | + if: matrix.mbedtls == 'mbedtls@4' |
| 561 | + run: | |
| 562 | + git clone --depth 1 --branch mbedtls-4.0.0 --recurse-submodules https://github.com/Mbed-TLS/mbedtls |
| 563 | + cd mbedtls |
| 564 | + mkdir build |
| 565 | + cd build |
| 566 | + cmake -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=On -DCMAKE_INSTALL_PREFIX=/usr/local .. |
| 567 | + make -j$(nproc) |
| 568 | + sudo make install |
| 569 | + sudo ldconfig |
| 570 | + echo "MBEDTLS_ROOT_DIR=/usr/local" >> $GITHUB_ENV |
| 571 | +
|
539 | 572 | # Builder info |
540 | 573 | - name: "System info" |
541 | 574 | run: | |
@@ -566,13 +599,23 @@ jobs: |
566 | 599 | key: ${{ matrix.otp || env.DEFAULT_OTP_VERSION }}-${{ hashFiles('**/build-and-test.yaml', 'tests/**/*.erl', 'tests/**/*.hrl', 'tests/**/*.ex') }}-${{ matrix.jit_target_arch || 'nojit' }}-${{ contains(matrix.cmake_opts_other, 'AVM_DISABLE_JIT_DWARF=OFF') && 'dwarf' || 'nodwarf' }} |
567 | 600 |
|
568 | 601 | - name: "Build: run cmake" |
| 602 | + if: matrix.mbedtls != 'mbedtls@4' |
569 | 603 | working-directory: build |
570 | 604 | run: | |
571 | 605 | cmake ${{ matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} .. |
572 | 606 | # git clone will use more recent timestamps than cached beam files |
573 | 607 | # touch them so we can benefit from the cache and avoid costly beam file rebuild. |
574 | 608 | find . -name '*.beam' -exec touch {} \; |
575 | 609 |
|
| 610 | + - name: "Build: run cmake (MbedTLS 4)" |
| 611 | + if: matrix.mbedtls == 'mbedtls@4' |
| 612 | + working-directory: build |
| 613 | + run: | |
| 614 | + cmake -DMBEDTLS_ROOT_DIR=/usr/local ${{ matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} .. |
| 615 | + # git clone will use more recent timestamps than cached beam files |
| 616 | + # touch them so we can benefit from the cache and avoid costly beam file rebuild. |
| 617 | + find . -name '*.beam' -exec touch {} \; |
| 618 | +
|
576 | 619 | - name: "Build: run make" |
577 | 620 | working-directory: build |
578 | 621 | run: make -j3 |
|
0 commit comments