ARM64 Builds CICD #3
Workflow file for this run
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
# Configs that enables Deep Redudancy (DRED) | |
name: DRED | |
on: [push, pull_request] | |
jobs: | |
CMakeBuild: | |
name: CMake/${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Windows/Lib/X64/Release", | |
os: windows-latest, | |
config: Release, | |
args: -G "Visual Studio 17 2022" -DOPUS_X86_PRESUME_AVX2=ON | |
} | |
- { | |
name: "Windows/Lib/armv8/Release", | |
os: windows-latest, | |
config: Release, | |
args: -G "Visual Studio 17 2022" -A ARM64 | |
} | |
- { | |
name: "Linux/Lib/X64/Release", | |
os: ubuntu-latest, | |
config: Release, | |
args: -DOPUS_X86_PRESUME_AVX2=ON | |
} | |
- { | |
name: "Android/Lib/X64/Release", | |
os: ubuntu-latest, | |
config: Release, | |
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64" | |
} | |
- { | |
name: "Android/Lib/ARMv8/Release", | |
os: ubuntu-latest, | |
config: Release, | |
args: "-DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a" | |
} | |
- { | |
name: "MacOSX/Lib/X64/Release", | |
os: macos-latest, | |
config: Release, | |
# some macs are really old in githubs lab so they don't support avx | |
args: -DOPUS_X86_PRESUME_AVX2=OFF | |
} | |
- { | |
name: "iOS/Lib/arm64/Release", | |
os: macos-latest, | |
config: Release, | |
args: -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 | |
} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install AutoConf, AutoMake and LibTool # Needed for autogen.sh | |
if: matrix.config.os == 'macos-latest' | |
run: brew install autoconf automake libtool | |
- name: Download models Windows | |
if: contains(matrix.config.name, 'Windows') | |
run: .\autogen.bat | |
- name: Download models | |
if: contains(matrix.config.name, 'MacOSX') || | |
contains(matrix.config.name, 'Linux') || | |
contains(matrix.config.name, 'Android') || | |
contains(matrix.config.name, 'iOS') | |
run: ./autogen.sh | |
- name: Create Work Dir | |
run: mkdir build | |
- name: Configure | |
working-directory: ./build | |
run: cmake .. ${{ matrix.config.args }} -DCMAKE_BUILD_TYPE=${{ matrix.config.config }} -DOPUS_BUILD_PROGRAMS=ON -DBUILD_TESTING=ON -DOPUS_FAST_MATH=ON -DOPUS_FLOAT_APPROX=ON -DOPUS_DRED=ON -DOPUS_OSCE=ON | |
- name: Build | |
working-directory: ./build | |
run: cmake --build . -j 2 --config ${{ matrix.config.config }} --target package | |
- name: Test | |
if: contains(matrix.config.name, 'Windows') && !contains(matrix.config.name, 'ARM') && !contains(matrix.config.name, 'Dll') || | |
contains(matrix.config.name, 'MacOSX') && !contains(matrix.config.name, 'ARM') && !contains(matrix.config.name, 'Dll') || | |
contains(matrix.config.name, 'Linux') && !contains(matrix.config.name, 'ARM') && !contains(matrix.config.name, 'Dll') | |
working-directory: ./build | |
run: ctest -j 2 -C ${{ matrix.config.config }} --output-on-failure | |
AutoToolsBuild: | |
name: AutoTools/${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Linux/GCC", | |
os: ubuntu-latest, | |
compiler: gcc, | |
automakeconfig: | |
} | |
- { | |
name: "Linux/Clang", | |
os: ubuntu-latest, | |
compiler: clang, | |
automakeconfig: | |
} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install AutoConf, AutoMake and LibTool on MacOSX | |
if: matrix.config.os == 'macos-latest' | |
run: brew install autoconf automake libtool | |
- name: Autogen | |
run: CC=${{ matrix.config.compiler }} ./autogen.sh | |
- name: Configure | |
run: CFLAGS="-mavx -mfma -mavx2 -O2 -ffast-math" ./configure --enable-float-approx | |
- name: Build | |
run: make -j 2 | |
- name: Test | |
run: make check -j 2 |