Closed JakeHillion closed 2 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 60.79%. Comparing base (
79dca16
) to head (375f3bd
). Report is 1 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
OI's build is challenging and has often been a problem for the Open Source community. It requires an extremely specific set of dependencies that are very hard to achieve on most systems. There are frequent breakages, like when updating to CentOS Stream 9, or when trying to update the CI's clang from clang-12 to clang-15 - OI requires the clang libraries to be version 15 but can't be compiled with it on the CI!
This changes provides a mostly working build environment with
nix
. This environment is pinned to a specific nixpkgs revision usingflake.lock
, and only updates when we explicitly tell it to.Summary of changes:
FIND_PACKAGE_ARGS
inFetchContent
, meaning we can use system packages. This is available on most up to date distros (3.30.2 is current).flake.nix
to be able to build OI. Adds instructions for building and developing OI usingnix
.Test plan:
This change requires less testing than previous build related changes because it deprecates most of the build types.
test-report.yml
as it must be merged due to the permissions it needs. Will follow up with testing after this is merged. See: https://github.com/dorny/test-reporter?tab=readme-ov-file#recommended-setup-for-public-repositoriesThe list of exclusions for GitHub Actions/nix testing is currently very long, I think 29% of the tests. This should be stable and reproducible though, and likely needs deep changes to OI to fix. That's why fixes are excluded from this PR. It's all to do with the forked drgn not being able to parse clang's newer DWARF output, and can't be fixed by rolling back as we required a relatively new libcxx.