1- name : Linux
1+ name : CI
22
33on : [push, pull_request]
44
5+ defaults :
6+ run :
7+ shell : bash
8+
59jobs :
610 tests :
711 runs-on : ${{ matrix.os }}
1418 drafts : ["ON"]
1519 libzmq : ["4.3.4"]
1620 libzmqbuild : ["cmake"]
21+ platform : [""]
1722 include :
1823 # older libzmq and gcc without draft
1924 - os : " ubuntu-18.04"
@@ -57,14 +62,30 @@ jobs:
5762 drafts : " ON"
5863 libzmq : " 4.3.4"
5964 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"
6082
6183 env :
6284 CC : ${{ matrix.cc }}
6385 CXX : ${{ matrix.cxx }}
6486 VERBOSE : 1
6587 THREADS : 2
66- LIBZMQ : /tmp/libzmq-build
67- CPPZMQ : /tmp/cppzmq-build
88+ BUILDTYPE : " Debug"
6889 COVERAGE : " OFF" # TODO
6990
7091 steps :
@@ -83,40 +104,53 @@ jobs:
83104 - name : build_libzmq_cmake
84105 if : ${{ matrix.libzmqbuild == 'cmake' }}
85106 run : |
86- cmake -Hlibzmq-${{ matrix.libzmq }} -B${LIBZMQ } \
107+ cmake -Hlibzmq-${{ matrix.libzmq }} -Blibzmq-build ${{ matrix.platform} } \
87108 -DWITH_PERF_TOOL=OFF \
88109 -DZMQ_BUILD_TESTS=OFF \
89110 -DCMAKE_BUILD_TYPE=Release \
90111 -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}
92114
93115 - name : build_libzmq_pkgconfig
94116 if : ${{ matrix.libzmqbuild == 'pkgconfig' }}
95117 working-directory : libzmq-${{ matrix.libzmq }}
96118 run : |
97119 ./autogen.sh &&
98- ./configure --prefix=${LIBZMQ} &&
99- make -j${THREADS}
120+ ./configure --prefix=${PWD}/libzmq-build &&
121+ make -j ${THREADS}
100122 make install
123+ echo "LIBZMQ=${PWD}/libzmq-build" >> ${GITHUB_ENV}
101124
102125 - name : build
103126 env :
104127 CMAKE_PREFIX_PATH : ${{ env.LIBZMQ }}
105128 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}
110136
111137 - 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}
114143
115144 - name : demo
145+ # probably need to install libzmq and cppzmq for this to work on windows
146+ if : ${{ matrix.os == 'ubuntu*' }}
116147 env :
117148 CMAKE_PREFIX_PATH : ${{ env.LIBZMQ }}:${{ env.CPPZMQ }}
118149 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