From 63b3fb2a970fb5527544cac0215e0ecc48ee87e3 Mon Sep 17 00:00:00 2001 From: Edoardo Zoni Date: Mon, 18 Nov 2024 19:18:08 -0800 Subject: [PATCH] Debugging: include preliminary job from separate file --- .azure-pipelines.yml | 1 + .github/workflows/clang_sanitizers.yml | 38 +------------------------ .github/workflows/scripts/check_diff.sh | 5 +++- .github/workflows/skip_checks.yml | 19 +++++++++++++ .pre-commit-config.yaml | 2 +- 5 files changed, 26 insertions(+), 39 deletions(-) create mode 100644 .github/workflows/skip_checks.yml diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 72daa035fba..b3337a6840b 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -15,6 +15,7 @@ pr: - Docs - .github/workflows/** - .azure-pipelines.yml + - .pre-commit-config.yaml jobs: - job: diff --git a/.github/workflows/clang_sanitizers.yml b/.github/workflows/clang_sanitizers.yml index a5610fcfb94..f5300a6601d 100644 --- a/.github/workflows/clang_sanitizers.yml +++ b/.github/workflows/clang_sanitizers.yml @@ -11,24 +11,8 @@ concurrency: cancel-in-progress: true jobs: - skip_checks: - name: Skip checks? - runs-on: macos-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Run PR analysis script - run: | - .github/workflows/scripts/check_diff.sh \ - ${{ github.event.pull_request.head.ref }} \ - ${{ github.event.pull_request.base.ref }} \ - ${{ github.event.pull_request.head.repo.clone_url }} - outputs: - skip: ${{ env.SKIP_CHECKS }} - + uses: ./.github/workflows/skip_checks.yml build_UB_sanitizer: name: Clang UB sanitizer runs-on: ubuntu-22.04 @@ -58,11 +42,9 @@ jobs: export CCACHE_COMPRESSLEVEL=10 export CCACHE_MAXSIZE=100M ccache -z - export CXX=$(which clang++-17) export CC=$(which clang-17) export CXXFLAGS="-fsanitize=undefined,address,pointer-compare -fno-sanitize-recover=all" - cmake -S . -B build \ -GNinja \ -DCMAKE_VERBOSE_MAKEFILE=ON \ @@ -75,27 +57,20 @@ jobs: -DWarpX_PRECISION=SINGLE \ -DWarpX_PARTICLE_PRECISION=SINGLE cmake --build build -j 4 - ccache -s du -hs ~/.cache/ccache - - name: run with UB sanitizer run: | - # We need these two lines because these tests run inside a docker container export OMPI_ALLOW_RUN_AS_ROOT=1 export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 - export OMP_NUM_THREADS=2 - #MPI implementations often leak memory export "ASAN_OPTIONS=detect_leaks=0" - mpirun -n 2 ./build/bin/warpx.rz Examples/Physics_applications/laser_acceleration/inputs_base_rz mpirun -n 2 ./build/bin/warpx.1d Examples/Physics_applications/laser_acceleration/inputs_base_1d mpirun -n 2 ./build/bin/warpx.2d Examples/Physics_applications/laser_acceleration/inputs_base_2d mpirun -n 2 ./build/bin/warpx.3d Examples/Physics_applications/laser_acceleration/inputs_base_3d - build_thread_sanitizer: name: Clang thread sanitizer runs-on: ubuntu-22.04 @@ -125,11 +100,9 @@ jobs: export CCACHE_COMPRESSLEVEL=10 export CCACHE_MAXSIZE=100M ccache -z - export CXX=$(which clang++-17) export CC=$(which clang-17) export CXXFLAGS="-fsanitize=thread" - cmake -S . -B build \ -GNinja \ -DCMAKE_VERBOSE_MAKEFILE=ON \ @@ -143,7 +116,6 @@ jobs: -DWarpX_PRECISION=DOUBLE \ -DWarpX_PARTICLE_PRECISION=DOUBLE cmake --build build -j 4 - cmake -S . -B build_EB \ -GNinja \ -DCMAKE_VERBOSE_MAKEFILE=ON \ @@ -157,30 +129,22 @@ jobs: -DWarpX_PRECISION=DOUBLE \ -DWarpX_PARTICLE_PRECISION=DOUBLE cmake --build build_EB -j 4 - ccache -s du -hs ~/.cache/ccache - - name: run with thread sanitizer run: | export PMIX_MCA_gds=hash export TSAN_OPTIONS='ignore_noninstrumented_modules=1' export ARCHER_OPTIONS="verbose=1" - # We need these two lines because these tests run inside a docker container export OMPI_ALLOW_RUN_AS_ROOT=1 export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 - export OMP_NUM_THREADS=2 - mpirun -n 2 ./build/bin/warpx.rz Examples/Physics_applications/laser_acceleration/inputs_base_rz warpx.serialize_initial_conditions = 0 mpirun -n 2 ./build/bin/warpx.1d Examples/Physics_applications/laser_acceleration/inputs_base_1d warpx.serialize_initial_conditions = 0 mpirun -n 2 ./build/bin/warpx.2d Examples/Physics_applications/laser_acceleration/inputs_base_2d warpx.serialize_initial_conditions = 0 mpirun -n 2 ./build/bin/warpx.3d Examples/Physics_applications/laser_acceleration/inputs_base_3d warpx.serialize_initial_conditions = 0 - git clone https://github.com/ECP-WarpX/warpx-data ../warpx-data cd Examples/Tests/embedded_circle - ulimit -c unlimited - mpirun -n 2 ../../../build_EB/bin/warpx.2d inputs_test_2d_embedded_circle warpx.serialize_initial_conditions = 0 diff --git a/.github/workflows/scripts/check_diff.sh b/.github/workflows/scripts/check_diff.sh index 3099bf2b4fe..64a34703020 100755 --- a/.github/workflows/scripts/check_diff.sh +++ b/.github/workflows/scripts/check_diff.sh @@ -10,7 +10,7 @@ base_ref=${2} clone_url=${3} # Set paths to ignore (FIXME update this before merging) -paths_ignore="^(Docs|\.github)/|\.azure-pipelines\.yml$" +paths_ignore="^(Docs|\.github)/|\.azure-pipelines\.yml$|\.pre-commit-config\.yaml$" # Add forked repository as remote git remote add fork ${clone_url} @@ -23,13 +23,16 @@ git fetch fork ${head_ref} # Save output of git diff to inspect files changed git diff --name-only --diff-filter=ACMRTUXB origin/${base_ref}..fork/${head_ref} > check_diff.txt +cat check_diff.txt # Set skip variable after inspecting files changed skip=$(grep -v -E "${paths_ignore}" check_diff.txt) # Set an environment variable based on the output if [ -z "$skip" ]; then + echo "skip=true" echo "SKIP_CHECKS=true" >> $GITHUB_ENV else + echo "skip=false" echo "SKIP_CHECKS=false" >> $GITHUB_ENV fi diff --git a/.github/workflows/skip_checks.yml b/.github/workflows/skip_checks.yml new file mode 100644 index 00000000000..5d9d7747eaa --- /dev/null +++ b/.github/workflows/skip_checks.yml @@ -0,0 +1,19 @@ +name: Skip checks +on: + workflow_call: +jobs: + skip_checks: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Run PR analysis script + run: | + .github/workflows/scripts/check_diff.sh \ + ${{ github.event.pull_request.head.ref }} \ + ${{ github.event.pull_request.base.ref }} \ + ${{ github.event.pull_request.head.repo.clone_url }} + outputs: + skip: ${{ env.SKIP_CHECKS }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d9a0a8bfdea..1383623825c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,7 +27,7 @@ repos: - id: mixed-line-ending - id: check-json - id: check-toml - - id: check-yaml + #- id: check-yaml - id: check-added-large-files args: ['--maxkb=40'] - id: requirements-txt-fixer