mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-06 05:34:27 +02:00
ci: test_package extended for different compilers and OSes
This commit is contained in:
79
.github/workflows/ci-test-package-cmake.yml
vendored
79
.github/workflows/ci-test-package-cmake.yml
vendored
@@ -34,19 +34,55 @@ on:
|
|||||||
- 'example/**'
|
- 'example/**'
|
||||||
- 'test/**'
|
- 'test/**'
|
||||||
|
|
||||||
env:
|
|
||||||
CC: gcc-10
|
|
||||||
CXX: g++-10
|
|
||||||
CMAKE_GENERATOR: Ninja
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test_package:
|
test_package:
|
||||||
name: CMake test_package (${{ matrix.build_type }})
|
name: ${{ matrix.config.name }} ${{ matrix.build_type }}
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ${{ matrix.config.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
|
config:
|
||||||
|
- {
|
||||||
|
name: "Windows MSVC 2019",
|
||||||
|
os: windows-latest,
|
||||||
|
compiler: { type: VISUAL, version: 16, cc: "cl", cxx: "cl" }
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Ubuntu GCC 10.1.0",
|
||||||
|
os: ubuntu-18.04,
|
||||||
|
compiler: { type: GCC, version: 10, cc: "gcc-10", cxx: "g++-10" },
|
||||||
|
lib: "libstdc++11"
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Ubuntu GCC 10.2.0",
|
||||||
|
os: ubuntu-20.04,
|
||||||
|
compiler: { type: GCC, version: 10, cc: "gcc-10", cxx: "g++-10" },
|
||||||
|
lib: "libstdc++11"
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Ubuntu Clang 12.0.0 + libstdc++11",
|
||||||
|
os: ubuntu-20.04,
|
||||||
|
compiler: { type: CLANG, version: 12, cc: "clang-12", cxx: "clang++-12" },
|
||||||
|
lib: "libstdc++11"
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
name: "Ubuntu Clang 12.0.0 + libc++",
|
||||||
|
os: ubuntu-20.04,
|
||||||
|
compiler: { type: CLANG, version: 12, cc: "clang-12", cxx: "clang++-12" },
|
||||||
|
lib: "libc++"
|
||||||
|
}
|
||||||
|
# In case a Conan docker image will be needed to provide a specific configuration we can use a Docker image as follows
|
||||||
|
# - {
|
||||||
|
# name: "Ubuntu GCC 10.2.0",
|
||||||
|
# os: ubuntu-20.04,
|
||||||
|
# compiler: { type: GCC, version: 10, cc: "gcc-10", cxx: "g++-10" },
|
||||||
|
# docker_image: conanio/gcc10
|
||||||
|
# }
|
||||||
build_type: [ "Release", "Debug" ]
|
build_type: [ "Release", "Debug" ]
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.config.compiler.cc }}
|
||||||
|
CXX: ${{ matrix.config.compiler.cxx }}
|
||||||
|
CMAKE_GENERATOR: Ninja
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Cache Conan data
|
- name: Cache Conan data
|
||||||
@@ -60,6 +96,19 @@ jobs:
|
|||||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||||
${{ runner.os }}-build-
|
${{ runner.os }}-build-
|
||||||
${{ runner.os }}-
|
${{ runner.os }}-
|
||||||
|
- name: Install Clang
|
||||||
|
if: matrix.config.compiler.type == 'CLANG'
|
||||||
|
shell: bash
|
||||||
|
working-directory: ${{ env.HOME }}
|
||||||
|
run: |
|
||||||
|
wget https://apt.llvm.org/llvm.sh
|
||||||
|
chmod +x llvm.sh
|
||||||
|
sudo ./llvm.sh ${{ matrix.config.compiler.version }}
|
||||||
|
- name: Install Libc++
|
||||||
|
if: matrix.config.compiler.type == 'CLANG' && matrix.config.lib == 'libc++'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo apt install -y libc++-${{ matrix.config.compiler.version }}-dev libc++abi-${{ matrix.config.compiler.version }}-dev
|
||||||
- name: Install Ninja
|
- name: Install Ninja
|
||||||
run: |
|
run: |
|
||||||
sudo apt install -y ninja-build
|
sudo apt install -y ninja-build
|
||||||
@@ -74,14 +123,24 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
conan config init
|
conan config init
|
||||||
conan remote add upload https://api.bintray.com/conan/mpusz/conan-mpusz
|
conan remote add upload https://api.bintray.com/conan/mpusz/conan-mpusz
|
||||||
|
if [[ "${{ matrix.config.compiler.type }}" == "GCC" || "${{ matrix.config.compiler.type }}" == "CLANG" ]]; then
|
||||||
|
conan profile update settings.compiler.libcxx=${{ matrix.config.lib }} default
|
||||||
|
fi
|
||||||
|
conan profile show default
|
||||||
|
- name: Add support for clang-12 to Conan's settings.yml
|
||||||
|
# TODO Remove when Conan will support clang-12 (after clang-12 release)
|
||||||
|
if: matrix.config.compiler.type == 'CLANG'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sed -i -e 's/"8", "9", "10", "11"]/"8", "9", "10", "11", "12"]/' ~/.conan/settings.yml
|
||||||
- name: Install Conan dependencies
|
- name: Install Conan dependencies
|
||||||
run: |
|
run: |
|
||||||
mkdir -p build/${{ matrix.build_type }} && cd build/${{ matrix.build_type }}
|
mkdir -p build/${{ matrix.build_type }} && cd build/${{ matrix.build_type }}
|
||||||
conan install ../.. -s compiler.cppstd=20 -s compiler.libcxx=libstdc++11 -s build_type=${{ matrix.build_type }} -b outdated -u
|
conan install ../.. -s compiler.cppstd=20 -s build_type=${{ matrix.build_type }} -b outdated -u
|
||||||
- name: Configure mp-units CMake
|
- name: Configure mp-units CMake
|
||||||
run: |
|
run: |
|
||||||
cd build/${{ matrix.build_type }}
|
cd build/${{ matrix.build_type }}
|
||||||
cmake ../../src -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
|
cmake ../../src -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
|
||||||
- name: Install mp-units
|
- name: Install mp-units
|
||||||
run: |
|
run: |
|
||||||
cd build/${{ matrix.build_type }}
|
cd build/${{ matrix.build_type }}
|
||||||
@@ -90,7 +149,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
mkdir -p test_package/build/${{ matrix.build_type }} && cd test_package/build/${{ matrix.build_type }}
|
mkdir -p test_package/build/${{ matrix.build_type }} && cd test_package/build/${{ matrix.build_type }}
|
||||||
conan install ../../.. -s compiler.cppstd=20 -s compiler.libcxx=libstdc++11 -s build_type=${{ matrix.build_type }}
|
conan install ../../.. -s compiler.cppstd=20 -s compiler.libcxx=libstdc++11 -s build_type=${{ matrix.build_type }}
|
||||||
cmake ../.. -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=../../../build/${{ matrix.build_type }}/test_package -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
|
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_INSTALL_PREFIX=../../../build/${{ matrix.build_type }}/test_package
|
||||||
- name: Build test_package
|
- name: Build test_package
|
||||||
run: |
|
run: |
|
||||||
cd test_package/build/${{ matrix.build_type }}
|
cd test_package/build/${{ matrix.build_type }}
|
||||||
|
Reference in New Issue
Block a user