Remove multiblock code and do not include main.cpp in library (#1874) #100
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: ERF CI | |
on: | |
push: | |
# branches: [development] | |
paths-ignore: | |
- Docs | |
- README.rst | |
- license.txt | |
pull_request: | |
branches: [development] | |
concurrency: | |
group: ${{ github.ref }}-${{ github.head_ref }}-ci | |
cancel-in-progress: true | |
jobs: | |
Build-And-Test: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
include: | |
- os: ubuntu-latest | |
install_deps: sudo apt-get install mpich libmpich-dev | |
comp: gnu | |
procs: $(nproc) | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup | |
run: | | |
# echo "::add-matcher::.github/problem-matchers/gcc.json" | |
echo "NPROCS=${{matrix.procs}}" >> $GITHUB_ENV | |
# cmake -E make_directory ${{runner.workspace}}/deps | |
- name: Handle Dependencies | |
run: | | |
# Install MPI | |
${{matrix.install_deps}} | |
- name: Install CCache | |
run: Submodules/AMReX/.github/workflows/dependencies/dependencies_ccache.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: Configure CMake | |
run: | | |
cmake \ | |
-B${{runner.workspace}}/ERF/build-${{matrix.os}} \ | |
-DCMAKE_INSTALL_PREFIX:PATH=${{runner.workspace}}/ERF/install \ | |
-DCMAKE_BUILD_TYPE:STRING=Debug \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
-DERF_DIM:STRING=3 \ | |
-DERF_ENABLE_MPI:BOOL=ON \ | |
-DERF_ENABLE_TESTS:BOOL=ON \ | |
-DERF_ENABLE_ALL_WARNINGS:BOOL=ON \ | |
-DERF_ENABLE_FCOMPARE:BOOL=ON \ | |
${{github.workspace}}; | |
# ${{matrix.mpipreflags}} \ | |
# -DCODECOVERAGE:BOOL=ON \ | |
- name: Build | |
run: | | |
export CCACHE_COMPRESS=1 | |
export CCACHE_COMPRESSLEVEL=10 | |
export CCACHE_MAXSIZE=600M | |
ccache -z | |
cmake --build ${{runner.workspace}}/ERF/build-${{matrix.os}} --parallel ${{env.NPROCS}} \ | |
2>&1 | tee -a ${{runner.workspace}}/build-output.txt; | |
ccache -s | |
du -hs ~/.cache/ccache | |
- name: Report | |
run: | | |
egrep "warning:|error:" ${{runner.workspace}}/build-output.txt \ | |
| egrep -v "Submodules/amrex" | 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: Regression Tests | |
run: | | |
ctest -L regression -VV | |
working-directory: ${{runner.workspace}}/ERF/build-${{matrix.os}} | |
# Raf: disabled Codecov since the dashboard and GitHub comments were buggy, | |
# but it may be useful to post the gcov coverage reports to GitHub Actions | |
# artifacts. | |
# Note: if reenabling Codecov, the reports must be in xml format not html. | |
# - name: Generate coverage report | |
# working-directory: ${{runner.workspace}}/ERF/build-${{matrix.os}} | |
# run: | | |
# find . -type f -name '*.gcno' -path "**Source**" -exec gcov -pb {} + | |
# cd .. | |
# gcovr -g -k -r . --xml regressioncov.html # -v | |
# - name: Success artifacts | |
# uses: actions/upload-artifact@v4 | |
# if: success() | |
# with: | |
# name: build-and-test | |
# path: | | |
# ${{runner.workspace}}/ERF/regressioncov.html | |
# - name: Failing test artifacts | |
# uses: actions/upload-artifact@v4 | |
# if: failure() | |
# with: | |
# name: build-and-test | |
# path: | | |
# ${{runner.workspace}}/ERF/regressioncov.html |