-
Notifications
You must be signed in to change notification settings - Fork 3
79 lines (73 loc) · 2.38 KB
/
multiplatform.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
name: Test Package on windows and linux
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false
# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [ubuntu-latest, windows-latest]
build_type: [Release]
c_compiler: [gcc, clang, cl]
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
exclude:
- os: windows-latest
c_compiler: gcc
- os: windows-latest
c_compiler: clang
- os: ubuntu-latest
c_compiler: cl
steps:
- uses: actions/checkout@v3
- uses: ilammy/msvc-dev-cmd@v1
- name: Install ninja-build (Ubuntu)
if: contains(matrix.os, 'ubuntu')
run: |
sudo apt-get install ninja-build -y
- name: Install cmake with pip
run: |
python3 -m pip install cmake --upgrade
- name: Git Submodules
run: |
git submodule update --init --recursive
git pull --recurse-submodules
- name: Get dependencies
shell: bash
run: |
make load_thirdparty
- name: make optframe_lib (ubuntu)
shell: bash
if: contains(matrix.os, 'ubuntu')
run: |
make optframe_lib
- name: make optframe_lib_cmake (windows)
if: contains(matrix.os, 'windows')
shell: bash
run: |
cmake --version
mkdir -p build_out
ls -la
cmake -S. -Bbuild_out -GNinja
ninja -Cbuild_out
mv optframe/liboptframe_lib.so optframe/optframe_lib.so
- name: make test_package
shell: bash
run: |
make test_package