From 0d3090a316940253a968ea36943d61e151cff917 Mon Sep 17 00:00:00 2001 From: lucafedeli88 Date: Mon, 4 Mar 2024 17:09:49 +0100 Subject: [PATCH] split clang-tidy checks to improve performances --- .../{clang_tidy.yml => clang_tidy_1D.yml} | 2 +- .github/workflows/clang_tidy_2D.yml | 73 +++++++++++++++++++ .github/workflows/clang_tidy_3D.yml | 73 +++++++++++++++++++ .github/workflows/clang_tidy_RZ.yml | 73 +++++++++++++++++++ 4 files changed, 220 insertions(+), 1 deletion(-) rename .github/workflows/{clang_tidy.yml => clang_tidy_1D.yml} (98%) create mode 100644 .github/workflows/clang_tidy_2D.yml create mode 100644 .github/workflows/clang_tidy_3D.yml create mode 100644 .github/workflows/clang_tidy_RZ.yml diff --git a/.github/workflows/clang_tidy.yml b/.github/workflows/clang_tidy_1D.yml similarity index 98% rename from .github/workflows/clang_tidy.yml rename to .github/workflows/clang_tidy_1D.yml index c166941f6e2..50f63260275 100644 --- a/.github/workflows/clang_tidy.yml +++ b/.github/workflows/clang_tidy_1D.yml @@ -37,7 +37,7 @@ jobs: cmake -S . -B build_clang_tidy \ -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DWarpX_DIMS="1;2;RZ;3" \ + -DWarpX_DIMS="1" \ -DWarpX_MPI=ON \ -DWarpX_COMPUTE=OMP \ -DWarpX_PSATD=ON \ diff --git a/.github/workflows/clang_tidy_2D.yml b/.github/workflows/clang_tidy_2D.yml new file mode 100644 index 00000000000..459092e2e75 --- /dev/null +++ b/.github/workflows/clang_tidy_2D.yml @@ -0,0 +1,73 @@ +name: 🧹 clang-tidy + +on: [push, pull_request] + +concurrency: + group: ${{ github.ref }}-${{ github.head_ref }}-clangtidy + cancel-in-progress: true + +jobs: + run_clang_tidy: + name: clang-tidy + runs-on: ubuntu-22.04 + if: github.event.pull_request.draft == false + steps: + - uses: actions/checkout@v4 + - name: install dependencies + run: | + .github/workflows/dependencies/clang15.sh + - name: set up cache + uses: actions/cache@v4 + with: + path: ~/.cache/ccache + key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} + restore-keys: | + ccache-${{ github.workflow }}-${{ github.job }}-git- + - name: build WarpX & run clang-tidy + run: | + export CCACHE_COMPRESS=1 + export CCACHE_COMPRESSLEVEL=10 + export CCACHE_MAXSIZE=300M + export CCACHE_EXTRAFILES=${{ github.workspace }}/.clang-tidy + export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt + ccache -z + + export CXX=$(which clang++-15) + export CC=$(which clang-15) + + cmake -S . -B build_clang_tidy \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DWarpX_DIMS="2" \ + -DWarpX_MPI=ON \ + -DWarpX_COMPUTE=OMP \ + -DWarpX_PSATD=ON \ + -DWarpX_QED=ON \ + -DWarpX_QED_TABLE_GEN=ON \ + -DWarpX_OPENPMD=ON \ + -DWarpX_PRECISION=SINGLE \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + + cmake --build build_clang_tidy -j 4 + + ${{github.workspace}}/.github/workflows/source/makeMakefileForClangTidy.py --input ${{github.workspace}}/ccache.log.txt + make -j4 --keep-going -f clang-tidy-ccache-misses.mak \ + CLANG_TIDY=clang-tidy-15 \ + CLANG_TIDY_ARGS="--config-file=${{github.workspace}}/.clang-tidy --warnings-as-errors=*" + + ccache -s + du -hs ~/.cache/ccache + + save_pr_number: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - name: Save PR number + env: + PR_NUMBER: ${{ github.event.number }} + run: | + echo $PR_NUMBER > pr_number.txt + - uses: actions/upload-artifact@v4 + with: + name: pr_number + path: pr_number.txt + retention-days: 1 diff --git a/.github/workflows/clang_tidy_3D.yml b/.github/workflows/clang_tidy_3D.yml new file mode 100644 index 00000000000..d0fb9ab62dd --- /dev/null +++ b/.github/workflows/clang_tidy_3D.yml @@ -0,0 +1,73 @@ +name: 🧹 clang-tidy + +on: [push, pull_request] + +concurrency: + group: ${{ github.ref }}-${{ github.head_ref }}-clangtidy + cancel-in-progress: true + +jobs: + run_clang_tidy: + name: clang-tidy + runs-on: ubuntu-22.04 + if: github.event.pull_request.draft == false + steps: + - uses: actions/checkout@v4 + - name: install dependencies + run: | + .github/workflows/dependencies/clang15.sh + - name: set up cache + uses: actions/cache@v4 + with: + path: ~/.cache/ccache + key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} + restore-keys: | + ccache-${{ github.workflow }}-${{ github.job }}-git- + - name: build WarpX & run clang-tidy + run: | + export CCACHE_COMPRESS=1 + export CCACHE_COMPRESSLEVEL=10 + export CCACHE_MAXSIZE=300M + export CCACHE_EXTRAFILES=${{ github.workspace }}/.clang-tidy + export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt + ccache -z + + export CXX=$(which clang++-15) + export CC=$(which clang-15) + + cmake -S . -B build_clang_tidy \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DWarpX_DIMS="3" \ + -DWarpX_MPI=ON \ + -DWarpX_COMPUTE=OMP \ + -DWarpX_PSATD=ON \ + -DWarpX_QED=ON \ + -DWarpX_QED_TABLE_GEN=ON \ + -DWarpX_OPENPMD=ON \ + -DWarpX_PRECISION=SINGLE \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + + cmake --build build_clang_tidy -j 4 + + ${{github.workspace}}/.github/workflows/source/makeMakefileForClangTidy.py --input ${{github.workspace}}/ccache.log.txt + make -j4 --keep-going -f clang-tidy-ccache-misses.mak \ + CLANG_TIDY=clang-tidy-15 \ + CLANG_TIDY_ARGS="--config-file=${{github.workspace}}/.clang-tidy --warnings-as-errors=*" + + ccache -s + du -hs ~/.cache/ccache + + save_pr_number: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - name: Save PR number + env: + PR_NUMBER: ${{ github.event.number }} + run: | + echo $PR_NUMBER > pr_number.txt + - uses: actions/upload-artifact@v4 + with: + name: pr_number + path: pr_number.txt + retention-days: 1 diff --git a/.github/workflows/clang_tidy_RZ.yml b/.github/workflows/clang_tidy_RZ.yml new file mode 100644 index 00000000000..e97c6a15ca4 --- /dev/null +++ b/.github/workflows/clang_tidy_RZ.yml @@ -0,0 +1,73 @@ +name: 🧹 clang-tidy + +on: [push, pull_request] + +concurrency: + group: ${{ github.ref }}-${{ github.head_ref }}-clangtidy + cancel-in-progress: true + +jobs: + run_clang_tidy: + name: clang-tidy + runs-on: ubuntu-22.04 + if: github.event.pull_request.draft == false + steps: + - uses: actions/checkout@v4 + - name: install dependencies + run: | + .github/workflows/dependencies/clang15.sh + - name: set up cache + uses: actions/cache@v4 + with: + path: ~/.cache/ccache + key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} + restore-keys: | + ccache-${{ github.workflow }}-${{ github.job }}-git- + - name: build WarpX & run clang-tidy + run: | + export CCACHE_COMPRESS=1 + export CCACHE_COMPRESSLEVEL=10 + export CCACHE_MAXSIZE=300M + export CCACHE_EXTRAFILES=${{ github.workspace }}/.clang-tidy + export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt + ccache -z + + export CXX=$(which clang++-15) + export CC=$(which clang-15) + + cmake -S . -B build_clang_tidy \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DWarpX_DIMS="RZ" \ + -DWarpX_MPI=ON \ + -DWarpX_COMPUTE=OMP \ + -DWarpX_PSATD=ON \ + -DWarpX_QED=ON \ + -DWarpX_QED_TABLE_GEN=ON \ + -DWarpX_OPENPMD=ON \ + -DWarpX_PRECISION=SINGLE \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + + cmake --build build_clang_tidy -j 4 + + ${{github.workspace}}/.github/workflows/source/makeMakefileForClangTidy.py --input ${{github.workspace}}/ccache.log.txt + make -j4 --keep-going -f clang-tidy-ccache-misses.mak \ + CLANG_TIDY=clang-tidy-15 \ + CLANG_TIDY_ARGS="--config-file=${{github.workspace}}/.clang-tidy --warnings-as-errors=*" + + ccache -s + du -hs ~/.cache/ccache + + save_pr_number: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - name: Save PR number + env: + PR_NUMBER: ${{ github.event.number }} + run: | + echo $PR_NUMBER > pr_number.txt + - uses: actions/upload-artifact@v4 + with: + name: pr_number + path: pr_number.txt + retention-days: 1