Merge pull request #505 from gummif/gfa/actions-windows

CI action for windows
This commit is contained in:
Gudmundur Adalsteinsson 2021-07-14 19:00:58 +00:00 committed by GitHub
commit 4108a5d266
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,11 @@
name: Linux name: CI
on: [push, pull_request] on: [push, pull_request]
defaults:
run:
shell: bash
jobs: jobs:
tests: tests:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@ -14,6 +18,7 @@ jobs:
drafts: ["ON"] drafts: ["ON"]
libzmq: ["4.3.4"] libzmq: ["4.3.4"]
libzmqbuild: ["cmake"] libzmqbuild: ["cmake"]
platform: [""]
include: include:
# older libzmq and gcc without draft # older libzmq and gcc without draft
- os: "ubuntu-18.04" - os: "ubuntu-18.04"
@ -57,14 +62,30 @@ jobs:
drafts: "ON" drafts: "ON"
libzmq: "4.3.4" libzmq: "4.3.4"
libzmqbuild: "cmake" libzmqbuild: "cmake"
# windows
- os: "windows-2016"
cppstd: "14"
cc: "msbuild"
cxx: "msbuild"
drafts: "ON"
libzmq: "4.3.4"
libzmqbuild: "cmake"
platform: "-Ax64"
- os: "windows-latest"
cppstd: "20"
cc: "msbuild"
cxx: "msbuild"
drafts: "ON"
libzmq: "4.3.4"
libzmqbuild: "cmake"
platform: "-Ax64"
env: env:
CC: ${{ matrix.cc }} CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }} CXX: ${{ matrix.cxx }}
VERBOSE: 1 VERBOSE: 1
THREADS: 2 THREADS: 2
LIBZMQ: /tmp/libzmq-build BUILDTYPE: "Debug"
CPPZMQ: /tmp/cppzmq-build
COVERAGE: "OFF" # TODO COVERAGE: "OFF" # TODO
steps: steps:
@ -83,40 +104,53 @@ jobs:
- name: build_libzmq_cmake - name: build_libzmq_cmake
if: ${{ matrix.libzmqbuild == 'cmake' }} if: ${{ matrix.libzmqbuild == 'cmake' }}
run: | run: |
cmake -Hlibzmq-${{ matrix.libzmq }} -B${LIBZMQ} \ cmake -Hlibzmq-${{ matrix.libzmq }} -Blibzmq-build ${{ matrix.platform}} \
-DWITH_PERF_TOOL=OFF \ -DWITH_PERF_TOOL=OFF \
-DZMQ_BUILD_TESTS=OFF \ -DZMQ_BUILD_TESTS=OFF \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DENABLE_DRAFTS=${{ matrix.drafts }} -DENABLE_DRAFTS=${{ matrix.drafts }}
cmake --build ${LIBZMQ} -- -j${THREADS} cmake --build libzmq-build --config ${BUILDTYPE} -j ${THREADS}
echo "LIBZMQ=${PWD}/libzmq-build" >> ${GITHUB_ENV}
- name: build_libzmq_pkgconfig - name: build_libzmq_pkgconfig
if: ${{ matrix.libzmqbuild == 'pkgconfig' }} if: ${{ matrix.libzmqbuild == 'pkgconfig' }}
working-directory: libzmq-${{ matrix.libzmq }} working-directory: libzmq-${{ matrix.libzmq }}
run: | run: |
./autogen.sh && ./autogen.sh &&
./configure --prefix=${LIBZMQ} && ./configure --prefix=${PWD}/libzmq-build &&
make -j${THREADS} make -j ${THREADS}
make install make install
echo "LIBZMQ=${PWD}/libzmq-build" >> ${GITHUB_ENV}
- name: build - name: build
env: env:
CMAKE_PREFIX_PATH: ${{ env.LIBZMQ }} CMAKE_PREFIX_PATH: ${{ env.LIBZMQ }}
run: | run: |
cmake -H. -B${CPPZMQ} -DENABLE_DRAFTS=${{ matrix.drafts }} \ cmake -H. -Bbuild ${{ matrix.platform}} \
-DCOVERAGE=${COVERAGE} \ -DCMAKE_BUILD_TYPE=${BUILDTYPE} \
-DCMAKE_CXX_STANDARD=${{ matrix.cppstd }} -DENABLE_DRAFTS=${{ matrix.drafts }} \
cmake --build ${CPPZMQ} -- -j${THREADS} -DCOVERAGE=${COVERAGE} \
-DCMAKE_CXX_STANDARD=${{ matrix.cppstd }}
cmake --build build --config ${BUILDTYPE} -j ${THREADS}
echo "CPPZMQ=${PWD}/build" >> ${GITHUB_ENV}
- name: test - name: test
working-directory: ${{ env.CPPZMQ }} # for unknown reason no tests are found and run on windows
run: ctest -V -j${THREADS} # could be something to do with catch_discover_tests not working?
run: |
cd ${{ env.CPPZMQ }}
ctest -V -C ${BUILDTYPE}
- name: demo - name: demo
# probably need to install libzmq and cppzmq for this to work on windows
if: ${{ matrix.os == 'ubuntu*' }}
env: env:
CMAKE_PREFIX_PATH: ${{ env.LIBZMQ }}:${{ env.CPPZMQ }} CMAKE_PREFIX_PATH: ${{ env.LIBZMQ }}:${{ env.CPPZMQ }}
run: | run: |
cmake -Hdemo -Bdemo/build cd demo
cmake --build demo/build cmake -H. -Bbuild ${{ matrix.platform}} \
cd demo/build -DCMAKE_BUILD_TYPE=${BUILDTYPE} \
ctest -V -DCMAKE_CXX_STANDARD=${{ matrix.cppstd }}
cmake --build build --config ${BUILDTYPE}
cd build
ctest -V -C ${BUILDTYPE}