| 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@v2 |
| 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" |
| |