mirror of
https://github.com/open62541/open62541.git
synced 2026-10-18 13:42:32 +08:00
466 lines
20 KiB
YAML
466 lines
20 KiB
YAML
name: Linux Build & Test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'master'
|
|
- '[0-9]+.[0-9]+'
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
# Only supersede runs of the same pull request, never pushes to master/1.x.
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
jobs:
|
|
mbedtls-compatibility:
|
|
name: mbedTLS ${{ matrix.mbedtls-version }}
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
mbedtls-version: ["3.6.4", "4.2.0"]
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
submodules: true
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
repository: Mbed-TLS/mbedtls
|
|
ref: mbedtls-${{ matrix.mbedtls-version }}
|
|
path: mbedtls-source
|
|
submodules: recursive
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y -qq build-essential check cmake libsubunit-dev python3 valgrind libwebsockets-dev zlib1g-dev
|
|
- name: Build mbedTLS
|
|
run: |
|
|
# The tests run clients and servers in separate threads. PSA crypto
|
|
# needs mutexes even when the open62541 build uses UA_MULTITHREADING=0.
|
|
python3 mbedtls-source/scripts/config.py set MBEDTLS_THREADING_C
|
|
python3 mbedtls-source/scripts/config.py set MBEDTLS_THREADING_PTHREAD
|
|
cmake -S mbedtls-source -B mbedtls-build \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/mbedtls \
|
|
-DENABLE_PROGRAMS=OFF \
|
|
-DENABLE_TESTING=OFF
|
|
cmake --build mbedtls-build --parallel
|
|
cmake --install mbedtls-build
|
|
- name: Build and test open62541
|
|
run: |
|
|
cmake -S . -B build-mbedtls \
|
|
-DCMAKE_BUILD_TYPE=Debug \
|
|
-DMBEDTLS_FOLDER_INCLUDE=${{ runner.temp }}/mbedtls/include \
|
|
-DMBEDTLS_FOLDER_LIBRARY=${{ runner.temp }}/mbedtls/lib \
|
|
-DUA_BUILD_UNIT_TESTS=ON \
|
|
-DUA_ENABLE_DRIVER_GDS_RECEIVER=ON \
|
|
-DUA_ENABLE_ENCRYPTION=MBEDTLS \
|
|
-DUA_ENABLE_JSON_ENCODING=ON \
|
|
-DUA_ENABLE_LWS=ON \
|
|
-DUA_ENABLE_HTTP_COMPRESSION=ON \
|
|
-DUA_ENABLE_PUBSUB=ON \
|
|
-DUA_FORCE_WERROR=ON \
|
|
-DUA_NAMESPACE_ZERO=FULL
|
|
cmake --build build-mbedtls --parallel
|
|
ctest --test-dir build-mbedtls --output-on-failure \
|
|
-R "(encrypt|decrypt|cert|crypto|ecc|auth|json_config|http)"
|
|
- name: Check mbedTLS 4 ownership with Valgrind
|
|
if: matrix.mbedtls-version == '4.2.0'
|
|
working-directory: build-mbedtls/tests
|
|
run: |
|
|
valgrind --error-exitcode=1 --leak-check=full \
|
|
../bin/tests/check_client_authentication
|
|
valgrind --error-exitcode=1 --leak-check=full \
|
|
../bin/tests/check_client_json_config
|
|
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-22.04, ubuntu-24.04, ubuntu-26.04]
|
|
build:
|
|
- name: "Debug Build & Unit Tests (gcc)"
|
|
cmd_action: unit_tests
|
|
- name: "Debug Build & Unit Tests (gcc, 32bit)"
|
|
cmd_deps: |
|
|
sudo dpkg --add-architecture i386
|
|
sudo apt-get update
|
|
sudo apt-get install -y -qq gcc-multilib libsubunit-dev:i386 check:i386 libxml2-dev:i386 libcrypt-dev:i386
|
|
cmd_action: unit_tests_32
|
|
|
|
- name: "Debug Build & Unit Tests without Subscriptions (gcc)"
|
|
cmd_action: unit_tests_nosub
|
|
|
|
- name: "Debug Build & Unit Tests with Diagnostics (gcc)"
|
|
cmd_action: unit_tests_diag
|
|
|
|
- name: "Debug Build & Unit Tests with multithreading (gcc)"
|
|
cmd_action: unit_tests_mt
|
|
|
|
- name: "Debug Build & Unit Tests with GLib EventLoop (gcc)"
|
|
cmd_deps: sudo apt-get install -y -qq libglib2.0-dev
|
|
cmd_action: unit_tests_glib
|
|
|
|
- name: "Debug Build & Unit Tests with Alarms&Conditions (gcc)"
|
|
cmd_action: unit_tests_alarms
|
|
|
|
- name: "Debug Build & Unit Tests (tcc)"
|
|
cmd_deps: sudo apt-get install -y -qq tcc
|
|
cmd_action: CC=tcc unit_tests
|
|
|
|
- name: "Encryption (MbedTLS) Build & Unit Tests (gcc)"
|
|
mbedtls: true
|
|
cmd_action: unit_tests_encryption MBEDTLS
|
|
|
|
- name: "PubSub Encryption (MbedTLS) Build & Unit Tests (gcc)"
|
|
mbedtls: true
|
|
cmd_action: unit_tests_encryption_pubsub MBEDTLS
|
|
|
|
- name: "PubSub SKS Build & Unit Tests (gcc)"
|
|
mbedtls: true
|
|
cmd_deps: sudo apt-get install -y -qq valgrind
|
|
cmd_action: unit_tests_pubsub_sks MBEDTLS
|
|
|
|
- name: "Encryption (OpenSSL) Build & Unit Tests (gcc)"
|
|
cmd_deps: sudo apt-get install -y -qq openssl
|
|
cmd_action: unit_tests_encryption OPENSSL
|
|
|
|
- name: "PubSub Encryption (OpenSSL) Build & Unit Tests (gcc)"
|
|
cmd_deps: sudo apt-get install -y -qq openssl
|
|
cmd_action: unit_tests_encryption_pubsub OPENSSL
|
|
|
|
- name: "PubSub SKS (OpenSSL) Build & Unit Tests (gcc)"
|
|
cmd_deps: sudo apt-get install -y -qq openssl valgrind
|
|
cmd_action: unit_tests_pubsub_sks OPENSSL
|
|
|
|
- name: "Encryption (LibreSSL) Build & Unit Tests (gcc)"
|
|
cmd_deps: |
|
|
sudo apt-get install -y -qq curl
|
|
curl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.1.0.tar.gz --output libressl.tar.gz
|
|
tar -xvz -f libressl.tar.gz
|
|
cd libressl-4.1.0
|
|
./configure
|
|
sudo make install
|
|
cmd_action: unit_tests_encryption LIBRESSL
|
|
|
|
- name: "Encryption (OpenSSL 4) Build & Unit Tests (gcc)"
|
|
cmd_deps: |
|
|
curl -L https://github.com/openssl/openssl/releases/download/openssl-4.0.2/openssl-4.0.2.tar.gz --output openssl.tar.gz
|
|
tar -xz -f openssl.tar.gz
|
|
cd openssl-4.0.2
|
|
./Configure --prefix=/usr/local --libdir=lib no-docs no-tests
|
|
make -j$(nproc)
|
|
sudo make install_sw
|
|
sudo ldconfig
|
|
cmd_action: OPENSSL_ROOT_DIR=/usr/local unit_tests_encryption OPENSSL
|
|
|
|
- name: "Release Build"
|
|
mbedtls: true
|
|
cmd_action: build_release
|
|
|
|
- name: "Amalgamation Build"
|
|
cmd_action: build_amalgamation
|
|
|
|
- name: "Amalgamation Build (MinGW cross)"
|
|
cmd_deps: sudo apt-get install -y -qq gcc-mingw-w64-x86-64
|
|
cmd_action: build_amalgamation_mingw_cross
|
|
|
|
- name: "Amalgamation Build with Multithreading"
|
|
cmd_action: build_amalgamation_mt
|
|
|
|
- name: "Amalgamation Build with none Architecture"
|
|
cmd_action: build_amalgamation_none_arch
|
|
|
|
- name: "Build All Companion Specifications"
|
|
cmd_action: build_all_companion_specs
|
|
|
|
- name: "Build Option Coverage"
|
|
cmd_action: build_option_coverage
|
|
|
|
include:
|
|
# Clang builds for specific Ubuntu versions
|
|
- os: ubuntu-22.04
|
|
build:
|
|
name: "Debug Build & Unit Tests (clang-15)"
|
|
cmd_deps: sudo apt-get install -y -qq clang-15 clang-tools-15 && sudo sysctl -w vm.mmap_rnd_bits=28
|
|
cmd_action: CC=clang-15 CXX=clang++-15 unit_tests
|
|
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Debug Build & Unit Tests (clang-18)"
|
|
cmd_deps: sudo apt-get install -y -qq clang-18 clang-tools-18 && sudo sysctl -w vm.mmap_rnd_bits=28
|
|
cmd_action: CC=clang-18 CXX=clang++-18 unit_tests
|
|
|
|
- os: ubuntu-26.04
|
|
build:
|
|
name: "Debug Build & Unit Tests (clang-21)"
|
|
cmd_deps: sudo apt-get install -y -qq clang-21 clang-tools-21 && sudo sysctl -w vm.mmap_rnd_bits=28
|
|
cmd_action: CC=clang-21 CXX=clang++-21 unit_tests
|
|
|
|
# Build without multithreading on a single Ubuntu version
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Debug Build & Unit Tests without multithreading (gcc)"
|
|
cmd_action: unit_tests_nomt
|
|
|
|
# Libwebsockets Build for specific Ubuntu version
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Debug Build & Unit Tests with libwebsockets (gcc)"
|
|
cmd_deps: |
|
|
sudo apt-get install -y -qq build-essential cmake curl gcc git iproute2 libpcap-dev libssl-dev zlib1g-dev
|
|
git clone --branch v4.3.3 --depth 1 https://github.com/warmcat/libwebsockets.git /tmp/libwebsockets
|
|
cmake -S /tmp/libwebsockets -B /tmp/libwebsockets-build \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DLWS_ROLE_MQTT=ON \
|
|
-DLWS_WITHOUT_TESTAPPS=ON
|
|
cmake --build /tmp/libwebsockets-build --parallel
|
|
sudo cmake --install /tmp/libwebsockets-build
|
|
sudo ldconfig
|
|
cmd_action: unit_tests_libwebsockets
|
|
|
|
# Exercise the public ABI from the unmodified distribution package.
|
|
# MQTT is not required here because package build options vary.
|
|
- os: ubuntu-26.04
|
|
build:
|
|
name: "Debug Build & Unit Tests with packaged libwebsockets (gcc)"
|
|
cmd_deps: sudo apt-get install -y -qq build-essential cmake curl gcc iproute2 libpcap-dev libssl-dev libwebsockets-dev zlib1g-dev
|
|
cmd_action: LWS_MQTT=OFF unit_tests_libwebsockets
|
|
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "HTTP server lifecycle with libwebsockets (ThreadSanitizer)"
|
|
cmd_deps: sudo apt-get install -y -qq build-essential cmake curl gcc iproute2 libpcap-dev libssl-dev libwebsockets-dev zlib1g-dev
|
|
cmd_action: unit_tests_libwebsockets_tsan
|
|
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Full unit test suite (ThreadSanitizer)"
|
|
cmd_deps: sudo apt-get install -y -qq clang-18 && sudo sysctl -w vm.mmap_rnd_bits=28
|
|
cmd_action: CC=clang-18 CXX=clang++-18 unit_tests_tsan
|
|
|
|
# LWIP Build for specific Ubuntu version
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Debug Build & Unit Tests with lwip (gcc, ASan)"
|
|
cmd_deps: |
|
|
sudo apt-get install -y -qq build-essential clang-18 cmake gcc git iproute2 libpcap-dev net-tools
|
|
cd ${HOME}
|
|
git clone https://github.com/lwip-tcpip/lwip.git
|
|
cd ${HOME}/lwip
|
|
git checkout tags/STABLE-2_2_1_RELEASE
|
|
|
|
# Apply the modification to lwipopts.h
|
|
sed -i '30a\
|
|
#define MEMP_NUM_TCP_PCB 128\n\
|
|
#define MEMP_NUM_UDP_PCB 128\n\
|
|
#define MEMP_NUM_REASSDATA 128\n\
|
|
#define MEMP_NUM_TCP_PCB_LISTEN 128\n\
|
|
#define MEMP_NUM_TCP_SEG 128\n\
|
|
#define MEMP_NUM_PBUF 128\n\
|
|
#define MEMP_NUM_RAW_PCB 128\n\
|
|
#define MEMP_NUM_SELECT_CB 128\n\
|
|
#define MEMP_NUM_NETBUF 128\n\
|
|
#define MEMP_NUM_NETCONN 128\n\
|
|
#define PBUF_POOL_SIZE 128\n\
|
|
#define MEM_SIZE 64000\n\
|
|
#define LWIP_SOCKET 1\n\
|
|
#define LWIP_DNS 0' ${HOME}/lwip/contrib/ports/unix/posixlib/lwipopts.h
|
|
|
|
cd ${HOME}/lwip/contrib/ports/unix/posixlib
|
|
mkdir build
|
|
cd ${HOME}/lwip/contrib/ports/unix/posixlib/build
|
|
cmake ..
|
|
make -j$(nproc)
|
|
sudo make install
|
|
|
|
cd ${HOME}
|
|
|
|
sudo ip tuntap add dev tap0 mode tap
|
|
sudo ip link set dev tap0 up
|
|
sudo ip addr add 192.168.0.1/24 dev tap0
|
|
sudo sysctl -w net.ipv4.ip_forward=1
|
|
|
|
export PRECONFIGURED_TAPIF=tap0
|
|
echo 'export PRECONFIGURED_TAPIF=tap0' >> ~/.bashrc
|
|
cmd_action: unit_tests_lwip_sanitizer && unit_tests_lwip
|
|
|
|
# mDNSD unit tests for a specific Ubuntu version
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Debug Build & Unit Tests with mDNSD (gcc)"
|
|
cmd_action: unit_tests_mdnsd
|
|
|
|
# TPM Tool Builds for specific Ubuntu versions
|
|
- os: ubuntu-22.04
|
|
build:
|
|
name: "TPM Tool Build ubuntu-22.04"
|
|
mbedtls: true
|
|
cmd_deps: |
|
|
sudo apt-get install -y -qq acl autoconf autoconf-archive automake build-essential cmake doxygen gcc git iproute2 libcurl4-openssl-dev libjson-c-dev libcmocka0 libcmocka-dev libgcrypt20-dev libglib2.0-dev libini-config-dev libmbedtls-dev libssl-dev libsqlite3-dev libtool libyaml-dev pkg-config procps python3-pip sqlite3 udev uthash-dev
|
|
cd ${HOME}
|
|
git clone https://github.com/tpm2-software/tpm2-tss.git
|
|
cd ${HOME}/tpm2-tss
|
|
git checkout 3.2.3
|
|
./bootstrap && ./configure --with-udevrulesdir=/etc/udev/rules.d --with-udevrulesprefix=70-
|
|
make -j$(nproc)
|
|
sudo make install
|
|
sudo ldconfig
|
|
sudo udevadm control --reload-rules && sudo udevadm trigger
|
|
sudo apt-get install -y -qq tpm2-tools opensc
|
|
cd ${HOME}
|
|
git clone https://github.com/tpm2-software/tpm2-pkcs11.git
|
|
cd ${HOME}/tpm2-pkcs11
|
|
git checkout 1.7.0
|
|
./bootstrap && ./configure
|
|
make -j$(nproc)
|
|
sudo make install
|
|
sudo ldconfig
|
|
sudo cp ${HOME}/tpm2-pkcs11/src/pkcs11.h /usr/include
|
|
cd ${HOME}/tpm2-pkcs11/tools/
|
|
sudo pip3 install pyasn1_modules
|
|
pip3 install .
|
|
cmd_action: build_tpm_tool
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "TPM Tool Build ubuntu-24.04"
|
|
mbedtls: true
|
|
cmd_deps: |
|
|
sudo apt-get install -y -qq acl autoconf autoconf-archive automake build-essential cmake doxygen gcc git iproute2 libcurl4-openssl-dev libjson-c-dev libcmocka0 libcmocka-dev libgcrypt20-dev libglib2.0-dev libini-config-dev libmbedtls-dev libssl-dev libsqlite3-dev libtool libyaml-dev pkg-config procps python3-pip sqlite3 udev uthash-dev libltdl-dev python3-pyasn1-modules python3-pkcs11
|
|
cd ${HOME}
|
|
git clone https://github.com/tpm2-software/tpm2-tss.git
|
|
cd ${HOME}/tpm2-tss
|
|
git checkout 4.1.3
|
|
./bootstrap && ./configure --with-udevrulesdir=/etc/udev/rules.d --with-udevrulesprefix=70-
|
|
make -j$(nproc)
|
|
sudo make install
|
|
sudo ldconfig
|
|
sudo udevadm control --reload-rules && sudo udevadm trigger
|
|
sudo apt-get install -y -qq tpm2-tools python3-tpm2-pytss opensc
|
|
cd ${HOME}
|
|
git clone https://github.com/tpm2-software/tpm2-pkcs11.git
|
|
cd ${HOME}/tpm2-pkcs11
|
|
git checkout 1.9.2
|
|
./bootstrap && ./configure
|
|
make -j$(nproc)
|
|
sudo make install
|
|
sudo ldconfig
|
|
sudo cp ${HOME}/tpm2-pkcs11/src/pkcs11.h /usr/include
|
|
cd ${HOME}/tpm2-pkcs11/tools/
|
|
pip3 install --break-system-packages .
|
|
cmd_action: build_tpm_tool
|
|
- os: ubuntu-26.04
|
|
build:
|
|
name: "TPM Tool Build ubuntu-26.04"
|
|
mbedtls: true
|
|
cmd_deps: |
|
|
sudo apt-get install -y -qq acl autoconf autoconf-archive automake build-essential cmake doxygen gcc git iproute2 libcurl4-openssl-dev libcrypt-dev libjson-c-dev libcmocka0 libcmocka-dev libgcrypt20-dev libglib2.0-dev libini-config-dev libmbedtls-dev libssl-dev libsqlite3-dev libtool libyaml-dev pkg-config procps python3-pip sqlite3 udev uthash-dev libltdl-dev python3-pyasn1-modules python3-pkcs11
|
|
cd ${HOME}
|
|
git clone https://github.com/tpm2-software/tpm2-tss.git
|
|
cd ${HOME}/tpm2-tss
|
|
git checkout 4.1.3
|
|
./bootstrap && ./configure --with-udevrulesdir=/etc/udev/rules.d --with-udevrulesprefix=70-
|
|
make -j$(nproc)
|
|
sudo make install
|
|
sudo ldconfig
|
|
sudo udevadm control --reload-rules && sudo udevadm trigger
|
|
sudo apt-get install -y -qq tpm2-tools python3-tpm2-pytss opensc
|
|
cd ${HOME}
|
|
git clone https://github.com/tpm2-software/tpm2-pkcs11.git
|
|
cd ${HOME}/tpm2-pkcs11
|
|
git checkout 1.9.2
|
|
./bootstrap && ./configure
|
|
make -j$(nproc)
|
|
sudo make install
|
|
sudo ldconfig
|
|
sudo cp ${HOME}/tpm2-pkcs11/src/pkcs11.h /usr/include
|
|
cd ${HOME}/tpm2-pkcs11/tools/
|
|
pip3 install --break-system-packages .
|
|
cmd_action: build_tpm_tool
|
|
|
|
# Run examples for specific Ubuntu versions
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Examples with MbedTLS and mDNSD (gcc)"
|
|
mbedtls: true
|
|
cmd_deps: sudo apt-get install -y -qq python3-netifaces
|
|
cmd_action: run_examples MBEDTLS MDNSD
|
|
|
|
# Clang Static Analyzer Builds
|
|
- os: ubuntu-22.04
|
|
build:
|
|
name: "Clang Static Analyzer (clang15)"
|
|
mbedtls: true
|
|
cmd_deps: sudo apt-get install -y -qq clang-15 clang-tools-15
|
|
cmd_action: CC=clang-15 CXX=clang++-15 build_clang_analyzer 15
|
|
- os: ubuntu-24.04
|
|
build:
|
|
name: "Clang Static Analyzer (clang18)"
|
|
mbedtls: true
|
|
cmd_deps: sudo apt-get install -y -qq clang-18 clang-tools-18
|
|
cmd_action: CC=clang-18 CXX=clang++-18 build_clang_analyzer 18
|
|
- os: ubuntu-26.04
|
|
build:
|
|
name: "Clang Static Analyzer (clang21)"
|
|
mbedtls: true
|
|
cmd_deps: sudo apt-get install -y -qq clang-21 clang-tools-21
|
|
cmd_action: CC=clang-21 CXX=clang++-21 build_clang_analyzer 21
|
|
|
|
name: ${{ matrix.os }}-${{ matrix.build.name }}
|
|
runs-on: ubuntu-latest
|
|
# runs-on: self-hosted
|
|
container:
|
|
image: ghcr.io/open62541/open62541-ci:${{ matrix.os }}
|
|
options: --privileged
|
|
steps:
|
|
- name: Work around disabled ipv6 on actions container networks
|
|
run: |
|
|
IPV6="$(cat /proc/sys/net/ipv6/conf/eth0/disable_ipv6)"
|
|
echo "Current IPv6 status on eth0: $IPV6"
|
|
[ "$IPV6" = "1" ] || exit
|
|
|
|
echo 0 | sudo tee /proc/sys/net/ipv6/conf/eth0/disable_ipv6 > /dev/null
|
|
IPV6="$(cat /proc/sys/net/ipv6/conf/eth0/disable_ipv6)"
|
|
echo "New IPv6 status on eth0: $IPV6"
|
|
[ "$IPV6" = "0" ] || { echo "Failed to enable IPv6 on eth0"; exit 1; }
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
submodules: true
|
|
- name: Checkout supported mbedTLS
|
|
if: matrix.build.mbedtls
|
|
uses: actions/checkout@v7
|
|
with:
|
|
repository: Mbed-TLS/mbedtls
|
|
ref: mbedtls-3.6.4
|
|
path: mbedtls-source
|
|
submodules: recursive
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq build-essential cmake curl libcap2-bin pkg-config libssl-dev python3-sphinx check libxml2-dev libpcap-dev libreadline-dev libcrypt-dev
|
|
${{ matrix.build.cmd_deps }}
|
|
- name: Build supported mbedTLS
|
|
if: matrix.build.mbedtls
|
|
run: |
|
|
cmake -S mbedtls-source -B mbedtls-build \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/mbedtls-install" \
|
|
-DENABLE_PROGRAMS=OFF \
|
|
-DENABLE_TESTING=OFF
|
|
cmake --build mbedtls-build --parallel
|
|
cmake --install mbedtls-build
|
|
echo "MBEDTLS_FOLDER_INCLUDE=$GITHUB_WORKSPACE/mbedtls-install/include" >> "$GITHUB_ENV"
|
|
echo "MBEDTLS_FOLDER_LIBRARY=$GITHUB_WORKSPACE/mbedtls-install/lib" >> "$GITHUB_ENV"
|
|
- name: ${{ matrix.build.name }}
|
|
shell: bash
|
|
run: source tools/ci/linux/ci.sh && ${{ matrix.build.cmd_action }}
|
|
env:
|
|
ETHERNET_INTERFACE: eth0
|
|
- name: Upload coverage to Codecov
|
|
uses: codecov/codecov-action@v7
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|