Skip to content

Commit 10567e7

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

2 files changed

Lines changed: 65 additions & 6 deletions

File tree

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

Lines changed: 32 additions & 3 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

@@ -62,8 +66,27 @@ jobs:
6266

6367
- name: "Install deps"
6468
shell: freebsd {0}
69+
env:
70+
MBEDTLS_VARIANT: ${{ matrix.mbedtls }}
6571
run: |
66-
pkg install -y curl cmake gperf erlang elixir rebar3 mbedtls3 ninja
72+
pkg install -y curl cmake gperf erlang elixir rebar3 ninja
73+
if [ "$MBEDTLS_VARIANT" = "mbedtls@3" ]; then
74+
pkg install -y mbedtls3
75+
fi
76+
if [ "$MBEDTLS_VARIANT" = "mbedtls@4" ]; then
77+
pkg install -y git
78+
fi
79+
80+
- name: "Install specific MbedTLS version"
81+
if: matrix.mbedtls == 'mbedtls@4'
82+
shell: freebsd {0}
83+
run: |
84+
cd $GITHUB_WORKSPACE;
85+
git clone --depth 1 --branch mbedtls-4.0.0 --recurse-submodules https://github.com/Mbed-TLS/mbedtls
86+
cd mbedtls
87+
cmake -S . -B build -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=On -DCMAKE_INSTALL_PREFIX=/usr/local
88+
cmake --build build -j$(sysctl -n hw.ncpu)
89+
cmake --install build
6790
6891
- name: "Add hostname to /etc/hosts for distribution tests"
6992
shell: freebsd {0}
@@ -103,10 +126,16 @@ jobs:
103126
104127
- name: "Build: run cmake"
105128
shell: freebsd {0}
129+
env:
130+
MBEDTLS_VARIANT: ${{ matrix.mbedtls }}
106131
run: |
107132
cd $GITHUB_WORKSPACE;
108133
cd build
109-
cmake .. -DMBEDTLS_ROOT_DIR=/usr/local -DAVM_WARNINGS_ARE_ERRORS=ON
134+
if [ "$MBEDTLS_VARIANT" = "mbedtls@4" ]; then
135+
cmake .. -DMBEDTLS_ROOT_DIR=/usr/local -DAVM_WARNINGS_ARE_ERRORS=ON
136+
else
137+
cmake .. -DAVM_WARNINGS_ARE_ERRORS=ON
138+
fi
110139
111140
- name: "Build: compile"
112141
shell: freebsd {0}

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

Lines changed: 33 additions & 3 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"
@@ -495,12 +501,23 @@ jobs:
495501

496502
- name: "Install deps"
497503
if: matrix.container != ''
498-
run: sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev
504+
env:
505+
MBEDTLS_VARIANT: ${{ matrix.mbedtls || 'default' }}
506+
run: |
507+
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind
508+
if [[ "$MBEDTLS_VARIANT" != "mbedtls@4" ]]; then
509+
sudo apt install -y libmbedtls-dev
510+
fi
499511
500512
- name: "Install deps"
501513
if: matrix.container == ''
514+
env:
515+
MBEDTLS_VARIANT: ${{ matrix.mbedtls || 'default' }}
502516
run: |
503-
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libmbedtls-dev libc6-dbg
517+
sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libc6-dbg
518+
if [[ "$MBEDTLS_VARIANT" != "mbedtls@4" ]]; then
519+
sudo apt install -y libmbedtls-dev
520+
fi
504521
# Get a more recent valgrind
505522
sudo snap install valgrind --classic
506523
@@ -536,6 +553,19 @@ jobs:
536553
https://repo.hex.pm
537554
https://cdn.jsdelivr.net/hex
538555
556+
- name: "Install specific MbedTLS version"
557+
if: matrix.mbedtls == 'mbedtls@4'
558+
run: |
559+
git clone --depth 1 --branch mbedtls-4.0.0 --recurse-submodules https://github.com/Mbed-TLS/mbedtls
560+
cd mbedtls
561+
mkdir build
562+
cd build
563+
cmake -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=On -DCMAKE_INSTALL_PREFIX=/usr/local ..
564+
make -j$(nproc)
565+
sudo make install
566+
sudo ldconfig
567+
echo "MBEDTLS_ROOT_DIR=/usr/local" >> $GITHUB_ENV
568+
539569
# Builder info
540570
- name: "System info"
541571
run: |
@@ -568,7 +598,7 @@ jobs:
568598
- name: "Build: run cmake"
569599
working-directory: build
570600
run: |
571-
cmake ${{ matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} ..
601+
cmake ${MBEDTLS_ROOT_DIR:+-DMBEDTLS_ROOT_DIR=$MBEDTLS_ROOT_DIR} ${{ matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} ..
572602
# git clone will use more recent timestamps than cached beam files
573603
# touch them so we can benefit from the cache and avoid costly beam file rebuild.
574604
find . -name '*.beam' -exec touch {} \;

0 commit comments

Comments
 (0)