-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Introduce VSTS CI for the v0.27 branch #4798
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
43aaf78
to
8096d11
Compare
OK - this backports CI changes for the maint/0.27 branch, as well as some memory leak fixes that landed in master now that we're running more exhaustive leak detection as part of PR and CI builds. |
Add citest.ps1 PowerShell script to run the tests.
Refactor citest.sh to enable local testing by developers.
Sets up a linux host to prepare for a build.
Script to set up dependencies on a macOS build system.
On Linux (where we run valgrind) allocate a smaller buffer, but still an insanely large size. This will cause malloc to fail but will not cause valgrind to report a likely error with a negative-sized malloc. Keep the original buffer size on non-Linux platforms: this is well-tested on them and changing it may be problematic. On macOS, for example, using the new size causes `malloc` to print a warning to stderr.
The leaks process is not good about handling children. Ensure that its child is `nohup`ed so that the grandparent shell won't wait for it to exit.
Early Windows TLS 1.2 implementations have an issue during key exchange with OpenSSL implementations that cause negotiation to fail with the error "the buffer supplied to a function was too small." This is a transient error on the connection, so when that error is received, retry up to 5 times to create a connection to the remote server before actually giving up.
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.
Don't just free the push status structure, actually free the strings that were strdup'd into the struct as well.
Don't just free the spec vector, also free the specs themselves.
Free the url field when resetting the stream to avoid leaking it.
9de62ea
to
6353e6a
Compare
Our CI test system invokes ctest with the name of the given tests it wishes to invoke. ctest (with the `-R` flag) treats this name as a regular expression. Provide anchors in the regular expression to avoid matching additional tests in this search.
459b509
to
89024c7
Compare
Before resetting the url and username, ensure that we free them in case they were set by environment variables.
Explicitly run from the build directory, not the source. (I was mistaken about the default working directory for VSTS agents.)
Our build YAML is becoming unweildly and full of copy-pasta. Simplify with templates.
f35c3f3
to
0897cf3
Compare
I've cherry-picked most - but not all - of the CI changes that went into the master branch to bring them to the 0.27 maintenance branches. Notably, I've omitted any changes that refactor the test names, as reported by ctest. I was worried that doing so might break peoples scripts that were running tests via ctest, which seems particularly rude for a point release. |
I've cherry-picked three more changes on top of your proposed ones:
|
This is included in v0.27.5 |
Update CI to use VSTS for the v0.27 branch instead of the Travis + AppVeyor combination.