Skip to content

Status: Alpha (#172) #532

Status: Alpha (#172)

Status: Alpha (#172) #532

Workflow file for this run

name: 🐧 Ubuntu
on: [push, pull_request]
concurrency:
group: ${{ github.ref }}-${{ github.head_ref }}-linux
cancel-in-progress: true
jobs:
# Build and install libamrex as AMReX CMake project
gcc7:
name: GNU@7.5
runs-on: ubuntu-20.04
env:
CC: gcc-7
CXX: g++-7
CXXFLAGS: "-Werror -Wshadow -Woverloaded-virtual -Wunreachable-code -fno-operator-names -Wno-array-bounds"
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: '3.9'
- name: Dependencies
run: .github/workflows/dependencies/gcc7.sh
- name: Build & Install
run: |
python3 -m pip install -U pip setuptools wheel pytest
AMREX_MPI=ON python3 -m pip install -v .
python3 -c "import amrex.space1d as amr; print(amr.__version__)"
python3 -c "import amrex.space2d as amr; print(amr.__version__)"
python3 -c "import amrex.space3d as amr; print(amr.__version__)"
- name: Unit tests
run: |
mpiexec -np 1 python3 -m pytest tests/
gcc10:
name: GNU@10.1
runs-on: ubuntu-22.04
env: {CXXFLAGS: "-Werror -Wno-error=deprecated-declarations -Wshadow -Woverloaded-virtual -Wunreachable-code -fno-operator-names"}
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Dependencies
run: .github/workflows/dependencies/dependencies_gcc10.sh
- name: Build & Install
run: |
export CC=$(which gcc-10)
export CXX=$(which g++-10)
python3 -m pip install -U pip setuptools wheel
python3 -m pip install -U cmake
python3 -m pip install -U pytest mpi4py
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DBUILD_SHARED_LIBS=ON \
-DAMReX_MPI=ON \
-DAMReX_SPACEDIM="1;2;3"
cmake --build build --target pip_install -j 2
- name: Unit tests
run: |
ctest --test-dir build --output-on-failure
- name: Unit tests as installed
run: |
sudo cp build/lib/libamrex_*.so /usr/lib/
rm -rf build
python3 -m pytest tests
clang6:
name: Clang@6.0 w/o MPI
runs-on: ubuntu-20.04
env: {CXXFLAGS: "-Werror -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -fno-operator-names -Wno-pass-failed"}
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Dependencies
run: .github/workflows/dependencies/dependencies_clang6.sh
- name: Build & Install
run: |
export CC=$(which clang-6.0)
export CXX=$(which clang++-6.0)
python3 -m pip install -U pip pytest
python3 -m pip install -v .
python3 -c "import amrex.space1d as amr; print(amr.__version__)"
python3 -c "import amrex.space2d as amr; print(amr.__version__)"
python3 -c "import amrex.space3d as amr; print(amr.__version__)"
- name: Unit tests
run: |
python3 -m pytest tests/
clang14:
name: Clang@14.0 w/ libc++ w/ MPI
runs-on: ubuntu-22.04
env:
CXXFLAGS: "-Werror -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -fno-operator-names -Wno-pass-failed -stdlib=libc++"
LDFLAGS: "-fuse-ld=lld"
CXX: "clang++"
CC: "clang"
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Dependencies
run: .github/workflows/dependencies/dependencies_clang14_libcpp.sh
- name: Build & Install
run: |
python3 -m pip install -U pip pytest
python3 -m pip install -v .
python3 -c "import amrex.space1d as amr; print(amr.__version__)"
python3 -c "import amrex.space2d as amr; print(amr.__version__)"
python3 -c "import amrex.space3d as amr; print(amr.__version__)"
- name: Unit tests
run: |
python3 -m pytest tests/
nvcc11:
name: CUDA@11.2 GNU@9.3.0
runs-on: ubuntu-20.04
env: {CXXFLAGS: "-fno-operator-names"}
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Dependencies
run: .github/workflows/dependencies/dependencies_nvcc11.sh
- name: Build & Install
run: |
export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
which nvcc || echo "nvcc not in PATH!"
export CC=$(which gcc)
export CXX=$(which g++)
export CUDAHOSTCXX=$(which g++)
python3 -m pip install -U pip setuptools wheel
python3 -m pip install -U cmake
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_GPU_BACKEND=CUDA \
-DAMReX_SPACEDIM="1;2;3" \
-DCMAKE_CUDA_STANDARD=17 \
-DCMAKE_CXX_STANDARD=17 \
-DAMReX_CUDA_ARCH=8.0 \
-DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON \
-DAMReX_CUDA_ERROR_CAPTURE_THIS=ON
cmake --build build --target pip_install -j 2