diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f01778187..ca5fb8197 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,6 +30,53 @@ jobs: - name: Run linter run: | python3 -m flake8 . + ubuntu-gcc-arm64-build: + needs: + - clang-format + - python-lint + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Setup environment + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y gcc-14 g++-14 ninja-build libmpich-dev libomp-dev valgrind + python3 -m pip install -r requirements.txt + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ runner.os }}-gcc-arm64 + create-symlink: true + max-size: 1G + - name: CMake configure + run: > + cmake -S . -B build + -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache + -G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON + -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON + -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install + env: + CC: gcc-14 + CXX: g++-14 + - name: Build project + run: | + cmake --build build --parallel + env: + CC: gcc-14 + CXX: g++-14 + - name: Install project + run: | + cmake --build build --target install + - name: Archive installed package + run: | + tar -czvf ubuntu-gcc-arm64-install.tar.gz -C install . + - name: Upload installed package + uses: actions/upload-artifact@v4 + with: + name: ubuntu-gcc-arm64-install + path: ubuntu-gcc-arm64-install.tar.gz ubuntu-gcc-build: needs: - clang-format @@ -237,6 +284,55 @@ jobs: with: name: ubuntu-clang-install path: ubuntu-clang-install.tar.gz + ubuntu-clang-arm64-build: + needs: + - clang-format + - python-lint + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Setup environment + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind + wget https://apt.llvm.org/llvm.sh + chmod u+x llvm.sh + sudo ./llvm.sh 20 all + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ runner.os }}-clang-arm64 + create-symlink: true + max-size: 1G + - name: CMake configure + run: > + cmake -S . -B build + -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache + -G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON + -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON + -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install + env: + CC: clang-20 + CXX: clang++-20 + - name: Build project + run: | + cmake --build build --parallel + env: + CC: clang-20 + CXX: clang++-20 + - name: Install project + run: | + cmake --build build --target install + - name: Archive installed package + run: | + tar -czvf ubuntu-clang-arm64-install.tar.gz -C install . + - name: Upload installed package + uses: actions/upload-artifact@v4 + with: + name: ubuntu-clang-arm64-install + path: ubuntu-clang-arm64-install.tar.gz ubuntu-clang-test: needs: - ubuntu-clang-build