1
- name : Linux
1
+ name : CI
2
2
3
3
on : [push, pull_request]
4
4
5
+ defaults :
6
+ run :
7
+ shell : bash
8
+
5
9
jobs :
6
10
tests :
7
11
runs-on : ${{ matrix.os }}
14
18
drafts : ["ON"]
15
19
libzmq : ["4.3.4"]
16
20
libzmqbuild : ["cmake"]
21
+ platform : [""]
17
22
include :
18
23
# older libzmq and gcc without draft
19
24
- os : " ubuntu-18.04"
@@ -57,14 +62,30 @@ jobs:
57
62
drafts : " ON"
58
63
libzmq : " 4.3.4"
59
64
libzmqbuild : " cmake"
65
+ # windows
66
+ - os : " windows-2016"
67
+ cppstd : " 14"
68
+ cc : " msbuild"
69
+ cxx : " msbuild"
70
+ drafts : " ON"
71
+ libzmq : " 4.3.4"
72
+ libzmqbuild : " cmake"
73
+ platform : " -Ax64"
74
+ - os : " windows-latest"
75
+ cppstd : " 20"
76
+ cc : " msbuild"
77
+ cxx : " msbuild"
78
+ drafts : " ON"
79
+ libzmq : " 4.3.4"
80
+ libzmqbuild : " cmake"
81
+ platform : " -Ax64"
60
82
61
83
env :
62
84
CC : ${{ matrix.cc }}
63
85
CXX : ${{ matrix.cxx }}
64
86
VERBOSE : 1
65
87
THREADS : 2
66
- LIBZMQ : /tmp/libzmq-build
67
- CPPZMQ : /tmp/cppzmq-build
88
+ BUILDTYPE : " Debug"
68
89
COVERAGE : " OFF" # TODO
69
90
70
91
steps :
@@ -83,40 +104,53 @@ jobs:
83
104
- name : build_libzmq_cmake
84
105
if : ${{ matrix.libzmqbuild == 'cmake' }}
85
106
run : |
86
- cmake -Hlibzmq-${{ matrix.libzmq }} -B${LIBZMQ } \
107
+ cmake -Hlibzmq-${{ matrix.libzmq }} -Blibzmq-build ${{ matrix.platform} } \
87
108
-DWITH_PERF_TOOL=OFF \
88
109
-DZMQ_BUILD_TESTS=OFF \
89
110
-DCMAKE_BUILD_TYPE=Release \
90
111
-DENABLE_DRAFTS=${{ matrix.drafts }}
91
- cmake --build ${LIBZMQ} -- -j${THREADS}
112
+ cmake --build libzmq-build --config ${BUILDTYPE} -j ${THREADS}
113
+ echo "LIBZMQ=${PWD}/libzmq-build" >> ${GITHUB_ENV}
92
114
93
115
- name : build_libzmq_pkgconfig
94
116
if : ${{ matrix.libzmqbuild == 'pkgconfig' }}
95
117
working-directory : libzmq-${{ matrix.libzmq }}
96
118
run : |
97
119
./autogen.sh &&
98
- ./configure --prefix=${LIBZMQ} &&
99
- make -j${THREADS}
120
+ ./configure --prefix=${PWD}/libzmq-build &&
121
+ make -j ${THREADS}
100
122
make install
123
+ echo "LIBZMQ=${PWD}/libzmq-build" >> ${GITHUB_ENV}
101
124
102
125
- name : build
103
126
env :
104
127
CMAKE_PREFIX_PATH : ${{ env.LIBZMQ }}
105
128
run : |
106
- cmake -H. -B${CPPZMQ} -DENABLE_DRAFTS=${{ matrix.drafts }} \
107
- -DCOVERAGE=${COVERAGE} \
108
- -DCMAKE_CXX_STANDARD=${{ matrix.cppstd }}
109
- cmake --build ${CPPZMQ} -- -j${THREADS}
129
+ cmake -H. -Bbuild ${{ matrix.platform}} \
130
+ -DCMAKE_BUILD_TYPE=${BUILDTYPE} \
131
+ -DENABLE_DRAFTS=${{ matrix.drafts }} \
132
+ -DCOVERAGE=${COVERAGE} \
133
+ -DCMAKE_CXX_STANDARD=${{ matrix.cppstd }}
134
+ cmake --build build --config ${BUILDTYPE} -j ${THREADS}
135
+ echo "CPPZMQ=${PWD}/build" >> ${GITHUB_ENV}
110
136
111
137
- name : test
112
- working-directory : ${{ env.CPPZMQ }}
113
- run : ctest -V -j${THREADS}
138
+ # for unknown reason no tests are found and run on windows
139
+ # could be something to do with catch_discover_tests not working?
140
+ run : |
141
+ cd ${{ env.CPPZMQ }}
142
+ ctest -V -C ${BUILDTYPE}
114
143
115
144
- name : demo
145
+ # probably need to install libzmq and cppzmq for this to work on windows
146
+ if : ${{ matrix.os == 'ubuntu*' }}
116
147
env :
117
148
CMAKE_PREFIX_PATH : ${{ env.LIBZMQ }}:${{ env.CPPZMQ }}
118
149
run : |
119
- cmake -Hdemo -Bdemo/build
120
- cmake --build demo/build
121
- cd demo/build
122
- ctest -V
150
+ cd demo
151
+ cmake -H. -Bbuild ${{ matrix.platform}} \
152
+ -DCMAKE_BUILD_TYPE=${BUILDTYPE} \
153
+ -DCMAKE_CXX_STANDARD=${{ matrix.cppstd }}
154
+ cmake --build build --config ${BUILDTYPE}
155
+ cd build
156
+ ctest -V -C ${BUILDTYPE}
0 commit comments