PeleLMeX-CI #52
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: | |
CPU-CMake: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
build_type: [Debug] | |
enable_eb: [EB-OFF] | |
include: | |
- 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: Debug | |
ctest_args: -LE no-ci | |
ccache_size: 500M | |
- enable_eb: EB-OFF | |
use_eb: "OFF" | |
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; 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; 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; 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) | |
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 |