OpenAWE-Project / OpenAWE

A reimplementation of Remedy Entertainments Alan Wake Engine, in later iterations known as the Northlight Engine
GNU General Public License v3.0
159 stars 13 forks source link

Use workflow caches to shorten CI build time #27

Closed maaxxaam closed 1 year ago

maaxxaam commented 1 year ago

Use actions/cache Github Action together with ccache to reduce compilation time during frequent CI jobs on Mac and Linux. Can shorten build times (at the moment) from 10-15 minutes down to 2-4 on cache hit. For Windows, use actions/cache to store vcpkg's build dependencies. Can shorten build times (right now) from 15-20 minutes down to 9-12 on cache hit. Unfortunately, it seems that ccache shouldn't be used with MSVC as it is not a thoroughly tested combination and thus unstable.

maaxxaam commented 1 year ago

I've been a bit too quick on a draw there: workflow needs more testing as of now since it doesn't generate hashes properly yet as stated in a last commit. Note: times mentioned in the first comment are full CI job times with no source code changes (showcasing situation that benefits most from caching)

maaxxaam commented 1 year ago

First, I'm truly sorry that I just now got the time to review this, I am currently really busy.

That's not a problem, considering this PR is not even covering any existing issues and targets CI, which is not heavily used at the moment.

In short I would prefer if we could reduce the number of CI steps by somehow removing the "Override cache folder for vcpkg". Do you think, this would be possible?

I've done something I should've done a while back: I thoroughly read vcpkg's documentation on binary caching that includes a recipe for caching at GitHub CI. It's done by using NuGet, which is a bit weird to setup, but seems to work as well.

Nostritius commented 1 year ago

Merged, thanks :)