1
0

analyzer.yml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. name: analyzer
  2. on:
  3. push:
  4. branches:
  5. - analyzer
  6. jobs:
  7. iwyu:
  8. timeout-minutes: 60
  9. env:
  10. IWYU: "0.24"
  11. LLVM: "20"
  12. runs-on: ubuntu-latest
  13. continue-on-error: true
  14. steps:
  15. - uses: actions/checkout@v4
  16. - name: Install llvm/clang
  17. # see: https://apt.llvm.org/
  18. run: |
  19. wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
  20. sudo add-apt-repository "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-$LLVM main"
  21. sudo apt update
  22. sudo apt remove -y "llvm*"
  23. sudo apt remove -y "libclang*"
  24. sudo apt remove -y "clang*"
  25. sudo apt install -y llvm-$LLVM-dev
  26. sudo apt install -y libclang-$LLVM-dev
  27. sudo apt install -y clang-$LLVM
  28. - name: Compile iwyu
  29. # see: https://github.com/include-what-you-use/include-what-you-use
  30. working-directory: build
  31. run: |
  32. git clone https://github.com/include-what-you-use/include-what-you-use.git --branch $IWYU --depth 1
  33. mkdir include-what-you-use/build
  34. cd include-what-you-use/build
  35. cmake -DCMAKE_C_COMPILER=clang-$LLVM \
  36. -DCMAKE_CXX_COMPILER=clang++-$LLVM \
  37. -DCMAKE_INSTALL_PREFIX=./ \
  38. ..
  39. make -j4
  40. bin/include-what-you-use --version
  41. - name: Compile tests
  42. working-directory: build
  43. run: |
  44. export PATH=$PATH:${GITHUB_WORKSPACE}/build/include-what-you-use/build/bin
  45. cmake -DCMAKE_C_COMPILER=clang-$LLVM \
  46. -DCMAKE_CXX_COMPILER=clang++-$LLVM \
  47. -DENTT_BUILD_TESTING=ON \
  48. -DENTT_BUILD_BENCHMARK=ON \
  49. -DENTT_BUILD_EXAMPLE=ON \
  50. -DENTT_BUILD_LIB=ON \
  51. -DENTT_BUILD_SNAPSHOT=ON \
  52. -DENTT_BUILD_TESTBED=ON \
  53. -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="include-what-you-use;-Xiwyu;--mapping_file=${GITHUB_WORKSPACE}/entt.imp;-Xiwyu;--no_fwd_decls;-Xiwyu;--verbose=1" \
  54. ..
  55. make -j4
  56. clang-tidy:
  57. timeout-minutes: 60
  58. runs-on: ubuntu-latest
  59. continue-on-error: true
  60. steps:
  61. - uses: actions/checkout@v4
  62. - name: Compile tests
  63. working-directory: build
  64. env:
  65. CXX: clang++
  66. run: |
  67. cmake -DENTT_BUILD_TESTING=ON \
  68. -DENTT_BUILD_BENCHMARK=ON \
  69. -DENTT_BUILD_EXAMPLE=ON \
  70. -DENTT_BUILD_LIB=ON \
  71. -DENTT_BUILD_SNAPSHOT=ON \
  72. -DENTT_BUILD_TESTBED=ON \
  73. -DENTT_USE_CLANG_TIDY=ON \
  74. ..
  75. make -j4