blob: 47b77b28b50de88ea1c4ace2e8bc86d4d3653f62 [file] [log] [blame] [edit]
name: Run tests with various compilers
on:
workflow_dispatch:
workflow_call:
jobs:
test_linux:
name: Test with gcc & clang on Ubuntu
runs-on: ubuntu-20.04
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4
with:
path: nanopb
fetch-depth: "0"
- name: Install dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install python3-protobuf protobuf-compiler scons
sudo apt-get install clang valgrind splint cmake
sudo apt-get install libstdc++6:i386 libgcc-s1:i386 lib32gcc-9-dev lib32stdc++-9-dev libncurses5:i386 libc6-dbg:i386 libc6-dev:i386 binutils-multiarch
- name: Test with 64-bit GCC
run: |
cd nanopb/tests
rm -rf build
scons CC=gcc CXX=g++ CCFLAGS="-O3"
rm -rf build
scons CC=gcc CXX=g++ CCFLAGS="-Os -flto"
rm -rf build
scons CC=gcc CXX=g++ CCFLAGS="-O1 -DPB_FIELD_32BIT=1"
- name: Test with 32-bit GCC
run: |
cd nanopb/tests
rm -rf build
scons CC=gcc CXX=g++ CCFLAGS="-O3 -m32" LINKFLAGS="-m32"
rm -rf build
scons CC=gcc CXX=g++ CCFLAGS="-Os -flto -m32" LINKFLAGS="-m32"
rm -rf build
scons CC=gcc CXX=g++ CCFLAGS="-O1 -DPB_FIELD_32BIT=1 -m32" LINKFLAGS="-m32"
- name: Test with 64-bit clang
run: |
cd nanopb/tests
rm -rf build
scons CC=clang CXX=clang++ CCFLAGS="-O3"
rm -rf build
scons CC=clang CXX=clang++ CCFLAGS="-Os -DPB_FIELD_32BIT=1"
- name: Test with 32-bit clang
run: |
cd nanopb/tests
rm -rf build
scons CC=clang CXX=clang++ CCFLAGS="-O3 -m32" LINKFLAGS="-m32"
rm -rf build
scons CC=clang CXX=clang++ CCFLAGS="-Os -DPB_FIELD_32BIT=1 -m32" LINKFLAGS="-m32"