137 Commits

Author SHA1 Message Date
Łukasz Langa
af72120318 Update ci/docker/fedora to work with Rawhide 44 2025-10-21 16:41:09 +02:00
Edward Thomson
9c2b827cef ci: disable perf_event_paranoid on linux CI 2025-01-13 21:23:04 +00:00
Edward Thomson
95f47a3458 ci: update noble build
Ubuntu noble clang is now `clang-18`; update that, and update valgrind
to v3.23.0 so that clang compiles it properly.
2024-10-22 11:45:58 +01:00
Edward Thomson
13a326f4c1 ci: build and test with system http-parser 2024-10-22 11:45:58 +01:00
Edward Thomson
12eecf0abc ci: update to (mostly) latest images
Update to the latest CI images, except macOS - where there's a memory
leak in macos-14.
2024-09-29 23:32:19 +01:00
Edward Thomson
41f6f72910 iOS Updates
Some minor refactoring for iOS:

- Roll back clar changes; these should be a bit more measured, and occur
  in clar upstream.
- Move iOS to nightly builds
2024-09-26 16:59:53 +02:00
Kyle
841164ec39 Fix regcomp_l compile issue 2024-09-05 00:07:31 +08:00
Kyle
06a9dc995a Add iOS CI support 2024-09-05 00:07:30 +08:00
Edward Thomson
fb1797de63 Merge remote-tracking branch 'origin/main' into libgit2-httpparser 2024-04-23 00:09:50 +01:00
Edward Thomson
64808a9a8e ci: fixes for fedora
Use fedora's valgrind instead of trying to build our own; omit false
positive leaks in getaddrinfo;
2024-04-23 00:07:48 +01:00
Edward Thomson
53978e6784 ci: reduce ASLR randomization for TSAN
Linux updated its ASLR randomization in a way that is incompatible with
TSAN. See https://github.com/google/sanitizers/issues/1716

Reducing the randomness for ASLR allows the sanitizers to cope.
2024-03-16 11:44:39 +00:00
Edward Thomson
1a3d6a8893 ci: allow opting out of push-options tests
The push-options online tests require push options support in the git
itself that's on the system. Allow callers with old git to opt out.
2024-02-29 21:30:09 +00:00
Edward Thomson
cc35d987b4 ci: drop debugging ls 2024-02-29 18:53:29 +00:00
Sergio Correia
00eb347068 ci: add fedora container and build
So that we can test a build with llhttp instead of http-parser.

Co-authored-by: Stephen Gallagher <sgallagh@redhat.com>
Signed-off-by: Sergio Correia <scorreia@redhat.com>
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2024-02-07 17:00:49 -05:00
Edward Thomson
85279f06aa ci: update push options tests
Keep the push options tests more constrained to our CI environment;
writing files within the test sandbox instead of outside of it. Provide
the path to the output file in the test data. In addition, add the
repository to the test resources instead of recreating the hooks every
time.
2024-02-06 20:40:38 +00:00
Edward Thomson
b4263c2303 Merge remote-tracking branch 'origin/main' into push-options 2024-02-06 20:38:55 +00:00
Edward Thomson
d15be592db ci: move docker container creation to an action 2024-01-10 01:45:15 +00:00
Edward Thomson
0589ba6ccc ci: use newest libssh2 in bionic builds 2024-01-10 01:44:33 +00:00
Edward Thomson
383e5ed581 ci: use ecdsa keys for ssh
Using modern rsa (sha2-256 or sha2-512) with libssh2 is complicated and
depends on numerous factors for support. Just use ecdsa, which is
supported by both libssh2 v1.11.0 and modern OpenSSH (which we use for
our server in CI).
2023-12-21 20:46:47 +00:00
Edward Thomson
4da4bea79f ci: add an Ubuntu Noble dockerfile 2023-12-21 20:46:47 +00:00
Edward Thomson
edeec76a29 ci: update all images to use libssh2 v1.11.0 2023-12-21 20:46:47 +00:00
Edward Thomson
05a8d8d7be ci: show PATH in build script 2023-12-19 11:27:17 +00:00
Edward Thomson
c529b2c753 ci: allow users to opt-in only to certain tests
Previously, users could skip certain tests when running the CI script
(`SKIP_ONLINE_TESTS=1`). Provide a mechanism for users to opt-in to
only certain tests (`SKIP_TESTS=1 SKIP_ONLINE_TESTS=0`).
2023-12-18 09:54:40 +00:00
Edward Thomson
e002004686 ci: use Ninja on macOS 2023-12-08 16:22:44 +00:00
Edward Thomson
e8ed8dae62 ci: install fewer brew dependencies on macOS
GitHub Actions has borked their homebrew setup by first `brew
installing` things into `/usr/local` _and then_ putting their
own things in their place (eg `python`).

This breaks Homebrew, since it thinks it has `python` installed, but
it's actually something else.

Try to avoid using things that are in this bad state.

https://github.com/orgs/community/discussions/78266
2023-12-08 16:11:16 +00:00
Edward Thomson
3eb7ff2bf9 ci: specify full path to certificate/key
This helped when troubleshooting issues running the `ci/test.sh` script
locally.
2023-08-30 20:46:23 +01:00
Edward Thomson
019cf6c24f ssh: honor core.sshcommand
Callers can specify the ssh command to invoke using `core.sshcommand` or
the `GIT_SSH` environment variable. This is useful for specifying
alternate configuration, and is particularly useful for our testing
environment.
2023-08-30 20:46:23 +01:00
Edward Thomson
1fc9cd5292 ci: retry (more) flaky online tests 2023-08-23 13:50:33 +01:00
Edward Thomson
2a99bc7b07 ci: retry flaky online tests 2023-08-23 11:00:25 +01:00
Edward Thomson
fad9042897 streams: sockets are non-blocking and can timeout
Make socket I/O non-blocking and add optional timeouts.

Users may now set `GIT_OPT_SET_SERVER_CONNECT_TIMEOUT` to set a shorter
connection timeout. (The connect timeout cannot be longer than the
operating system default.) Users may also now configure the socket read
and write timeouts with `GIT_OPT_SET_SERVER_TIMEOUT`.

By default, connects still timeout based on the operating system
defaults (typically 75 seconds) and socket read and writes block.

Add a test against our custom testing git server that ensures that we
can timeout reads against a slow server.
2023-05-13 16:42:04 +01:00
Edward Thomson
933b04c219 ci: update to poxygit v0.6.0
v0.6.0 of poxygit add support for throttling connections to test
timeouts and low-bandwidth situations.
2023-05-13 16:42:04 +01:00
Edward Thomson
80742e159c Merge pull request #6456 from libgit2/ethomson/sha256_experimental
SHA256: more SHA256 support
2023-02-14 17:01:23 +00:00
Edward Thomson
e3cd859150 ci: build our own git on xenial
The git included with xenial is ancient, and lacks sha256 support.
2023-02-13 10:27:13 +00:00
Edward Thomson
0006ff6335 clone: support sha256 2023-02-12 22:02:00 +00:00
Edward Thomson
b857122f16 ci: convert PATH correctly to Cygwin format on Windows
We provide `BUILD_PATH` to our build script; provide it and mutate
`PATH` when running our tests as well.

We were previously using `cygpath` to try to convert a _list_ of Windows
paths into cygwin / Unix style `PATH` format. This does not work -- it
treats the path list as a single path (with semicolons -- understandably
as those are allowed characters in a Windows path).

For example, `C:\One;C:\Two;C:\Three` is converted to
`/c/one;c:/two;c:/three`.

Add a new function to convert path lists, so that paths are split by
semicolon and fed to `cygpath` independently, then re-joined with a
colon. This means that our example `C:\One;C:\Two;C:\Three` is correctly
converted to `/c/one:/c/two:/c/three`.
2023-02-09 12:10:40 +00:00
Edward Thomson
a7bc32edd5 ci: limit test runner to build path
We provide `BUILD_PATH` to our build script; provide it and mutate
`PATH` when running our tests as well.
2023-02-09 12:10:40 +00:00
Edward Thomson
d1411ed856 ci: compile against libssh2 on windows 2023-02-09 12:10:40 +00:00
Edward Thomson
5288aa301c ci: use latest ci-dependencies release for mingw 2023-02-09 12:10:40 +00:00
Edward Thomson
ea4ce92aea ci: isolate the home directory for test execution
libgit2 can now isolate its home directory, and our test runner (by
default) isolates the home directory. In our CI environment, we want to
set up some pieces (like ssh configuration) in a fake homedir. Continue
to do so and propagate that to clar.
2023-02-09 12:10:40 +00:00
bansheerubber
c45d1c6e88 push: implement ci tests
We found that the best way to test push options was to receive them via a git hooks script, and output them to a location that the CI tests could read to check and see if the push options were interpreted by git correctly.

Co-Authored-By: pireads <pireads@gmail.com>
Co-Authored-By: lotdeef <lcfisch2@asu.edu>
Co-Authored-By: PSI497 <497.psi.497@gmail.com>
2022-11-30 21:12:53 +01:00
Carlos Martín Nieto
c29651fe8b tests: append the github.com ssh keys so we have access during tests
Currently just the one test needs it.

The ssh-rsa makes sure we're asking for the cipher we find in `known_hosts` as
that won't be the one selected by default. This will be relevant in later changes.
2022-11-04 10:33:37 +01:00
Edward Thomson
cf326948b1 clone: test for cloning a repo with namespace scope
Test that we can successfully clone a repository that is namespace
scoped on the remote and does not advertise a HEAD. To do this, we must
specify the branch to checkout.
2022-09-19 05:07:16 -04:00
Edward Thomson
9d9a90ad3d clone: test bare clone namespaced repo with no HEAD
Test that we can successfully clone a repository that is namespace
scoped to a bare repository locally. We need not specify a checkout
branch in this case (obviously, since we do not check anything out in a
bare clone).
2022-09-19 05:07:16 -04:00
Edward Thomson
ebb0830c65 ci: clean up daemon processes on exit
We previously (correctly) cleaned up the git daemon and SSH server, but
failed to clean up our bespoke HTTP server and HTTP proxies. Capture
their PIDs on process creation and kill them when we shut down.
2022-09-16 10:46:18 -04:00
Edward Thomson
5afc146a6f ci: update dockerfiles for mbedTLS new url
Update the new URL for mbedTLS.
2022-07-06 13:10:33 -04:00
Edward Thomson
06b32a3f74 ci: move centos8 to centos stream
CentOS 8 is no longer supported; use CentOS stream.
2022-04-20 14:45:52 -04:00
Edward Thomson
926efbd296 ci: use the runner's uid/gid
Use the runner's uid/gid for the containers for sanity when sharing
files across volumes.
2022-04-20 14:45:52 -04:00
Edward Thomson
2ee753a295 ci: some debugging output for containers 2022-04-19 11:55:49 -04:00
Edward Thomson
4c6eab99a7 ci: run benchmark tests nightly 2022-02-27 23:44:19 -05:00
Edward Thomson
e48bb3b708 ci: allow for build-time (cmake --build) options
Allow for options in the `cmake --build` phase, so that callers can
specify (eg) the config type.
2022-02-27 23:44:19 -05:00