script


Log

Author Commit Date CI Message
Patrick Steinhardt 5874e151 2017-11-20T13:26:33 tests: create new test target for all SSH-based tests Some tests shall be run against our own SSH server we spin up in Travis. As those need to be run separate from our previous tests which run against git-daemon, we have to do this in a separate step. Instead of bundling all that knowledge in the CI script, move it into the test build instructions by creating a new test target.
Patrick Steinhardt 54a1bf05 2017-06-07T13:06:53 tests: online::clone: inline creds-test with nonexistent URL Right now, we test our credential callback code twice, once via SSH on localhost and once via a non-existent GitHub repository. While the first URL makes sense to be configurable, it does not make sense to hard-code the non-existing repository, which requires us to call tests multiple times. Instead, we can just inline the URL into another set of tests.
Patrick Steinhardt fea60920 2017-06-07T12:48:48 tests: online::clone: construct credential-URL from environment We support two types of passing credentials to the proxy, either via the URL or explicitly by specifying user and password. We test these types by modifying the proxy URL and executing the tests twice, which is in fact unnecessary and requires us to maintain the list of environment variables and test executions across multiple CI infrastructures. To fix the situation, we can just always pass the host, port, user and password to the tests. The tests can then assemble the complete URL either with or without included credentials, allowing us to test both cases in-process.
Edward Thomson 28c89507 2017-11-06T11:49:46 Merge pull request #4394 from libgit2/cmn/macos-ramdisk travis: put clar's sandbox in a ramdisk on macOS
Patrick Steinhardt 0b98a66b 2017-11-06T11:16:02 appveyor: build examples By default, CMake will not build our examples directory. As we do not instruct either the MinGW or MSVC builds on AppVeyor to enable building these examples, we cannot verify that those examples at least build on Windows systems. Fix that by passing `-DBUILD_EXAMPLES=ON` to AppVeyor's CMake invocation.
Carlos Martín Nieto 71ba4644 2017-10-31T14:43:28 travis: let's try a 5GB ramdisk
Carlos Martín Nieto 37bb1512 2017-10-31T10:40:24 travis: put clar's sandbox in a ramdisk on macOS The macOS tests are by far the slowest right now. This attempts to remedy the situation somewhat by asking clar to put its test data on a ramdisk.
Edward Thomson 9dc21efd 2017-10-07T00:10:06 travis: add custom apt sources Move back to Travis's VM infrastructure for efficiency.
Carlos Martín Nieto 366f4136 2017-09-28T17:19:56 travis: keep installing our custom libcurl build The block in the script installs the packages if we're _not_ on Precise. This was dropped in c17c3f8a ("travis: drop support for Ubuntu Precise") in error.
Patrick Steinhardt c17c3f8a 2017-09-06T08:04:19 travis: drop support for Ubuntu Precise Ubuntu Precise is end of life since April 2017. At that point in time, Precise was still the main distro on which Travis CI built upon, with the Trusty-based images still being in a beta state. But since June 21st, Trusty has officially moved out of beta and is now the default image for all new builds. Right now, we build on both old and new images to assure we support both. Unfortunately, this leaves us with the highest minimum version for CMake being 2.8.7, as Precise has no greater version in its repositories. And because of this limitation, we cannot actually use object libraries in our build instructions. But considering Precise is end of life and Trusty is now the new default for Travis, we can and should drop support for this old and unmaintained distribution. And so we do.
Edward Thomson c582fa4e 2017-07-24T17:53:32 travis: only install custom libcurl on trusty
Edward Thomson 697583ea 2017-07-24T16:48:04 travis: only kill our own sshd
Edward Thomson f031e20b 2017-07-23T03:41:52 travis: build with patched libcurl Ubuntu trusty has a bug in curl when using NTLM credentials in a proxy, dereferencing a null pointer and causing segmentation faults. Use a custom-patched version of libcurl that avoids this issue.
Patrick Steinhardt 06619904 2017-04-26T13:04:23 travis: cibuild: set up our own sshd server Some tests of ours require to be running against an SSH server. Currently, we simply run against the SSH server provided and started by Travis itself. As our Linux tests run in a sudo-less environment, we have no control over its configuration and startup/shutdown procedure. While this has been no problem until now, it will become a problem as soon as we migrate over to newer Precise images, as the SSH server does not have any host keys set up. Luckily, we can simply set up our own unpriviledged SSH server. This has the benefit of us being able to modify its configuration even in a sudo-less environment. This commit sets up the unpriviledged SSH server on port 2222.
Patrick Steinhardt 96d02989 2017-06-13T08:09:38 travis: replace use of deprecated homebrew/dupes tap The formulae provided by the homebrew/dupes tap are deprecated since at least April 4, 2017, with formulae having been migrated to homebrew/core. Replace the deprecated reference to "homebrew/dupes/zlib" with only "zlib".
Edward Thomson 844e85f2 2017-06-12T20:00:21 travis: install openssl explicitly
Edward Thomson 408a7b77 2017-02-24T17:37:00 appveyor: don't rewrite system mingw Download mingw-w64 into our build directory and execute it there, don't try to overwrite the system's mingw.
Patrick Steinhardt 18c18e3d 2016-10-31T15:55:46 coverity: check for Coverity token only if necessary When running a Coverity build, we have to provide an authentication token in order to proof that we are actually allowed to run analysis in the name of a certain project. As this token should be secret, it is only set on the main repository, so when we were requested to run the Coverity script on another repository we do error out. But in fact we do also error out if the Coverity analysis should _not_ be run if there is no authentication token provided. Fix the issue by only checking for the authentication token after determining if analysis is indeed requested.
Patrick Steinhardt 561276ee 2016-10-28T14:48:30 coverity: only analyze the master branch of the main repository We used to only execute Coverity analysis on the 'development' branch before commit 998f001 (Refine build limitation, 2014-01-15), which refined Coverity build limitations. While we do not really use the 'development' branch anymore, it does still make sense to only analyze a single branch, as otherwise Coverity might get confused. Re-establish the restriction such that we only analyze libgit2's 'master' branch. Also fix the message announcing why we do not actually analyze a certain build.
Patrick Steinhardt 6c4d2d3e 2016-10-28T14:45:55 coverity: fix download URL
Patrick Steinhardt ec3f5a9c 2016-08-16T11:02:47 script: cibuild: build examples
Carlos Martín Nieto db357667 2016-10-05T20:17:06 travis: take the newer ssh-keygen format into account The Mac machines have updated their SSH version and so the ssh-keygen format has changed. Ask it for MD5, which is the one that is output as hex.
Carlos Martín Nieto 94d565b9 2016-10-05T18:52:43 cibuild: set -x This lets us see the details of what we're doing instead of just seeing the output of unknown commands in the build output.
Edward Thomson a37624ec 2016-07-24T16:05:17 Merge pull request #3815 from pks-t/pks/coverity-model Coverity user model
Edward Thomson 0239eff3 2016-07-24T14:51:28 ci: install homebrew's curl on mac
Edward Thomson 08556e6d 2016-07-22T17:45:03 ci: install homebrew's zlib on mac
Patrick Steinhardt 4d8fe1cd 2016-06-07T09:20:35 coverity: model functions printing into git_buf The `git_buf` structure seems to be too complicated to correctly grasp for Coverity. As such, add simpler models trying to guide Coverity and remove false positives related to these functions.
Patrick Steinhardt 956f1e23 2016-06-07T09:17:52 coverity: add user model The static analysis engine coverity allows for user models overriding how it treats functions when analyzing code. Like this, one can greatly reduce the rate of false positives and thus make it easier to spot actual errors. Add a user model that overrides function models for `git_buf_len` and `git_vector_insert`, which together amount for a majority of false positives.
Carlos Martín Nieto db01724f 2016-03-14T13:42:10 CI: start the proxy before the build so it's ready It takes a bit for the propxy to get ready to accept connections, so start it before the build so we can be reasonably sure that it's going to be ready in time.
Carlos Martín Nieto 2f3f1ee0 2015-09-21T21:40:37 proxy: test proxy support on Travis
Carlos Martín Nieto 4848dd32 2016-03-14T17:45:15 Merge pull request #3647 from pks-t/pks/coverity-fixes-round6 Coverity fixes round 6
Carlos Martín Nieto b1093e62 2016-03-09T19:01:33 Remove CI support for mingw32 The tests have never run successfully and we do have successful builds of mingw-w64, so remove these CI builds which do not add value.
Patrick Steinhardt 2615d0d6 2016-03-02T01:50:34 coverity: report errors when uploading tarball Curl by default does not report errors by setting the error code. As the upload can fail through several conditions (e.g. the rate limit, leading to unauthorized access) we should indicate this information in Travis CI. To improve upon the behavior, use `--write-out=%{http_code}` to write out the HTTP code in addition to the received body and return an error if the code does not equal 201.
Carlos Martín Nieto ba9bb664 2016-03-03T19:21:07 tests: create a ctest target for cred_callback
Carlos Martín Nieto 25205737 2016-03-03T10:08:00 test: make sure we retry the auth callback on all platforms We were missing this test on Windows, which meant we didn't notice that we never fixed the single authentication attempt it tries, nor its wrong return code. Enable this for the unix platforms as well over HTTP. We previously were doing it locally but disabled it on OS X due to issues with its sshd not accepting password authentication.
Patrick Steinhardt 859ed5dd 2016-02-23T09:54:26 common: introduce GITERR_CHECK_ALLOC_BUF We commonly have to check if a git_buf has been allocated correctly or if we ran out of memory. Introduce a new macro similar to `GITERR_CHECK_ALLOC` which checks if we ran OOM and if so returns an error. Provide a `#nodef` for Coverity to mark the error case as an abort path.
Patrick Steinhardt f2a554b4 2016-02-22T14:43:28 coverity: hint git_vector_foreach does not deref NULL contents Coverity does not comprehend the connection between a vector's size and the contents pointer, that is that the vector's pointer is non-NULL when its size is positive. As the vector code should be reasonably well tested and users are expected to not manually modify a vector's contents it seems save to assume that the macros will never dereference a NULL pointer. Fix Coverity warnings by overriding the foreach macros with macros that explicitly aborting when (v)->contents is NULL.
Patrick Steinhardt 40f6f225 2016-02-15T10:58:52 coverity: hint that string length is at least 2 When checking if a string is prefixed by a drive letter (e.g. "C:") we verify this by inspecting the first and second character of the string. Coverity thinks this is a defect as we do not check the string's length first, but in fact we only check the second character if the first character is part of the alphabet, that is it cannot be '\0'. Fix this by overriding the macro and explicitly checking the string's length.
Patrick Steinhardt 5981ab1d 2016-02-15T09:41:08 coverity: add nodefs for abort macros Add nodefs for macros that abort the current flow due to errors. This includes macros that trigger on integer overflows and for the version check macro. This aids Coverity as we point out that these paths will cause a fatal error.
Patrick Steinhardt 50174ab4 2016-02-10T11:06:23 coverity: use https URL for posting build When posting our instrumented build results to Coverity we have to include sensitive information, in particular our authorization token. Currently we use an unencrypted channel to post this information, leading to the token being transferred in plain. Fix this by using a secured connection instead.
Patrick Steinhardt 8dddea42 2016-02-10T10:59:14 coverity: provide nodef for GITERR_CHECK_ALLOC Coverity currently lists a lot of errors with regard to GITERR_CHECK_ALLOC causing resource leaks. We know this macro is only invoked when we want to abort because we are out of memory. Coverity allows for overriding the default model where we know that certain functions guarantee a desired behavior. The user_nodefs.h is used to override the behavior of macros. Re-define GITERR_CHECK_ALLOC inside of it to specify its abort nature.
Carlos Martín Nieto a0bdfe32 2015-07-06T18:42:39 travis: don't install CMake on OS X Homebrew will error out because it's already installed.
Carlos Martín Nieto d41b8ed0 2015-07-06T18:32:31 travis: update the homebrew db We need to make sure we are asking for the current version of packages, or we might get 404s from the download service.
Arthur Schreiber 32f538ae 2015-06-27T15:02:53 Remove dependency installation file for travis builds. We're installing dependencies via the APT addon now.
Arthur Schreiber 51f87999 2015-06-26T18:05:17 Don't try to start ssh.
Carlos Martín Nieto 6042a050 2015-06-12T12:17:03 travis: fail if we fail the push tests These tests were not being taken into consideration for the failure of the test. They've been failing for a while now, but we hadn't noticed as Travis was reporting the builds successful.
Tony Kelman 7aa96593 2015-03-17T12:05:07 set PKG_CONFIG_LIBDIR in toolchain-mingw32.cmake
Philip Kelley 8f426d7d 2014-06-09T11:43:25 Win32: Enable WinHTTP for MinGW
Edward Thomson 3e329861 2015-03-10T16:08:34 Revert "Implement fail-fast for Travis as well" This reverts commit ba6c53b91b1d9c9dc49b7c0d8e8efbd9842c31dc.
Tony Kelman 4c88fd7c 2015-03-04T11:31:24 Add MinGW-w64 to matrix cache mingw-w64 downloads quiet curl and 7zip run appveyor steps in cmd for mingw
Tony Kelman ba6c53b9 2015-03-03T21:07:12 Implement fail-fast for Travis as well
Tony Kelman ac5fad27 2015-03-03T10:53:26 add mingw to appveyor matrix use MSYS makefiles generator add bash script for running mingw on appveyor add --login and fix run paths use msys style path to appveyor-mingw.sh add mingw path to /etc/fstab
Edward Thomson 6f446176 2014-11-21T10:59:20 Merge pull request #2710 from Therzok/shellcheckScripts Run shell scripts through shellcheck
Ungureanu Marius a4fccbbf 2014-11-17T07:01:40 Run shell scripts through shellcheck
Carlos Martín Nieto aa5a06c3 2014-11-20T00:52:52 travis: disable the cert callback on OSX The sshd on OSX has stopped responding to the setting which this test assumes is there, so let's disable it until we can figure out what's happening.
Carlos Martín Nieto ebda0970 2014-09-16T02:07:39 script: use a parallel build on Travis
Carlos Martín Nieto 0fef3899 2014-09-16T01:25:53 Merge remote-tracking branch 'upstream/master' into cmn/host-cert-info
Carlos Martín Nieto bf8756d6 2014-09-15T21:51:42 ssh: add test for host key Test that the certificate check callback gets the right fingerprint from the host we're connecting to.
Carlos Martín Nieto 26bf3a53 2014-08-10T17:13:00 travis: no need to clean out the test repository This was added to avoid the remote's default branch to be considered to the be notes one which the first network test leaves behind.
Carlos Martín Nieto 6a0d2b43 2014-08-27T15:09:07 Merge remote-tracking branch 'upstream/master' into cmn/ssh-retry
Carlos Martín Nieto d4256ed5 2014-07-04T10:00:39 ssh: provide a factory function for setting ssh paths git allows you to set which paths to use for the git server programs when connecting over ssh; and we want to provide something similar. We do this by providing a factory function which can be set as the remote's transport callback which will set the given paths upon creation.
Carlos Martín Nieto 87339935 2014-06-26T22:38:54 travis: enable password authentication on OSX Our ssh tests assume that the server supports password authentication in a few places. This is convenient as we're not testing authentication methods, but what happens around them. Tell sshd on OSX to accept this form of authentication.
Carlos Martín Nieto d7f962f4 2014-06-16T19:30:06 ssh: request credentials again on authentication failure Instead of completely giving up on the first failure, ask for credentials as long as we fail to authenticate.
Carlos Martín Nieto 72303307 2014-05-21T12:45:22 travis: build on osx too
Carlos Martín Nieto 039e354b 2014-04-30T11:57:54 ciscript: don't use an empty string as a number An empty string is not a valid number, and some shells complain. Check instead if $COVERITY is non-empty, which is a common convention and what we're doing anyway.
Ben Straub 5dae3ffe 2014-02-05T19:27:27 Only run clone-failure test on private repo
Ben Straub 998f0016 2014-01-15T12:32:12 Refine build limitation
Ben Straub 53e6f480 2014-01-15T12:12:17 Only run coverity on development
Ben Straub 9bf17d2c 2014-01-13T14:11:14 Add coverity-scan script
Carlos Martín Nieto 5875e8d2 2013-08-19T18:50:03 travis: exit on failure for anything related to building
Carlos Martín Nieto 68180808 2013-08-19T10:50:28 travis: really fail if the tests fail When implementing the ssh testing, the move to the script made it so the first test suite's exit code was ignored. Check whether the main tests fail and exit with an error in that case.
Carlos Martín Nieto 5be622fb 2013-08-11T01:37:44 Test SSH in travis Set up the ssh credentials so we are able to talk to localhost and issue git commands. Move to use a script, as the command list is getting somewhat long. While here, delay installing valgrind until we need it, as it and its dependencies are by far the largest downloads and this allows us to start compiling (and failing) faster and we only incur this cost when the test suite runs successfully.