cling
cling copied to clipboard
Cling continuous integration pipeline for windows...
Hi !
Has anyone tried to set up continuous build pipeline for windows ? I would prefer to use vs2019, but vs2017 will do as well. What I have initially checked - .travis.yml of cling does not have "os: windows", also tried to check whether there exists any clang continuous build chains, found one here: https://github.com/vovkos/llvm-package-travis
but it also does not have any "os: windows".
I find out that in theory it's possible to support windows & vs2019, see https://github.com/offscale/liboffkv/tree/ci-windows
(ci-windows branch),
but .travis.yml is configured there only for windows - to my best understanding commands being executed needs to be platform neutral / independent, and mixing multiple platforms in same yaml config file is not possible. (Correct me if I'm wrong now).
What I have tested by myself - some cling projects does not compile out of box on windows (linkage differences between os's), and to compile whole llvm + clang + cling takes huge amount of disk space (~ 65 Gb) - I would prefer to take .lib/.exe/.dll/.pdb as precompiled at least for clang for different types of builds.
If however I want to go deeper into source code, I think it should be possible to take latest build from git and be sure that it works 100%, which in a turn means that continuous build pipeline needs to be set up.
Have you analyzed any deeper what setting up this pipeline would mean in practice ?
And by reading this article:
https://blog.esciencecenter.nl/travis-caching-and-incremental-builds-6518b89ee889
I've realized I knew nothing about subject.
But using bash shell script is indeed possible, and in windows we do have tortoise bash script, but somehow I've decided to use python - code syntax is more or less the same, but slightly simpler.
Compiler cache is indeed possible to use, but for windows there exists only this code https://github.com/frerich/clcache - and I was not entirely sure will it work or not.
Also noticed that you have in ccache statistics some misses, so suspect something is still triggering those compilation even thus nothing has changed.
I've performed multiple git clone's and set timestamps of each file.
So far I was building using only one core, in later version managed to upgrade to multicore (2) build, and specified more focused target - cling.
Still waiting for build results, will also retry them after timeout.
But here is whole git repository (targeted for cling & clang compilation), should be compatible with linux and windows.
https://github.com/tapika/test_travis_ci
Would it be possible to copy some of ideas into potential windows build environment ?
The disk space is huge "only" for debug builds.
We'd be happy to receive a contribution here to improve the Windows CI part. (We have it running outside of Travis; github is only part of our Q&A infra.)
Do you need any help on integrating my changes, or you can just take them ?
My initial idea is that python could be just intermediate helper for clang / cling, for longer term target me/we/someone should target to python replacement - so everything what is needed by build is performed by c++ code, preferably cling scripts.
I have one item which I have raised to travis ci team: https://travis-ci.community/t/no-output-has-been-received-in-the-last-10m0s-while-trying-to-restore-cache/5153
But not sure how they will react on this one.