@@ -15,37 +15,85 @@ jobs:
1515 libzmq : ["4.3.4"]
1616 libzmqbuild : ["cmake"]
1717 include :
18+ # older libzmq and gcc without draft
1819 - os : " ubuntu-18.04"
19- cppstd : 11
20+ cppstd : " 11 "
2021 cc : " gcc-7"
2122 cxx : " g++-7"
2223 drafts : " OFF"
2324 libzmq : " 4.2.0"
2425 libzmqbuild : " pkgconfig"
26+ # without draft
2527 - os : " ubuntu-latest"
26- cppstd : 20
28+ cppstd : " 20 "
2729 cc : " gcc-10"
2830 cxx : " g++-10"
2931 drafts : " OFF"
3032 libzmq : " 4.3.4"
3133 libzmqbuild : " cmake"
34+ # clang
3235 - os : " ubuntu-latest"
33- cppstd : 17
36+ cppstd : " 17 "
3437 cc : " clang-12"
3538 cxx : " clang++-12"
3639 drafts : " ON"
3740 libzmq : " 4.3.4"
3841 libzmqbuild : " cmake"
3942
43+ env :
44+ CC : ${{ matrix.cc }}
45+ CXX : ${{ matrix.cxx }}
46+ VERBOSE : 1
47+ THREADS : 2
48+ LIBZMQ : /tmp/libzmq-build
49+ CPPZMQ : /tmp/cppzmq-build
50+ COVERAGE : " OFF" # TODO
51+
4052 steps :
4153 - uses : actions/checkout@v2
54+ - name : get_libzmq
55+ run : |
56+ curl -L https://github.com/zeromq/libzmq/archive/v${{ matrix.libzmq }}.tar.gz \
57+ >zeromq.tar.gz
58+ tar -xvzf zeromq.tar.gz
59+
60+ - name : build_libzmq_cmake
61+ if : ${{ matrix.libzmqbuild == 'cmake' }}
62+ run : |
63+ cmake -Hlibzmq-${{ matrix.libzmq }} -B${LIBZMQ} \
64+ -DWITH_PERF_TOOL=OFF \
65+ -DZMQ_BUILD_TESTS=OFF \
66+ -DCMAKE_BUILD_TYPE=Release \
67+ -DENABLE_DRAFTS=${{ matrix.drafts }}
68+ cmake --build ${LIBZMQ} -- -j${THREADS}
69+
70+ - name : build_libzmq_pkgconfig
71+ if : ${{ matrix.libzmqbuild == 'pkgconfig' }}
72+ working-directory : libzmq-${{ matrix.libzmq }}
73+ run : |
74+ ./autogen.sh &&
75+ ./configure --prefix=${LIBZMQ} &&
76+ make -j${THREADS}
77+ make install
78+
4279 - name : build
43- run : ./ci_build.sh
4480 env :
45- CC : ${{ matrix.cc }}
46- CXX : ${{ matrix.cxx }}
47- CMAKE_CPP_STD : -DCMAKE_CXX_STANDARD=${{ matrix.cppstd }}
48- ENABLE_DRAFTS : ${{ matrix.drafts }}
49- ZMQ_VERSION : ${{ matrix.libzmq }}
50- BUILD_TYPE : ${{ matrix.libzmqbuild }}
51- VERBOSE : 1
81+ CMAKE_PREFIX_PATH : ${{ env.LIBZMQ }}
82+ run : |
83+ cmake -H. -B${CPPZMQ} -DENABLE_DRAFTS=${{ matrix.drafts }} \
84+ -DCOVERAGE=${COVERAGE} \
85+ -DCMAKE_CXX_STANDARD=${{ matrix.cppstd }}
86+ cmake --build ${CPPZMQ} -- -j${THREADS}
87+
88+ - name : test
89+ working-directory : ${{ env.CPPZMQ }}
90+ run : ctest -V -j${THREADS}
91+
92+ - name : demo
93+ env :
94+ CMAKE_PREFIX_PATH : ${{ env.LIBZMQ }}:${{ env.CPPZMQ }}
95+ run : |
96+ cmake -Hdemo -Bdemo/build
97+ cmake --build demo/build
98+ cd demo/build
99+ ctest -V
0 commit comments