-
Notifications
You must be signed in to change notification settings - Fork 2.5k
CI: Refactor and introduce VSTS builds #4723
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
Conversation
64a94fb
to
3dcdaa6
Compare
c99244e
to
4d27196
Compare
4146ecb
to
dcc551c
Compare
OK. I think that I've addressed your comments, @pks-t.
|
Instead of trying to run coverity builds during the regular PR process, run them during a regularly scheduled cron process. These only need to run nightly, so it makes sense to bring them out of the PR process.
OK, seeing as there's no other feedback, I'm going to merge this later today to start getting some idea of how it's performing against PRs. |
On Thu, Aug 02, 2018 at 02:11:52AM -0700, Edward Thomson wrote:
OK, seeing as there's no other feedback, I'm going to merge this later today to start getting some idea of how it's performing against PRs.
I was planning to do another review round today. That being said,
as long as Travis/AppVeyor aren't yet being phased out I'm happy
to merge this early-ish to see how it performs.
|
I ran out of time today, so I only had a cursory read. From what I saw it looked good to me. I'll have more time to review tomorrow, but feel free to go ahead and merge it. We can still improve things after that. |
I've refactored the build and test scripts quite a bit in order to simplify and reduce complexity. Now all builds are three simple steps:
For example: using Homebrew to install libraries, or downloading and installing mingw. This step will only be run on hosted build agents. Docker images and private build agents (that we provision and provide ourselves) should simply have the dependencies installed correctly.
I've also refactored the build and tests steps so that they can run isolated, without affecting other parts of the system. For example: the ssh server is now started and configured in a way that doesn't touch
$HOME/.ssh
. This allows developers to run these scripts without it removing or updating their actual ssh settings. 😁Finally, I've introduced CI builds with Visual Studio Team Services. Immediately, this includes seven build targets:
Per https://github.com/libgit2/discussions/issues/5, I think that we might want to have a separate set of additional builds that run as nightly builds. For example, Linux ARM (Raspberry Pi).
I think that this is worth merging now so that we can evaluate our PRs with it and get a feel for it to ensure that it's faster than our existing CI systems. However it's not ready to completely replace Travis CI or AppVeyor, as we're not doing leak detection here yet.