Skip to content

Commit 6c607cb

Browse files
committed
Add mbedtls4 CI coverage
Signed-off-by: Peter M <petermm@gmail.com>
1 parent 936a5f7 commit 6c607cb

2 files changed

Lines changed: 84 additions & 6 deletions

File tree

.github/workflows/build-and-test-on-freebsd.yaml

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ concurrency:
3535
jobs:
3636
build-and-test-on-freebsd:
3737
runs-on: ubuntu-24.04
38-
name: Build and test AtomVM on FreeBSD
38+
name: Build and test AtomVM on FreeBSD ${{ matrix.os_release }} (${{ matrix.mbedtls }})
3939
env:
4040
ATOMVM_EXAMPLE: "atomvm-example"
4141

@@ -44,6 +44,10 @@ jobs:
4444

4545
matrix:
4646
os_release: ["13.5", "14.3", "15.0"]
47+
mbedtls: ["mbedtls@3"]
48+
include:
49+
- os_release: "14.3"
50+
mbedtls: "mbedtls@4"
4751

4852
steps:
4953

@@ -63,7 +67,30 @@ jobs:
6367
- name: "Install deps"
6468
shell: freebsd {0}
6569
run: |
66-
pkg install -y curl cmake gperf erlang elixir rebar3 mbedtls3 ninja
70+
pkg install -y curl cmake gperf erlang elixir rebar3 ninja
71+
72+
- name: "Install MbedTLS 3"
73+
if: matrix.mbedtls == 'mbedtls@3'
74+
shell: freebsd {0}
75+
run: |
76+
pkg install -y mbedtls3
77+
78+
- name: "Install deps for MbedTLS 4"
79+
if: matrix.mbedtls == 'mbedtls@4'
80+
shell: freebsd {0}
81+
run: |
82+
pkg install -y git
83+
84+
- name: "Install specific MbedTLS version"
85+
if: matrix.mbedtls == 'mbedtls@4'
86+
shell: freebsd {0}
87+
run: |
88+
cd $GITHUB_WORKSPACE;
89+
git clone --depth 1 --branch mbedtls-4.0.0 --recurse-submodules https://github.com/Mbed-TLS/mbedtls
90+
cd mbedtls
91+
cmake -S . -B build -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=On -DCMAKE_INSTALL_PREFIX=/usr/local
92+
cmake --build build -j$(sysctl -n hw.ncpu)
93+
cmake --install build
6794
6895
- name: "Add hostname to /etc/hosts for distribution tests"
6996
shell: freebsd {0}
@@ -102,6 +129,15 @@ jobs:
102129
mkdir build
103130
104131
- name: "Build: run cmake"
132+
if: matrix.mbedtls == 'mbedtls@3'
133+
shell: freebsd {0}
134+
run: |
135+
cd $GITHUB_WORKSPACE;
136+
cd build
137+
cmake .. -DAVM_WARNINGS_ARE_ERRORS=ON
138+
139+
- name: "Build: run cmake (MbedTLS 4)"
140+
if: matrix.mbedtls == 'mbedtls@4'
105141
shell: freebsd {0}
106142
run: |
107143
cd $GITHUB_WORKSPACE;

.github/workflows/build-and-test.yaml

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,12 @@ jobs:
159159
otp: "master"
160160
elixir_version: "main"
161161

162+
# Additional mbedtls@4 coverage with the default Linux toolchain
163+
- cc: "cc"
164+
cxx: "c++"
165+
otp: "28"
166+
mbedtls: "mbedtls@4"
167+
162168
# Additional latest & -Os compiler builds
163169
- cc: "gcc-14"
164170
cxx: "g++-14"
@@ -494,13 +500,26 @@ jobs:
494500
run: sudo apt update -y
495501

496502
- name: "Install deps"
497-
if: matrix.container != ''
498-
run: sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev
503+
if: matrix.container != '' && matrix.mbedtls != 'mbedtls@4'
504+
run: |
505+
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev
506+
507+
- name: "Install deps (MbedTLS 4)"
508+
if: matrix.container != '' && matrix.mbedtls == 'mbedtls@4'
509+
run: |
510+
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind
499511
500512
- name: "Install deps"
501-
if: matrix.container == ''
513+
if: matrix.container == '' && matrix.mbedtls != 'mbedtls@4'
514+
run: |
515+
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libc6-dbg libmbedtls-dev
516+
# Get a more recent valgrind
517+
sudo snap install valgrind --classic
518+
519+
- name: "Install deps (MbedTLS 4)"
520+
if: matrix.container == '' && matrix.mbedtls == 'mbedtls@4'
502521
run: |
503-
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libmbedtls-dev libc6-dbg
522+
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libc6-dbg
504523
# Get a more recent valgrind
505524
sudo snap install valgrind --classic
506525
@@ -536,6 +555,19 @@ jobs:
536555
https://repo.hex.pm
537556
https://cdn.jsdelivr.net/hex
538557
558+
- name: "Install specific MbedTLS version"
559+
if: matrix.mbedtls == 'mbedtls@4'
560+
run: |
561+
git clone --depth 1 --branch mbedtls-4.0.0 --recurse-submodules https://github.com/Mbed-TLS/mbedtls
562+
cd mbedtls
563+
mkdir build
564+
cd build
565+
cmake -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=On -DCMAKE_INSTALL_PREFIX=/usr/local ..
566+
make -j$(nproc)
567+
sudo make install
568+
sudo ldconfig
569+
echo "MBEDTLS_ROOT_DIR=/usr/local" >> $GITHUB_ENV
570+
539571
# Builder info
540572
- name: "System info"
541573
run: |
@@ -566,13 +598,23 @@ jobs:
566598
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' }}
567599

568600
- name: "Build: run cmake"
601+
if: matrix.mbedtls != 'mbedtls@4'
569602
working-directory: build
570603
run: |
571604
cmake ${{ matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} ..
572605
# git clone will use more recent timestamps than cached beam files
573606
# touch them so we can benefit from the cache and avoid costly beam file rebuild.
574607
find . -name '*.beam' -exec touch {} \;
575608
609+
- name: "Build: run cmake (MbedTLS 4)"
610+
if: matrix.mbedtls == 'mbedtls@4'
611+
working-directory: build
612+
run: |
613+
cmake -DMBEDTLS_ROOT_DIR=/usr/local ${{ matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} ..
614+
# git clone will use more recent timestamps than cached beam files
615+
# touch them so we can benefit from the cache and avoid costly beam file rebuild.
616+
find . -name '*.beam' -exec touch {} \;
617+
576618
- name: "Build: run make"
577619
working-directory: build
578620
run: make -j3

0 commit comments

Comments
 (0)