178 Commits

Author SHA1 Message Date
macabeus
bc387de7e9 Add wesnoth-map-diff 2022-04-27 17:40:52 -05:00
Pentarctagon
09ff1647b6 This shouldn't be hard coded. 2022-04-25 13:47:10 -05:00
Pentarctagon
43d82ae8cb
Update vcpkg. 2022-04-01 21:43:46 -05:00
Pentarctagon
205690c3a8
Get vcpkg caching working again. 2022-04-01 20:26:26 -05:00
Pentarctagon
999f0c1514
Add submodules into source archive.
git archive ignores submodules apparently, so the mariadbpp code has also been missing since it was added as well.
2022-03-09 17:21:46 -06:00
Pentarctagon
fe55f310a9
Missed renaming this. 2022-02-02 23:15:21 -06:00
Pentarctagon
a1537aefdf
Update the cache ID to try and get the vcpkg cache working again. 2022-01-14 10:48:42 -06:00
Pentarctagon
129deb47ec
a few macOS WML unit tests will sometimes timeout so increase the limit. 2022-01-14 10:44:36 -06:00
Pentarctagon
0679eeba30
Turns out github actions doesn't have a macOS ARM CI. 2022-01-12 11:53:35 -06:00
Pentarctagon
dde6f2ba6a Run the WML unit tests on macOS.
Not really sure why they're able to run now.
2022-01-11 16:06:00 -06:00
Pentarctagon
7a3fdc694b
Upload source/installer files as separate artifacts. 2022-01-09 21:00:43 -06:00
Pentarctagon
d516420c1f Alternate way to find SDL2. 2021-12-19 17:51:47 -06:00
Pentarctagon
370d03ccb7 Fix luacheck warnings and add to CI.
Note the `exclude_files` in .luacheckrc should be deleted once the eventual Ubuntu 22.04 base image has an updated luacheck that supports lua 5.4.
2021-11-28 14:26:02 -06:00
Pentarctagon
c2be10ca4a
Can't checkout a commit with depth=1 2021-11-28 01:28:14 -06:00
Pentarctagon
1c8b0817fc
Cleanup some names. 2021-11-18 17:20:09 -06:00
Pentarctagon
76488dc417 Attempt to trim down the CI after getting caught in github's automated platform abuse tool.
Removed:
* Two linux jobs - now only two combinations of the gcc/clang + scons/cmake matrix are run.
* Two macOS jobs - the Release configuration is now only run on ARM, and the Debug configuration is only run on Intel.

Also pinned vcpkg to a particular commit so it doesn't ignore the cache when new versions of dependencies come out. This does mean though that when dependencies or dependency versions change that the vcpkg commit and the cache ID will need to be manually updated. And while it's *probably* safe to have stable and master share the same vcpkg cache, this may become problematic if their dependencies and/or versions become incompatible.
2021-11-18 17:08:22 -06:00
Pentarctagon
1f6bf4c203 Upload artifacts that could be used for releases.
Also don't upload things anymore that aren't being used.
2021-11-18 12:32:17 -06:00
Pentarctagon
6d5202632b
Forgot to re-add macOS arm jobs to the notifications 2021-10-30 19:49:08 -05:00
Pentarctagon
b37114ecbc
Let's see if github actions doesn't bug out anymore when these are enabled. 2021-10-30 16:41:56 -05:00
Pentarctagon
6a68836d25
Print cmake version. 2021-06-24 12:53:05 -05:00
Pentarctagon
470603f6bc
Specify working cmake version to use on CI. 2021-06-24 12:52:54 -05:00
Pentarctagon
52f4e10c0e
Bump cache ID number. 2021-06-02 12:31:55 -05:00
Pentarctagon
3e8d81f473
Temporarily enable verbose WML unit test output. 2021-05-11 19:31:22 -05:00
Pentarctagon
b95d72f9c1 Use cmake to create VS project files.
Due to an upstream change in vcpkg that breaks the simple integration previously available with `vcpkg integrate install`, building using that setup method is no longer possible. In order to work correctly, cmake must instead be used to generate the VS project files, since that is able to integrate with vcpkg, since vcpkg also uses cmake to build all the library dependencies.

An additional benefit of this is that it will no longer be necessary to separately update the VS project files since it will read the same source_lists files as cmake (on linux) and scons do.

This also enables running the WML unit tests on Windows with this in order to confirm that a valid wesnoth.exe is in fact being generated as well as fixes building the boost unit tests.

The warning level for both release and debug builds are now at level three, the remaining warnings have been fixed, and therefore strict builds have been enabled - any warning will now cause the build to fail, just like for the linux jobs.

Known issues:
* The boost unit tests don't actually run successfully - they fail on CI at least with an exit code on 201 - however I don't know if this is a real problem or just a problem with running headless on CI.
* The debug build doesn't quite work since the executables are built against the non-debug dlls but cmake copies over the debug dlls into the output directory. For now this can be worked around by copying the release dlls into the debug directory.
* The instructions in INSTALL.md are not very good since I don't use Windows and thus can't write anything more detailed. Ideally someone who uses Windows can add more detailed step by step instructions at some point.

Fixes #5741
2021-05-07 00:02:02 -05:00
Pentarctagon
73c4e19ea2
Make whitespace fixing a script. 2021-05-02 16:40:40 -05:00
Pentarctagon
c4b42eadc0
Fix cmake warning. 2021-04-29 20:29:42 -05:00
Steve Cotton
bfe1f516ac Keep the Windows CIs on a version of vcpkg that builds Wesnoth
Quick workaround for #5741, the Windows builds weren't finding Pango's header
files when used with vcpkg version 546813ae7b9e2873dd3d38e78b27ac5582feae10
([glib up to gtk] update and make it work with meson).

Hopefully we can revert this workaround soon.
2021-04-27 20:03:57 +02:00
Pentarctagon
3858737ac3
Remove sdl2-ttf dependency from vcpkg on CI. 2021-04-27 09:32:31 -05:00
Pentarctagon
da336038c4
Make it more obvious which test failed. 2021-04-26 00:40:27 -05:00
Pentarctagon
fce4534493
Add comment for why the macOS ARM jobs are disabled. 2021-04-26 00:37:05 -05:00
Pentarctagon
2d4913f2e5
Delete temp file so it doesn't get picked up later. 2021-04-25 20:55:51 -05:00
Pentarctagon
5dde3d735d
Print out what was modified. 2021-04-25 19:52:02 -05:00
Pentarctagon
e74abf0567
Fix the check for whether files were modified. 2021-04-25 17:54:56 -05:00
Pentarctagon
78422f46fc
Check the correct directory for lua. 2021-04-25 15:35:03 -05:00
Pentarctagon
cc34f01f68
Add cpp|hpp and lua file whitespace check to CI. 2021-04-25 15:15:44 -05:00
Pentarctagon
a2c795bfd7
Remove verbose flag from WML unit tests. 2021-04-08 22:03:32 -05:00
Pentarctagon
395fcf3371
Additional cleanup after 18.04 CI job removal. 2021-03-10 21:50:03 -06:00
Pentarctagon
6ca9f0969e
Remove Ubuntu 18.04 CI job.
As of the TLS PR, supporting Ubuntu 18.04 will not be possible due to Boost 1.65 not supporting perfect forwarding in ssl stream's constructor.
2021-03-10 13:49:56 -06:00
Pentarctagon
3da6ce096b
Disable Windows github actions caching.
It already didn't work anyway, but now it seems to be actively causing problems by randomly failing due to lack of disk space. Though how it can only sometimes run out of disk space despite trying to cache the same thing every time, and when the runner instance is supposed to always have the same amount of disk space available, is anyone's guess.
2021-03-06 13:26:57 -06:00
Charles Dang
2da3018361 Ok CI needs ptr-container again... 2021-01-21 13:13:44 +11:00
Charles Dang
51511e582e Boost I do not understand you 2021-01-21 12:03:47 +11:00
Charles Dang
42fa1aa3b5 Cleaned up vcpkg package install list
We no longer need ptr-container or thread.
2021-01-20 21:12:36 +11:00
Pentarctagon
90946ca262 Update to require C++17.
This then also bumps the minimum GCC version to 7.
2021-01-16 17:05:47 -06:00
Pentarctagon
ef7d69b953 Use gcc-9 in the Scout runtime instead of gcc-5.
The gcc-9 shipped with the Scout runtime forces the use of -static-libstdc++ which is what allows this to work. However, LTO is not yet able to be enabled since as of right now it simply crashes immediately with `free(): invalid pointer`.
2021-01-16 15:43:59 -06:00
Pentarctagon
1061692215
Temporarily disable macOS ARM due to constant internal CI errors. 2021-01-07 09:12:35 -06:00
Pentarctagon
f1c4a83f20
Re-add MP test script to CI. 2021-01-05 11:38:46 -06:00
Pentarctagon
551aa31390 Add a CI check for doxygen issues. 2020-12-31 23:59:28 -06:00
Pentarctagon
d34c2b0347
Force rebuild of vcpkg dependencies on CI. 2020-12-30 11:16:17 -06:00
Sergey Popov
3933ebab5c
Use coroutines via boost::asio::spawn to improve overall code structure in servers (#5341)
* Convert server_base class to use coroutine instead of handlers

* Rework wesnothd's client login to use coroutine

* Merge 3 player handling functions into a single coroutine

* update cmakelists too

* Implement send_doc_queued in terms of coroutine

* Use brace initialization for making asio buffers

* Implement campaignd's request handling in coroutine

* Brace-initialize entire vector

* Remove old handler based send/receive helpers

* Document coroutine send/receive helpers

* Made coro_send_doc() helper take wml doc by reference

In most cases there is no need to rely on shared pointers to ensure
object lifetime if using coroutines since even when coroutine is
suspended args are still kept alive by its context.

* Document coro_send_file()

* Silence deprecation warning to fix build on earlier versions of boost

* Explicitly check for boost.context to allow linking against static boost libs

* Add boost.coroutine to flatpak manifest

* Port winapi TransmitFile codepath to coroutines

* Exception safety fix

* Add boost.scope_exit to vcpkg

* Fix build with pre-1.66 boost

* Move coro_* helpers into server_base class

Those helpers were in .ipp solely because they were templated on handler
types, this is no longer true after coroutine based rework.

* Make server_base::coro_send_file non-inline

* CleanUp Xcode project

Co-authored-by: Martin Hrubý (hrubymar10) <hrubymar10@gmail.com>
2020-12-30 19:08:34 +03:00
Pentarctagon
ecd1d0ce55 Add CI jobs for macOS ARM configurations. 2020-12-20 19:15:36 -06:00