crossbario / autobahn-cpp

WAMP for C++ in Boost/Asio
https://crossbar.io/autobahn
Boost Software License 1.0
251 stars 104 forks source link

Add CI using GitHub Actions #211

Closed robinlinden closed 3 years ago

robinlinden commented 3 years ago

It's mostly set up to support more OSes and compilers because I was originally going to add Clang right away, but it turns out that building boost with clang + libc++ is non-trivial. I can add it and MSVC in a later PR if you don't mind GitHub actions. :)

I use pip to install cmake since that's the most convenient way that works everywhere, and you get newer cmake faster than with apt.

Successful build here: https://github.com/robinlinden/autobahn-cpp/runs/1119335338?check_suite_focus=true

oberstet commented 3 years ago

^ awesome. thanks for the PR! no, we "don't mind GH actions". even though - historically - we've still got a lot on Travis, we want to move to GH actions .. so also any additional build flavors would be welcome!

oberstet commented 3 years ago

great, the merge automatically and successfully triggered a CI run on GH actions: https://github.com/crossbario/autobahn-cpp/actions/runs/257310656

seems like there is a linking/msgpack related issue on the GH actions build box:

[ 38%] Building CXX object examples/CMakeFiles/provide_prefix.dir/provide_prefix.cpp.o
[ 44%] Linking CXX executable provide_prefix
/usr/bin/ld: CMakeFiles/provide_prefix.dir/provide_prefix.cpp.o: in function `msgpack::v2::object::object<char [7]>(char const (&) [7])':
/usr/include/msgpack/v2/object_fwd.hpp:36: undefined reference to `void msgpack::v1::operator<< <char, 7ul>(msgpack::v2::object&, char const (&) [7ul])'
collect2: error: ld returned 1 exit status
make[2]: *** [examples/CMakeFiles/provide_prefix.dir/build.make:112: examples/provide_prefix] Error 1
make[1]: *** [CMakeFiles/Makefile2:211: examples/CMakeFiles/provide_prefix.dir/all] Error 2
make: *** [Makefile:150: all] Error 2
##[error]Process completed with exit code 2.
robinlinden commented 3 years ago

Strange. I'll take a look. You can see that the build passed when I ran it in my fork's CI though.

robinlinden commented 3 years ago

I can't reproduce the linker error locally, but I was able to reproduce it in CI, so now you have a PR fixing it. :) msgpack requires a zone to serialize to ARRAY or MAP, and msgpack::v2::object::object<char [7]> sounds pretty array-y.

oberstet commented 3 years ago

oh, great that you found that one! pretty subtle .. c++=)