Commit Graph

237 Commits

Author SHA1 Message Date
Łukasz Langa
a44b3257ba Also update nightlies 2025-12-11 12:29:56 +01:00
Łukasz Langa
c81b74fe76 Use macos-14 for experimental features, too 2025-12-11 12:28:44 +01:00
Łukasz Langa
97d17cced3 Switch to macos-14 as macos-13 runners are now retired 2025-12-11 12:28:30 +01:00
Edward Thomson
2599c96d25 ci: run administrative benchmarks 2025-03-02 20:46:38 +00:00
Edward Thomson
1b3598c0c6 ci: update download-artifact version 2025-02-07 20:59:56 +00:00
Edward Thomson
02435d7647 ci: benchmark workflow improvements
Publish the site as an artifact during workflow_dispatch events.
2025-01-13 21:23:04 +00:00
Edward Thomson
99ab224882 ci: produce flamegraphs during benchmark run 2025-01-13 21:23:04 +00:00
Edward Thomson
89f0dab789 ci: build benchmarks as release with debugging info
Our benchmarks need debugging information for (eg) profiling.
2025-01-13 21:23:04 +00:00
Edward Thomson
6fedfd3237 Add benchmark for large-ish (250mb) index-pack 2025-01-11 21:58:19 +00:00
Edward Thomson
9efdbe3834 cmake: standardize leak check option
The `GIT_WIN32_LEAKCHECK` option is a debugging option, so it should be
`GIT_DEBUG_LEAKCHECK_WIN32`
2025-01-02 12:36:11 +00:00
Edward Thomson
8bbd2f406e cmake: use DEBUG_LEAK_CHECKER as option
The `USE_` prefix for inputs denotes a backend; the `DEBUG_` prefix
denotes a debugging option. Make `DEBUG_LEAK_CHECKER` the name of the
leak checking option.
2025-01-02 12:36:11 +00:00
Edward Thomson
e447de936d ci: only build docs on main branch pushes
Don't build docs on pushes to maint branches; those docs should only be
built _on release_. In addition, be safer about not creating an existing
branch from a tracking branch.
2024-12-28 10:59:12 +00:00
Edward Thomson
5576e8f6a9 docs: add "benchmarks" section to changelog 2024-12-16 10:56:31 +00:00
Edward Thomson
03e0bf3ba2 Documentation generation: verbose generation 2024-12-10 23:41:15 +00:00
Edward Thomson
1da67ef096 Allow documentation (re)generation in CI build
Provide a mechanism to allow the documentation to be force rebuilt.
2024-12-09 12:39:21 +00:00
Edward Thomson
b8ad17faf5 Merge pull request #6949 from libgit2/ethomson/docs
Improve documentation and validate during CI
2024-11-26 22:14:51 +00:00
Edward Thomson
8e516778ce Add CI step to validate documentation changes
Run our documentation generator in "validate only" mode to ensure that
new changes coming in to the repository have documented our changes
fully.
2024-11-26 21:22:10 +00:00
Edward Thomson
9321800612 Update documentation generation workflow
Ensure that workflows where the main branch exists (eg, anything except
PR workflows) don't try to recreate the main branch. Add a concurrency
token so that we don't have conflicts generating documentation.
2024-11-26 20:00:15 +00:00
Edward Thomson
89cc5ef8e8 Include documentation generator
libgit2 has a new documentation generator that generates API schema from
our headers, then produces reference documentation that is included into
the website directly.
2024-11-25 23:00:07 +00:00
Edward Thomson
73ac58fb72 ci: port latest fixes to nightlies
We've made some changes to our CI builds; move them to nightlies.
2024-10-23 13:42:10 +01:00
Edward Thomson
13a326f4c1 ci: build and test with system http-parser 2024-10-22 11:45:58 +01:00
Edward Thomson
533ec839bd Merge pull request #6920 from libgit2/ethomson/blame_benchmarks
Add benchmarks for blame
2024-10-21 22:22:41 +01:00
Edward Thomson
d4222f8321 ci: don't run blame on torvalds/linux (yet)
blame on torvalds/linux is too punishing for our current implementation;
don't run it (yet).
2024-10-21 16:28:35 +01:00
Edward Thomson
df3d8a6799 ci: allow inputs to benchmark 2024-10-21 15:15:41 +01:00
Edward Thomson
90e659d0b9 ci: only publish benchmarks nightly
Allow for workflow_dispatch jobs to run, but don't publish their test
results; this is useful for testing workflows themselves.
2024-10-21 15:03:14 +01:00
Edward Thomson
42bd9df2b4 benchmarks: pre-clone git and linux in ci 2024-10-21 15:03:14 +01:00
Edward Thomson
0e08b58aed ci: don't run Windows SHA256 gitdaemon tests 2024-10-21 14:46:19 +01:00
Edward Thomson
7e3535cf4b Merge pull request #6906 from marcind-dot/add-OpenSSL-FIPS-cmake-flag 2024-10-21 10:19:51 +01:00
Edward Thomson
cd9f463294 Merge pull request #6914 from libgit2/ethomson/cmake
cmake-standard c standards
2024-10-20 23:17:32 +01:00
Edward Thomson
500796a358 ci: don't run Windows SHA256 gitdaemon tests
The Windows SHA256 gitdaemon seems to crash; remove from CI while we
troubleshoot.
2024-10-20 09:49:45 +01:00
Edward Thomson
821d41a907 ci: set CMAKE_C_EXTENSIONS for msan builds
The memory sanitizer builds require c90 with extension _on_; enable
that.
2024-10-19 13:19:12 +01:00
Edward Thomson
4768d8a8ad ci: don't use extensions on msan build
The memory sanitizer builds are special snowflakes; let them be c90 with
extensions.
2024-10-18 22:26:57 +01:00
Edward Thomson
8cf4cc2a9f ci: test FIPS on Linux only 2024-10-18 10:32:22 +01:00
Marcin Dabrowski
7f7dfe71cc Add OpenSSL-FIPS CMake flag
Usage of the deprecated 'SHA256_*' OpenSSL API in a FIPS compliant
environment results in OpenSSL's assertion failure with the following
description:
"OpenSSL internal error, assertion failed: Low level API call to
 digest SHA256 forbidden in FIPS mode!"

This commit adds a possibility to use the OpenSSL's 'EVP_MD*' API instead
of the deprecated 'SHA256_*' API, by extending the optional CMake flag
'USE_SHA256' with the new option called 'OpenSSL-FIPS'.
The new option is used to choose a hashing backend used by libgit2 to
calculate SHA256 hashes, in a similar way that currently existing
options like 'OpenSSL', 'OpenSSL-Dynamic', 'mbedTLS' etc do.

'OpenSSL-FIPS' is a fully opt-in option which is purposely not
interfering with the existing options, because, after running some
benchmarks, it's been discovered that using the 'EVP_MD*' API causes
hashing to be a bit slower in comparison to using the deprecated
'SHA256_*' API.

Another change introduced in this commit is the enhancement of the
Nightly workflow (nightly.yml) which will cause libgit2 to be
automatically built with '-DUSE_SHA256="OpenSSL-FIPS"' CMake flag,
on Linux, macOS and Windows.
2024-10-09 14:53:44 +02:00
Edward Thomson
3b500a92ad ci: update to windows-2022 for sha256 builds 2024-10-02 13:07:57 +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
d50b501e7e ci: update to download-artifact v4 2024-09-29 23:30:57 +01:00
Edward Thomson
ffdacef6ff ci: update codeql nighly build 2024-09-27 12:22:49 +02: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
10c424ffc3 Skip all test on iOS temporarily 2024-09-06 00:42:44 +08:00
Kyle
841164ec39 Fix regcomp_l compile issue 2024-09-05 00:07:31 +08:00
Kyle
07bb47ca5c Fix CI toolchain file location issue 2024-09-05 00:07:31 +08:00
Kyle
60cdd25709 Align the iOS CI’s host OS version to fix the permission 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
782e29c906 ci: only publish benchmarks from libgit2/libgit2
Benchmark runs are trying to be pushed from repos that _aren't_
libgit2/libgit2. Try again with the syntax.
2024-08-22 13:10:29 +01:00
Edward Thomson
fb1797de63 Merge remote-tracking branch 'origin/main' into libgit2-httpparser 2024-04-23 00:09:50 +01:00
Edward Thomson
15a8d8763e ci: make fedora a nightly build 2024-04-23 00:09:20 +01:00
Edward Thomson
dd79fbb5ab ci: give all nightly builds a unique id
The new upload-artifact action fails on conflicting names; ensure that
we give each artifact a unique name (keyed off the id).
2024-03-26 20:56:07 +00:00
Edward Thomson
9b29a5d30d ci: update nightly workflows
Update the nightly and benchmark workflows to only run steps in
libgit2/libgit2 by default. Also update the benchmark workflow to use
the latest download-artifact version.
2024-03-20 09:26:32 +00:00
Edward Thomson
9288436e38 ci: split SHA256 builds out into their own workflow
Split the SHA256 builds into their own workflow; since they're
experimental (and have proven to be flaky) they shouldn't be used as
signal that there's a problem with a PR.
2024-03-19 07:01:01 +00:00