PeleLMeX-CI #25
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PeleLMeX-CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: [development] | |
pull_request: | |
branches: [development] | |
concurrency: | |
group: ${{github.ref}}-${{github.head_ref}}-ci | |
cancel-in-progress: true | |
jobs: | |
Formatting: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
- name: Check formatting | |
uses: DoozyX/[email protected] | |
with: | |
source: './Source ./Exec' | |
exclude: '.' | |
extensions: 'H,h,cpp' | |
clangFormatVersion: 16 | |
CPU-GNUmake: | |
needs: Formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup | |
working-directory: ./Exec/RegTests/FlameSheet | |
run: | | |
echo "NPROCS=$(nproc)" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESSLEVEL=1" >> $GITHUB_ENV | |
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV | |
echo "CCACHE_MAXSIZE=200M" >> $GITHUB_ENV | |
make COMP=gnu USE_MPI=FALSE DEBUG=TRUE TPL | |
make COMP=llvm USE_MPI=FALSE DEBUG=TRUE PRECISION=FLOAT TPL | |
- name: Install Ccache | |
run: | | |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz | |
tar xvf ccache-4.8-linux-x86_64.tar.xz | |
sudo cp -f ccache-4.8-linux-x86_64/ccache /usr/local/bin/ | |
- name: Set Up Ccache | |
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: FlameSheet debug make | |
working-directory: ./Exec/RegTests/FlameSheet | |
run: | | |
echo "::add-matcher::.github/problem-matchers/gcc.json" | |
set -eu -o pipefail | |
ccache -z | |
make -j ${{env.NPROCS}} DIM=2 KEEP_BUILDINFO_CPP=TRUE USE_CCACHE=TRUE COMP=gnu USE_MPI=FALSE DEBUG=TRUE 2>&1 | tee -a build-output.txt | |
- name: FlameSheet ccache report | |
working-directory: ./Exec/RegTests/FlameSheet | |
run: | | |
ccache -s | |
du -hs ~/.cache/ccache | |
- name: FlameSheet debug test | |
working-directory: ./Exec/RegTests/FlameSheet | |
run: ./PeleLMeX2d.gnu.DEBUG.ex flamesheet-drm19-2d.inp amr.max_step=1 amr.plot_int=-1 amr.check_int=-1 | |
- name: FlameSheet debug report | |
working-directory: ./Exec/RegTests/FlameSheet | |
run: | | |
egrep "warning:|error:" build-output.txt \ | |
| egrep -v "Submodules/amrex|Submodules/sundials|Submodules/AMReX-Hydro|GNUmakefile|ThirdParty" \ | |
| egrep -v "ld: warning:" | sort | uniq \ | |
| awk 'BEGIN{i=0}{print $0}{i++}END{print "Warnings: "i}' > warnings.txt | |
cat warnings.txt | |
export return=$(tail -n 1 warnings.txt | awk '{print $2}') | |
exit ${return} | |
CPU-CMake: | |
needs: Formatting | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
build_type: [Release, Debug] | |
enable_eb: [EB-OFF, EB-ON] | |
include: | |
- os: macos-latest | |
install_deps: brew install mpich automake ccache | |
comp: llvm | |
procs: $(sysctl -n hw.ncpu) | |
ccache_cache: /Users/runner/Library/Caches/ccache | |
- os: ubuntu-latest | |
install_deps: sudo apt-get update && sudo apt-get install mpich libmpich-dev | |
comp: gnu | |
procs: $(nproc) | |
ccache_cache: ~/.cache/ccache | |
- build_type: Release | |
ctest_args: -LE no-ci | |
ccache_size: 100M | |
- build_type: Debug | |
ctest_args: -LE no-ci | |
ccache_size: 500M | |
- enable_eb: EB-OFF | |
use_eb: "OFF" | |
- enable_eb: EB-ON | |
use_eb: "ON" | |
exclude: | |
- os: macos-latest | |
build_type: Debug | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Setup | |
run: | | |
echo "NPROCS=${{matrix.procs}}" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESSLEVEL=1" >> $GITHUB_ENV | |
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV | |
echo "CCACHE_MAXSIZE=${{matrix.ccache_size}}" >> $GITHUB_ENV | |
cmake -E make_directory ${{runner.workspace}}/deps | |
if [ "${RUNNER_OS}" != "macOS" ]; then | |
${{github.workspace}}/Submodules/PelePhysics/Submodules/amrex/.github/workflows/dependencies/ubuntu_free_disk_space.sh | |
fi | |
- name: Dependencies | |
run: | | |
# Install MPI | |
${{matrix.install_deps}} | |
# Install Python packages | |
python -m pip install --upgrade pip | |
pip install pynose numpy pandas | |
- name: Install Ccache | |
run: | | |
if [ "${RUNNER_OS}" != "macOS" ]; then | |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz | |
tar xvf ccache-4.8-linux-x86_64.tar.xz | |
sudo cp -f ccache-4.8-linux-x86_64/ccache /usr/local/bin/ | |
fi | |
- name: Set Up Ccache | |
uses: actions/cache@v4 | |
with: | |
path: ${{matrix.ccache_cache}} | |
key: ccache-${{github.workflow}}-${{github.job}}-${{matrix.os}}-${{matrix.build_type}}-${{matrix.enable_eb}}-git-${{github.sha}} | |
restore-keys: | | |
ccache-${{github.workflow}}-${{github.job}}-${{matrix.os}}-${{matrix.build_type}}-${{matrix.enable_eb}}-git- | |
- name: Configure | |
run: | | |
(for DIM in 2 3; do \ | |
printf "\n-------- Configuring ${DIM}D --------\n"; \ | |
cmake -B${{runner.workspace}}/build-${DIM}d-${{matrix.os}}-${{matrix.build_type}}-${{matrix.enable_eb}} \ | |
-DCMAKE_INSTALL_PREFIX:PATH=${{runner.workspace}}/install-${DIM}d-${{matrix.os}}-${{matrix.build_type}}-${{matrix.enable_eb}} \ | |
-DCMAKE_BUILD_TYPE:STRING=${{matrix.build_type}} \ | |
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ | |
-DPELE_DIM:STRING=${DIM} \ | |
-DPELE_ENABLE_MPI:BOOL=ON \ | |
-DPELE_ENABLE_EB:BOOL=${{matrix.use_eb}} \ | |
-DPELE_ENABLE_FCOMPARE_FOR_TESTS:BOOL=OFF \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache \ | |
${{github.workspace}}; \ | |
if [ $? -ne 0 ]; then exit 1; fi \ | |
done) | |
- name: Build | |
run: | | |
ccache -z | |
(for DIM in 2 3; do \ | |
printf "\n-------- Building ${DIM}D --------\n"; \ | |
cmake --build ${{runner.workspace}}/build-${DIM}d-${{matrix.os}}-${{matrix.build_type}}-${{matrix.enable_eb}} \ | |
--parallel ${{env.NPROCS}} 2>&1 | tee -a ${{runner.workspace}}/build-output.txt; \ | |
if [ ${PIPESTATUS[0]} -ne 0 ]; then exit 1; fi \ | |
done) | |
- name: Ccache Report | |
run: | | |
ccache -s | |
du -hs ${{matrix.ccache_cache}} | |
- name: Report | |
run: | | |
echo "::add-matcher::.github/problem-matchers/gcc.json" | |
egrep "warning:|error:" ${{runner.workspace}}/build-output.txt \ | |
| egrep -v "Submodules/amrex|Submodules/sundials|Submodules/AMReX-Hydro" \ | |
| egrep -v "ld: warning:" | egrep -v "lto-wrapper: warning:" | sort | uniq \ | |
| awk 'BEGIN{i=0}{print $0}{i++}END{print "Warnings: "i}' > ${{runner.workspace}}/build-output-warnings.txt | |
cat ${{runner.workspace}}/build-output-warnings.txt | |
export return=$(tail -n 1 ${{runner.workspace}}/build-output-warnings.txt | awk '{print $2}') | |
exit ${return} | |
- name: Test | |
run: | | |
(for DIM in 2 3; do \ | |
printf "\n-------- Testing ${DIM}D --------\n"; \ | |
cd ${{runner.workspace}}/build-${DIM}d-${{matrix.os}}-${{matrix.build_type}}-${{matrix.enable_eb}}; \ | |
ctest -j ${{env.NPROCS}} ${{matrix.ctest_args}} --output-on-failure; \ | |
if [ $? -ne 0 ]; then exit 1; fi \ | |
done) | |
GPU-Nvidia: | |
name: GPU-CUDA | |
needs: [Formatting, CPU-GNUmake] | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
cuda_ver: [11.4] | |
include: | |
- cuda_ver: "11.4" | |
cuda_pkg: 11-4 | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup | |
run: | | |
echo "NPROCS=$(nproc)" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESSLEVEL=1" >> $GITHUB_ENV | |
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV | |
echo "CCACHE_MAXSIZE=300M" >> $GITHUB_ENV | |
- name: Dependencies | |
run: | | |
${{github.workspace}}/Submodules/PelePhysics/Submodules/amrex/.github/workflows/dependencies/ubuntu_free_disk_space.sh | |
curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb | |
sudo dpkg -i cuda-keyring_1.0-1_all.deb | |
sudo apt-get update | |
sudo apt-get install -y \ | |
cuda-command-line-tools-${{matrix.cuda_pkg}} \ | |
cuda-compiler-${{matrix.cuda_pkg}} cuda-minimal-build-${{matrix.cuda_pkg}} \ | |
cuda-nvml-dev-${{matrix.cuda_pkg}} cuda-nvtx-${{matrix.cuda_pkg}} \ | |
libcurand-dev-${{matrix.cuda_pkg}} cuda-cupti-dev-${{matrix.cuda_pkg}} \ | |
libcusolver-dev-${{matrix.cuda_pkg}} libcusparse-dev-${{matrix.cuda_pkg}} \ | |
libcublas-dev-${{matrix.cuda_pkg}} | |
- name: Install Ccache | |
run: | | |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz | |
tar xvf ccache-4.8-linux-x86_64.tar.xz | |
sudo cp -f ccache-4.8-linux-x86_64/ccache /usr/local/bin/ | |
- name: Set Up Ccache | |
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: Configure | |
run: | | |
export PATH=/usr/local/nvidia/bin:/usr/local/cuda-${{matrix.cuda_ver}}/bin:${PATH} | |
export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda-${{matrix.cuda_ver}}/lib:${LD_LIBRARY_PATH} | |
cmake -Bbuild-${{matrix.cuda_pkg}} \ | |
-DCMAKE_BUILD_TYPE:STRING=Release \ | |
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ | |
-DPELE_ENABLE_MPI:BOOL=OFF \ | |
-DPELE_ENABLE_CUDA:BOOL=ON \ | |
-DAMReX_CUDA_ERROR_CAPTURE_THIS:BOOL=ON \ | |
-DCMAKE_CUDA_ARCHITECTURES:STRING=70 \ | |
-DCMAKE_CUDA_COMPILER_LAUNCHER:STRING=ccache \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache \ | |
${{github.workspace}} | |
- name: Build | |
run: | | |
ccache -z | |
cmake --build build-${{matrix.cuda_pkg}} --parallel ${{env.NPROCS}} | |
- name: Ccache Report | |
run: | | |
ccache -s | |
du -hs ~/.cache/ccache | |
GPU-AMD: | |
name: GPU-HIP | |
needs: [Formatting, CPU-GNUmake] | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup | |
run: | | |
echo "NPROCS=$(nproc)" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESSLEVEL=1" >> $GITHUB_ENV | |
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV | |
echo "CCACHE_MAXSIZE=80M" >> $GITHUB_ENV | |
- name: Dependencies | |
run: | | |
${{github.workspace}}/Submodules/PelePhysics/Submodules/amrex/.github/workflows/dependencies/ubuntu_free_disk_space.sh | |
curl -O https://repo.radeon.com/rocm/rocm.gpg.key | |
sudo apt-key add rocm.gpg.key | |
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/5.6.1 ubuntu main' \ | |
| sudo tee /etc/apt/sources.list.d/rocm.list | |
echo 'export PATH=/opt/rocm/llvm/bin:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin:$PATH' \ | |
| sudo tee -a /etc/profile.d/rocm.sh | |
sudo apt-get update | |
sudo apt-get install -y rocm-dev rocrand-dev rocprim-dev | |
- name: Install Ccache | |
run: | | |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz | |
tar xvf ccache-4.8-linux-x86_64.tar.xz | |
sudo cp -f ccache-4.8-linux-x86_64/ccache /usr/local/bin/ | |
- name: Set Up Ccache | |
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: Configure | |
run: | | |
source /etc/profile.d/rocm.sh | |
which clang | |
which clang++ | |
which hipcc | |
cmake -B${{runner.workspace}}/build-hip \ | |
-DCMAKE_BUILD_TYPE:STRING=Release \ | |
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ | |
-DCMAKE_CXX_COMPILER:STRING=$(which clang++) \ | |
-DCMAKE_C_COMPILER:STRING=$(which clang) \ | |
-DPELE_ENABLE_MPI:BOOL=OFF \ | |
-DPELE_ENABLE_HIP:BOOL=ON \ | |
-DAMReX_AMD_ARCH:STRING=gfx90a \ | |
-DCMAKE_HIP_ARCHITECTURES:STRING=gfx90a \ | |
-DAMDGPU_TARGETS:STRING=gfx90a \ | |
-DGPU_TARGETS:STRING=gfx90a \ | |
-DAMReX_GPU_RDC:BOOL=OFF \ | |
-DPELE_ENABLE_FCOMPARE_FOR_TESTS:BOOL=OFF \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache \ | |
${{github.workspace}} | |
- name: Build | |
run: | | |
echo "::add-matcher::.github/problem-matchers/gcc.json" | |
source /etc/profile.d/rocm.sh | |
ccache -z | |
cmake --build ${{runner.workspace}}/build-hip --parallel ${{env.NPROCS}} | |
- name: Ccache Report | |
run: | | |
ccache -s | |
du -hs ~/.cache/ccache | |
GPU-Intel: | |
name: GPU-SYCL | |
needs: [Formatting, CPU-GNUmake] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup | |
run: | | |
echo "NPROCS=$(nproc)" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESSLEVEL=1" >> $GITHUB_ENV | |
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV | |
echo "CCACHE_MAXSIZE=80M" >> $GITHUB_ENV | |
echo "CCACHE_DEPEND=1" >> $GITHUB_ENV | |
- name: Dependencies | |
run: | | |
${{github.workspace}}/Submodules/PelePhysics/Submodules/amrex/.github/workflows/dependencies/ubuntu_free_disk_space.sh | |
sudo wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | |
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | |
echo "deb https://apt.repos.intel.com/oneapi all main" \ | |
| sudo tee /etc/apt/sources.list.d/oneAPI.list | |
sudo apt-get update | |
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mkl-devel | |
- name: Install Ccache | |
run: | | |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz | |
tar xvf ccache-4.8-linux-x86_64.tar.xz | |
sudo cp -f ccache-4.8-linux-x86_64/ccache /usr/local/bin/ | |
- name: Set Up Ccache | |
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: Configure | |
run: | | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
cmake -B${{runner.workspace}}/build-sycl \ | |
-DCMAKE_BUILD_TYPE:STRING=Release \ | |
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ | |
-DCMAKE_CXX_COMPILER:STRING=$(which icpx) \ | |
-DCMAKE_C_COMPILER:STRING=$(which icx) \ | |
-DCMAKE_CXX_FLAGS:STRING=-fsycl \ | |
-DPELE_ENABLE_MPI:BOOL=OFF \ | |
-DPELE_ENABLE_FCOMPARE_FOR_TESTS:BOOL=OFF \ | |
-DPELE_ENABLE_SYCL:BOOL=ON \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache \ | |
${{github.workspace}} | |
- name: Build | |
run: | | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
ccache -z | |
cmake --build ${{runner.workspace}}/build-sycl --parallel ${{env.NPROCS}} | |
- name: Ccache Report | |
run: | | |
ccache -s | |
du -hs ~/.cache/ccache | |
Lint-clang-tidy: | |
needs: Formatting | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
enable_eb: [EB-OFF, EB-ON] | |
include: | |
- enable_eb: EB-OFF | |
use_eb: "OFF" | |
- enable_eb: EB-ON | |
use_eb: "ON" | |
fail-fast: false | |
steps: | |
- name: Setup | |
run: | | |
echo "NPROCS=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV | |
echo "CCACHE_COMPRESSLEVEL=1" >> $GITHUB_ENV | |
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV | |
echo "CCACHE_MAXSIZE=80M" >> $GITHUB_ENV | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Ccache | |
run: | | |
brew install ccache | |
- name: Set Up Ccache | |
uses: actions/cache@v4 | |
with: | |
path: /Users/runner/Library/Caches/ccache | |
key: ccache-${{github.workflow}}-${{github.job}}-${{matrix.enable_eb}}-git-${{github.sha}} | |
restore-keys: | | |
ccache-${{github.workflow}}-${{github.job}}-${{matrix.enable_eb}}-git- | |
- name: Configure | |
run: | | |
export PATH=$(brew --prefix llvm@15)/bin:${PATH} | |
cmake -B${{runner.workspace}}/build-clang-tidy \ | |
-DCMAKE_BUILD_TYPE:STRING=Release \ | |
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ | |
-DCMAKE_CXX_COMPILER:STRING=clang++ \ | |
-DCMAKE_C_COMPILER:STRING=clang \ | |
-DPELE_ENABLE_EB:BOOL=${{matrix.use_eb}} \ | |
-DPELE_ENABLE_MPI:BOOL=OFF \ | |
-DPELE_ENABLE_FCOMPARE_FOR_TESTS:BOOL=OFF \ | |
-DPELE_ENABLE_CLANG_TIDY:BOOL=ON \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache \ | |
${{github.workspace}} | |
- name: Check | |
working-directory: ${{runner.workspace}}/build-clang-tidy | |
run: | | |
#set -eu -o pipefail | |
export PATH=$(brew --prefix llvm@15)/bin:${PATH} | |
cmake --build . --parallel ${{env.NPROCS}} 2>&1 | tee -a clang-tidy-full-report.txt | |
egrep "warning:|error:" clang-tidy-full-report.txt \ | |
| egrep -v "Submodules/amrex|Submodules/sundials|Submodules/AMReX-Hydro" \ | |
| egrep -v "ld: warning:" | sort | uniq \ | |
| awk 'BEGIN{i=0}{print $0}{i++}END{print "Warnings: "i}' > clang-tidy-warnings.txt | |
- name: Ccache Report | |
run: | | |
ccache -s | |
du -hs /Users/runner/Library/Caches/ccache | |
- name: Full report | |
working-directory: ${{runner.workspace}}/build-clang-tidy | |
run: cat clang-tidy-full-report.txt | |
- name: Short report | |
working-directory: ${{runner.workspace}}/build-clang-tidy | |
run: | | |
echo "::add-matcher::.github/problem-matchers/gcc.json" | |
cat clang-tidy-warnings.txt | |
export return=$(tail -n 1 clang-tidy-warnings.txt | awk '{print $2}') | |
exit ${return} | |
Lint-codeql: | |
needs: Formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v3 | |
with: | |
languages: cpp | |
queries: +security-and-quality | |
config-file: ./.github/codeql/codeql-config.yml | |
- name: Configure | |
run: | | |
echo "NPROCS=$(nproc)" >> $GITHUB_ENV | |
cmake -B${{runner.workspace}}/build-codeql \ | |
-DCMAKE_BUILD_TYPE:STRING=Debug \ | |
-DCMAKE_CXX_COMPILER:STRING=clang++ \ | |
-DCMAKE_C_COMPILER:STRING=clang \ | |
-DPELE_ENABLE_MPI:BOOL=OFF \ | |
-DPELE_ENABLE_FCOMPARE_FOR_TESTS:BOOL=OFF \ | |
-DPELE_ENABLE_CLANG_TIDY:BOOL=OFF \ | |
${{github.workspace}} | |
- name: Build | |
run: | | |
cmake --build ${{runner.workspace}}/build-codeql --parallel ${{env.NPROCS}} | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v3 | |
with: | |
category: "/language:cpp" | |
upload: False | |
output: sarif-results | |
- name: Filter CodeQL sarif | |
uses: advanced-security/filter-sarif@v1 | |
with: | |
patterns: | | |
-**/Submodules/sundials/** | |
-**/Submodules/amrex/** | |
-**/Submodules/AMReX-Hydro/** | |
input: sarif-results/cpp.sarif | |
output: sarif-results/cpp.sarif | |
- name: Upload CodeQL sarif | |
uses: github/codeql-action/upload-sarif@v3 | |
with: | |
sarif_file: sarif-results/cpp.sarif | |
Lint-codespell: | |
needs: Formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone | |
uses: actions/checkout@v4 | |
with: | |
submodules: false | |
- name: Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Dependencies | |
run: | | |
# Install Python packages | |
python -m pip install --upgrade pip | |
pip install codespell | |
- name: Run codespell | |
run: codespell | |
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 |