mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-09-12 17:40:21 +02:00
218 lines
6.4 KiB
YAML
218 lines
6.4 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize]
|
|
push:
|
|
branches:
|
|
- c_master
|
|
tags:
|
|
- '*'
|
|
|
|
jobs:
|
|
macos:
|
|
runs-on: macos-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
pattern: [0, 1, 2, 3]
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: install gtest
|
|
run: |
|
|
brew install --force googletest
|
|
- name: build and test
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
shell: bash
|
|
run: |
|
|
BASE=`pwd`;
|
|
|
|
# matrix config
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="64"
|
|
if [ ${{ matrix.pattern }} == 0 ]; then
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="unsigned"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 1 ]; then
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="signed"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 2 ]; then
|
|
export SHARED="OFF"
|
|
export CHAR_SIGN="signed"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 3 ]; then
|
|
export SHARED="OFF"
|
|
export CHAR_SIGN="unsigned"
|
|
fi
|
|
|
|
# build and test
|
|
CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CFLAGS="-Werror -g -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION}
|
|
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
pattern: [0, 1, 2, 3, 4, 5, 6, 7, 8]
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: install build depends
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install g++-multilib clang valgrind
|
|
- name: build and test
|
|
shell: bash
|
|
run: |
|
|
BASE=`pwd`;
|
|
|
|
# matrix config
|
|
if [ ${{ matrix.pattern }} == 0 ]; then
|
|
export CC=clang
|
|
export CXX=clang++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="64"
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="unsigned"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 1 ]; then
|
|
export CC=clang
|
|
export CXX=clang++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="32"
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="signed"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 2 ]; then
|
|
export CC=clang
|
|
export CXX=clang++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="64"
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="signed"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 3 ]; then
|
|
export CC=clang
|
|
export CXX=clang++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="32"
|
|
export SHARED="OFF"
|
|
export CHAR_SIGN="unsigned"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 4 ]; then
|
|
export CC=gcc
|
|
export CXX=g++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="64"
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="signed"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 5 ]; then
|
|
export CC=gcc
|
|
export CXX=g++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="32"
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="unsigned"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 6 ]; then
|
|
export CC=gcc
|
|
export CXX=g++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="64"
|
|
export SHARED="ON"
|
|
export SAN="-fsanitize=address -fno-omit-frame-pointer"
|
|
export CHAR_SIGN="unsigned"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 7 ]; then
|
|
export CC=gcc
|
|
export CXX=g++
|
|
ACTION="ci/build_cmake.sh"
|
|
export ARCH="32"
|
|
export SHARED="OFF"
|
|
export CHAR_SIGN="signed"
|
|
fi
|
|
if [ ${{ matrix.pattern }} == 8 ]; then
|
|
export CC=gcc
|
|
export CXX=g++
|
|
ACTION="ci/build_cmake_embedded.sh"
|
|
export ARCH="64"
|
|
fi
|
|
|
|
# install gtest
|
|
wget https://github.com/google/googletest/archive/v1.13.0.zip -O googletest-1.13.0.zip
|
|
unzip -q googletest-1.13.0.zip
|
|
cd googletest-1.13.0
|
|
cmake -S . -DCMAKE_CXX_FLAGS="-m$ARCH" --install-prefix="$BASE/usr"
|
|
cmake --build . --verbose
|
|
cmake --install . --verbose
|
|
cd ..
|
|
|
|
# install zlib
|
|
if [ ${ARCH} == 32 ]; then
|
|
sudo apt-get install lib32z1-dev
|
|
fi
|
|
|
|
# build and test
|
|
CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -gdwarf-4 -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -gdwarf-4 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION}
|
|
|
|
windows:
|
|
runs-on: windows-2019
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
pattern: [0, 1, 2, 3]
|
|
steps:
|
|
- uses: actions/checkout@v2.0.0
|
|
- name: Cache vcpkg
|
|
id: cache-vcpkg
|
|
uses: actions/cache@v1.1.2
|
|
with:
|
|
path: C:/vcpkg/installed
|
|
key: windows-2019-vcpkg-v2
|
|
- name: Build dependencies
|
|
if: steps.cache-vcpkg.outputs.cache-hit != 'true'
|
|
shell: powershell
|
|
run: |
|
|
vcpkg install gtest:x64-windows gtest:x86-windows
|
|
vcpkg install zlib:x64-windows zlib:x86-windows
|
|
- name: Build and test
|
|
shell: powershell
|
|
run: |
|
|
if (${{ matrix.pattern }} -eq 0) {
|
|
$ARCH="x64"
|
|
$SHARED="ON"
|
|
}
|
|
elseif (${{ matrix.pattern }} -eq 1) {
|
|
$ARCH="x64"
|
|
$SHARED="OFF"
|
|
}
|
|
elseif (${{ matrix.pattern }} -eq 2) {
|
|
$ARCH="Win32"
|
|
$SHARED="ON"
|
|
}
|
|
else {
|
|
$ARCH="Win32"
|
|
$SHARED="OFF"
|
|
}
|
|
|
|
$CUR=(Get-Location).Path
|
|
md build
|
|
cd build
|
|
cmake -A $ARCH -DBUILD_SHARED_LIBS=$SHARED -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_CXX_FLAGS=/D_VARIADIC_MAX=10 /EHsc /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING" ..
|
|
cmake --build . --config Release
|
|
$pathbak="$env:PATH"
|
|
$env:PATH="C:\vcpkg\installed\x64-windows\bin;$CUR\build\Release;$pathbak"
|
|
ctest -V
|
|
$env:PATH=$pathbak
|