Tectu / malloy

A cross-platform C++20 library providing embeddable server & client components for HTTP and WebSocket.
BSD 3-Clause "New" or "Revised" License
66 stars 8 forks source link

Add CI via github actions #16

Closed 0x00002a closed 3 years ago

0x00002a commented 3 years ago

This adds a basic CI system via github actions that runs on pushes to main or pull requests to main. Currently every configuration but ubuntu without tls and boost 1.76.0 fails. imo thats a good thing (from a "we know what to fix" perspective :p). All builds with boost 1.73.0 fail due to this bug in asio. Builds with tls on non-windows fails due to trying to link to crypto32 (which I think is a windows core library?). mingw complains of a missing include and I think the rest of the build issues are ones I've opened issues for.

The windows build uses both mingw and msvc. Mingw uses gcc 10 which I think supports enough C++20 for this library.

Would be nice to have an msys2 setup and also mac, but I'm not familiar with how to build this library on those (I've never used mac and haven't used msys2 in ages).

Feedback is welcome. Especially if theres a way to split this up better that I'm missing, not a huge fan of all the ifs needed to prevent duplicating most of the setup, which would be needed if it was one workflow per os.

Tectu commented 3 years ago

Uh, thanks a lot for this! I wanted to integrate CI via Github actions for a while but didn't get to it as I wanted to focus on polishing the library first.

So far I've always used our company's CI/CD infrastructure so I am completely new to Github actions. I appreciate your efforts :)

Tectu commented 3 years ago

All builds with boost 1.73.0 fail due to this bug in asio.

I raised the minimum required version to 1.74.0.

Mingw uses gcc 10 which I think supports enough C++20 for this library.

I can confirm that this library compiles fine with GCC 10.1 and 10.2.

Would be nice to have an msys2 setup and also mac, but I'm not familiar with how to build this library on those (I've never used mac and haven't used msys2 in ages).

I have access to those via our company's CI/CD infrastructure. I'll set something up in the future.

Feedback is welcome. Especially if theres a way to split this up better that I'm missing, not a huge fan of all the ifs needed to prevent duplicating most of the setup, which would be needed if it was one workflow per os.

I have no experience working with Github actions. I'm sure we can improve this as time moves forward :)

Tectu commented 3 years ago

Ubuntu builds are now building successfully, also with TLS on. Windows is still making some issues.

0x00002a commented 3 years ago

Ubuntu builds are now building successfully, also with TLS on. Windows is still making some issues.

Yeah the tests won't build (and I'm guessing the examples either, should those be in the ci?): https://github.com/Tectu/malloy/pull/8#issuecomment-864610368