Skip to content

Commit

Permalink
migrate ARM64 testing to CircleCI (#583)
Browse files Browse the repository at this point in the history
### Description
This sets up ARM64 CI testing on CircleCI. Removes the ARM64 CI testing
currently on Oracle Cloud, which is harder to maintain and configure.

### Related issues
N/A

### Checklist
_Before this pull request can be reviewed, all of these tasks should be
completed. Denote completed tasks with an `x` inside the square brackets
`[ ]` in the Markdown source below:_
- [x] I have added a description (see above).
- [ ] I have added a link to any related issues see (see above).
- [x] I have read the [Contributing
Guide](https://github.com/quokka-astro/quokka/blob/development/CONTRIBUTING.md).
- [ ] I have added tests for any new physics that this PR adds to the
code.
- [ ] I have tested this PR on my local computer and all tests pass.
- [ ] I have manually triggered the GPU tests with the magic comment
`/azp run`.
- [x] I have requested a reviewer for this PR.
  • Loading branch information
BenWibking authored May 26, 2024
1 parent 88bdc18 commit 4c1a576
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 124 deletions.
41 changes: 0 additions & 41 deletions .ci/azure-pipelines-aarch64-debug.yml

This file was deleted.

41 changes: 0 additions & 41 deletions .ci/azure-pipelines-aarch64-hwasan.yml

This file was deleted.

41 changes: 0 additions & 41 deletions .ci/azure-pipelines-aarch64.yml

This file was deleted.

114 changes: 114 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
version: 2

jobs:
linux-aarch64-release:
working_directory: ~/linux-aarch64-release
machine:
image: ubuntu-2204:current
# resource_class is what tells CircleCI to use an ARM worker for native arm builds
# https://circleci.com/product/features/resource-classes/
# https://circleci.com/docs/using-arm/
resource_class: arm.large
steps:
- checkout
- run:
name: "Checkout Submodules"
command: |
git reset --hard
git submodule init
git submodule update
- run:
name: Install build dependencies
command: |
sudo apt update
sudo apt install cmake g++ libopenmpi-dev libhdf5-openmpi-dev hdf5-tools python3 python3-setuptools
python3 -m pip install -U numpy scipy matplotlib
- run:
name: Build
command: |
cmake -S . -B build \
-DAMReX_SPACEDIM=1 -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel 4
- run:
name: Test
command: |
ctest --test-dir build --output-on-failure
linux-aarch64-hwasan:
working_directory: ~/linux-aarch64-hwasan
machine:
image: ubuntu-2204:current
# resource_class is what tells CircleCI to use an ARM worker for native arm builds
# https://circleci.com/product/features/resource-classes/
# https://circleci.com/docs/using-arm/
resource_class: arm.large
steps:
- checkout
- run:
name: "Checkout Submodules"
command: |
git reset --hard
git submodule init
git submodule update
- run:
name: Install build dependencies
command: |
sudo apt update
sudo apt install cmake clang lld libopenmpi-dev libhdf5-openmpi-dev hdf5-tools python3 python3-setuptools
python3 -m pip install -U numpy scipy matplotlib
- run:
name: Build
command: |
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release -DENABLE_HWASAN=ON \
-DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" \
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
-DAMReX_SPACEDIM=1
cmake --build build --parallel 4
- run:
name: Test
no_output_timeout: 30m
command: |
ctest --test-dir build --output-on-failure
linux-aarch64-debug:
working_directory: ~/linux-aarch64-debug
machine:
image: ubuntu-2204:current
# resource_class is what tells CircleCI to use an ARM worker for native arm builds
# https://circleci.com/product/features/resource-classes/
# https://circleci.com/docs/using-arm/
resource_class: arm.large
steps:
- checkout
- run:
name: "Checkout Submodules"
command: |
git reset --hard
git submodule init
git submodule update
- run:
name: Install build dependencies
command: |
sudo apt update
sudo apt install cmake g++ libopenmpi-dev libhdf5-openmpi-dev hdf5-tools python3 python3-setuptools
python3 -m pip install -U numpy scipy matplotlib
- run:
name: Build
command: |
cmake -S . -B build \
-DAMReX_SPACEDIM=1 -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel 4
- run:
name: Test
no_output_timeout: 30m
command: |
ctest --test-dir build -j 4 -T Test -E "RadhydroPulseMG*" --output-on-failure
workflows:
version: 2
all-tests:
jobs:
- linux-aarch64-release
- linux-aarch64-hwasan
- linux-aarch64-debug
2 changes: 1 addition & 1 deletion .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ jobs:

- name: Run codespell
run: |
codespell src
codespell -I .github/workflows/codespell_ignore.txt, --ignore-words=.github/workflows/codespell_ignore.txt src
1 change: 1 addition & 0 deletions .github/workflows/codespell_ignore.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fillin

0 comments on commit 4c1a576

Please sign in to comment.