diff options
author | Marcus Asteborg <xnorpx@outlook.com> | 2023-05-25 07:27:46 +0300 |
---|---|---|
committer | Marcus Asteborg <xnorpx@outlook.com> | 2023-06-16 09:13:01 +0300 |
commit | 0c256a9c5336e9a6e8dd402b9899694caec88f7b (patch) | |
tree | 6c4c1f66ace9b7e421f437b63061c9202ac8429b | |
parent | 7394657096482ff41b0ceab4c2bb35b476174785 (diff) |
Github actions for neural fecexp_neural_fec4
-rw-r--r-- | .github/workflows/build.yml | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..ab9051c8 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,136 @@ +name: Opus Neural FEC Build Matrix + +on: [push, pull_request] + +jobs: + CheckTrailingWhiteSpaces: + name: Check trailing white spaces + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Check Whitespaces + run: | + git diff-tree --check origin/master HEAD + + 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: Pull git submodules + run: git submodule update --init --recursive + - 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: Submodule init and 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_NEURAL_FEC=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 + + AutoMakeBuild: + name: AutoMake/${{ 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: Pull git submodules + run: git submodule update --init --recursive + - 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
\ No newline at end of file |