Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

ethomson
Copy link
Member

@ethomson ethomson commented Sep 5, 2018

Update CI to use VSTS for the v0.27 branch instead of the Travis + AppVeyor combination.

@ethomson
Copy link
Member Author

ethomson commented Sep 6, 2018

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.
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.
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.
@ethomson
Copy link
Member Author

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.

@pks-t
Copy link
Member

pks-t commented Oct 12, 2018

I've cherry-picked three more changes on top of your proposed ones:

  • eefd5bb (Update .vsts-nightly.yml, 2018-08-31): adjusts syntax to use jobs/job and pool/vmImage instead of phases/phase and queue/name for nightly.yml
  • de08615 (Update .vsts-ci.yml, 2018-08-31): same as above, but for azure-pipelines.yml
  • 6409c0b (ci: Correct the status code check so Coverity doesn't force-fail Travis, 2018-08-14): fixes the HTTP code check for Coverity

@pks-t pks-t mentioned this pull request Oct 12, 2018
@pks-t
Copy link
Member

pks-t commented Oct 26, 2018

This is included in v0.27.5

@pks-t pks-t closed this Oct 26, 2018
@ethomson ethomson deleted the ethomson/ci_027 branch October 26, 2018 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants