tools.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. name: tools
  2. on:
  3. push:
  4. branches:
  5. - tools
  6. jobs:
  7. iwyu:
  8. timeout-minutes: 60
  9. env:
  10. IWYU: "0.22"
  11. LLVM: "18"
  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/focal/ llvm-toolchain-focal-$LLVM main"
  21. sudo apt update
  22. sudo apt remove -y "llvm*"
  23. sudo apt remove -y "libclang-dev*"
  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. -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="include-what-you-use;-Xiwyu;--mapping_file=${GITHUB_WORKSPACE}/entt.imp;-Xiwyu;--no_fwd_decls;-Xiwyu;--verbose=1" \
  53. ..
  54. make -j4
  55. clang-tidy:
  56. timeout-minutes: 60
  57. runs-on: ubuntu-latest
  58. continue-on-error: true
  59. steps:
  60. - uses: actions/checkout@v4
  61. - name: Compile tests
  62. working-directory: build
  63. env:
  64. CXX: clang++
  65. run: |
  66. cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON -DENTT_USE_CLANG_TIDY=ON ..
  67. make -j4
  68. - name: Run tests
  69. working-directory: build
  70. env:
  71. CTEST_OUTPUT_ON_FAILURE: 1
  72. run: ctest -C Debug -j4