-
Notifications
You must be signed in to change notification settings - Fork 11
116 lines (109 loc) · 3.82 KB
/
ci-cmake.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
name: libcosim CI CMake
# This workflow is triggered on pushes to the repository.
on: [push]
env:
CONAN_LOGIN_USERNAME_OSP: ${{ secrets.osp_artifactory_usr }}
CONAN_PASSWORD_OSP: ${{ secrets.osp_artifactory_pwd }}
CONAN_REVISIONS_ENABLED: 1
CONAN_NON_INTERACTIVE: 1
jobs:
cmake-on-linux:
name: CMake
runs-on: ${{ matrix.os }}
env:
CC: gcc-${{ matrix.compiler_version }}
CXX: g++-${{ matrix.compiler_version }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
build_type: [Debug, Release]
compiler_version: [9]
shared_libs: [ON, OFF]
timeout-minutes: 35
steps:
- uses: actions/checkout@v3
- name: Install prerequisites
run: |
sudo apt-get install -y --no-install-recommends \
doxygen \
libboost-all-dev \
libmsgsl-dev \
libyaml-cpp-dev \
libxerces-c-dev \
libzip-dev
wget \
"https://github.com/viproma/debian-fmilib/releases/download/debian%2F2.0.3-1/libfmilib2_2.0.3-1_amd64.deb" \
"https://github.com/viproma/debian-fmilib/releases/download/debian%2F2.0.3-1/libfmilib2-dev_2.0.3-1_amd64.deb"
sudo dpkg -i libfmilib2_2.0.3-1_amd64.deb libfmilib2-dev_2.0.3-1_amd64.deb
- name: CMake - configure
run: |
cmake \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_PREFIX_PATH=fmilibrary \
-DCMAKE_INSTALL_PREFIX=install \
-DBUILD_SHARED_LIBS=${{ matrix.shared_libs }} \
-B build
- name: CMake - build
run: cmake --build build
- name: CMake - build doc
run: cmake --build build --target doc
- name: CMake - test
run: |
cd build
ctest
- name: CMake - install
run: |
cmake --build build --target install
cmake --build build --target install-doc
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: libcosim-${{ runner.os }}-${{ matrix.build_type }}-gcc${{ matrix.compiler_version }}
path: install
cmake-on-windows:
name: CMake
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2019]
build_type: [Debug, Release]
shared: ["True", "False"]
timeout-minutes: 35
steps:
- uses: actions/checkout@v3
- name: Install prerequisites
run: |
pip3 install --upgrade setuptools pip
pip3 install conan==1.59
choco install doxygen.install
conan remote add osp https://osp.jfrog.io/artifactory/api/conan/conan-local --force
conan install . -s build_type=${{ matrix.build_type }} -o shared=${{ matrix.shared }} -g deploy
- name: CMake - configure
shell: bash
run: |
cmake . \
-A x64 \
-DCMAKE_PREFIX_PATH="ms-gsl;boost;fmilibrary;libzip;xerces-c;yaml-cpp;bzip2;zlib;xz_utils" \
-DCMAKE_INSTALL_PREFIX=install \
-DBUILD_SHARED_LIBS=${{ matrix.shared }} \
-B build
- name: CMake - build
run: cmake --build build --config ${{ matrix.build_type }}
- name: CMake - build doc
run: cmake --build build --config ${{ matrix.build_type }} --target doc
- name: CMake - test
run: |
.\activate_run.ps1
cd build
ctest -C ${{ matrix.build_type }}
- name: CMake - install
run: |
cmake --build build --config ${{ matrix.build_type }} --target install
cmake --build build --config ${{ matrix.build_type }} --target install-doc
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: libcosim-${{ runner.os }}-${{ matrix.build_type }}
path: install