name: test-dot-net on: push: branches: - master pull_request: branches: - master workflow_dispatch: concurrency: group: test-dot-net cancel-in-progress: true permissions: contents: read jobs: build-libs: name: ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] python-version: ["3.8"] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ matrix.os }}-release-shared - name: Build sherpa-onnx shell: bash run: | export CMAKE_CXX_COMPILER_LAUNCHER=ccache export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" cmake --version mkdir build cd build cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -DCMAKE_BUILD_TYPE=Release .. cmake --build . --target install --config Release - uses: actions/upload-artifact@v4 with: name: ${{ matrix.os }} path: ./build/install/lib/ test-dot-net: runs-on: ${{ matrix.os }} needs: [build-libs] strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] #, windows-latest] python-version: ["3.8"] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Python dependencies shell: bash run: | python3 -m pip install --upgrade pip Jinja2 - name: Retrieve artifact from ubuntu-latest uses: actions/download-artifact@v4 with: name: ubuntu-latest path: /tmp/linux - name: Retrieve artifact from macos-latest uses: actions/download-artifact@v4 with: name: macos-latest path: /tmp/macos - name: Retrieve artifact from windows-latest uses: actions/download-artifact@v4 with: name: windows-latest path: /tmp/windows - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: | 6.0.x 7.0.x - name: Check dotnet run: dotnet --info - name: Display files shell: bash run: | echo "----------/tmp/----------" ls -lh /tmp/ echo "----------/tmp/linux----------" ls -lh /tmp/linux echo "----------/tmp/macos----------" ls -lh /tmp/macos echo "----------/tmp/windows----------" ls -lh /tmp/windows - name: Build shell: bash run: | cd scripts/dotnet ./run.sh - name: Copy files shell: bash run: | cp -v scripts/dotnet/examples/offline-tts.csproj dotnet-examples/offline-tts/ cp -v scripts/dotnet/examples/offline-decode-files.csproj dotnet-examples/offline-decode-files/ cp -v scripts/dotnet/examples/online-decode-files.csproj dotnet-examples/online-decode-files/ cp -v scripts/dotnet/examples/speech-recognition-from-microphone.csproj dotnet-examples/speech-recognition-from-microphone/ ls -lh /tmp - name: Decode a file shell: bash run: | cd dotnet-examples/ cd online-decode-files ./run-zipformer2-ctc.sh ./run-transducer.sh ./run-paraformer.sh cd ../offline-decode-files ./run-nemo-ctc.sh ./run-paraformer.sh ./run-zipformer.sh ./run-whisper.sh ./run-tdnn-yesno.sh cd ../offline-tts ./run-aishell3.sh ./run-piper.sh ls -lh cd ../.. mkdir tts cp dotnet-examples/offline-tts/*.wav ./tts - uses: actions/upload-artifact@v3 with: name: dot-net-tts-generated-test-files-${{ matrix.os }} path: tts