Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI improvements #14

Merged
merged 18 commits into from
Mar 4, 2024
Merged

CI improvements #14

merged 18 commits into from
Mar 4, 2024

Commits on Mar 4, 2024

  1. refactor: adapt to Wrapland subsurface change

    Now uses references instead of QPointer.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    1f80f9d View commit details
    Browse the repository at this point in the history
  2. ci: prepare to run clang-tidy

    Add infrastructure and a CI job to run the static analysis tool clang-tidy. For
    now we only enable two checks. The goal is to progressively enable more checks
    until we at least cover all the default checks.
    
    For now the ci job is stopping short of actually running clang-tidy though
    because the GitHub Actions runner consistently terminate likely due to oom.
    
    Locally clang-tidy can be run with the new Python script in tooling/analysis.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    aef5e03 View commit details
    Browse the repository at this point in the history
  3. fix: store event filters as raw pointers

    Instead of using QPointers, which is marked by clang-tidy.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    f8aaa97 View commit details
    Browse the repository at this point in the history
  4. fix: store implict grab without QPointer

    The QPointer is marked by clang-tidy.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    53b917d View commit details
    Browse the repository at this point in the history
  5. refactor: use smart pointer

    Instead of calling delete on a raw pointer.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    1c6f1ff View commit details
    Browse the repository at this point in the history
  6. refactor: remove Q_D macro

    Use the member directly instead.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    da0f032 View commit details
    Browse the repository at this point in the history
  7. refactor: replace Qt smart pointers with STL ones

    This also fixes a clang-tidy warning about delete-after-free.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    272fcc5 View commit details
    Browse the repository at this point in the history
  8. fix: store window thumbnail item fields without QPointers

    The QPointers are marked by clang-tidy as use-after-free.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    0387dbd View commit details
    Browse the repository at this point in the history
  9. fix: assert not dividing by zero

    This was marked by clang-tidy. For now we just assume that we have the
    precondition that these values can't be zero and assert on it.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    3dcf097 View commit details
    Browse the repository at this point in the history
  10. fix(plugin): store internal window handle without QPointer

    This was marked by clang-tidy.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    7a9bb23 View commit details
    Browse the repository at this point in the history
  11. fix(plugin): store expo layout without QPointer

    This was marked by clang-tidy.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    a622b2e View commit details
    Browse the repository at this point in the history
  12. test: get shadow as regular raw pointer

    The QPointer is not needed here. Fixes a clang-tidy warning.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    99aa4ab View commit details
    Browse the repository at this point in the history
  13. ci: create test build with GCC

    Instead of having a single clang/coverage build for all statid and dynamic
    analysis, adapt the CMake presets to have different presets for test builds
    with coverage using clang and gcc.
    
    We also directly switch the ci coverage build to the gcc preset. This allows to
    use gcc-only features in the coverage reporting.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    3b452ec View commit details
    Browse the repository at this point in the history
  14. ci: exclude throw branches when calculating coverage

    Without the exclusion nearly everything is marked as partial hit only. See
    also [1][2].
    
    [1] https://gcovr.com/en/5.0/faq.html#why-does-c-code-have-so-many-uncovered-branches
    [2] https://stackoverflow.com/q/42003783
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    78885ca View commit details
    Browse the repository at this point in the history
  15. ci: ignore gcov no working dir found error

    gcov executable is failing on finding Catch2 source, which is built via
    FetchContent. For now ignore the error. The coverage reporting seems to
    work anyway.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    fc797a2 View commit details
    Browse the repository at this point in the history
  16. ci: store coverage reports for standard retention period

    The default retention duration for artifacts is 90 days with GitHub Actions.
    These reports are rather small in size. We may just store them for this period
    as they might be useful sometimes when comparing them to Codecov results.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    aaa65fb View commit details
    Browse the repository at this point in the history
  17. build: bump Catch2 version

    Fetch the latest release.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    8466129 View commit details
    Browse the repository at this point in the history
  18. ci: use gcovr 7.2

    The most recent release works again. The regresssion from gcovr 6, and why
    gcovr 5 was used, has been fixed.
    romangg committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    68107aa View commit details
    Browse the repository at this point in the history