-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: Decrease compilation times with Ccache #13111
base: master
Are you sure you want to change the base?
Conversation
Is it possible that the ccache action could be changed after this is added to introduce malware? If so, maybe we should fork the action under the minetest namespace. |
Since the repository belongs to hendrikmuhs, I assume he/she is able to change the action with malicious intent. |
HybridDog previously attempted to introduce malware into a mod, should definitely be checking this stuff |
You can pin action to a specific commit hash instead of a release to make sure it cannot be modified. |
Looks good. What’s holding it? |
im' not in favor of use random user github action. Cannot we fork it on our side ? |
@HybridDog given that ccache sometimes has false positves, how is the cache evicted here? |
I haven't encountered false positives yet with ccache and I don't know in which situations they appear. I've configured the CI to use a separate cache per Job, as suggested there. |
46abca3
to
a4ed384
Compare
The elephant in the room is that a ccache false positive is hard to diagnose unless you have really good tests for that code path and the tests are not affected in the same way as the code is. Here are some reasons for ccache false positves:
The Gentoo (a “compile everything” GNU/Linux distribution) wiki suggests disabling ccache before reporting a bug: https://wiki.gentoo.org/wiki/Handbook:Parts/Working/Features#Caching_compilation_objects Reminder: I am not against use of ccache – I just wanted developers to have an easy way to manually evict the cache. |
@HybridDog rebase needed |
I've excluded the docker build since it would probably require a modified Dockerfile.
Question: do we actually want to do this? My opinion on it is neutral. |
I think longer build times slightly increase the load on Microsoft's servers because GitHub is owned by Microsoft. I don't like Microsoft, so my opinion is neutral, too. |
I've excluded the docker build since it would probably require a modified Dockerfile,
and Ccache did not work with macos and VS 2019 builds for some reason.
How to test
build.yml
workflow file, create a commit and push to the forked branch