name: test-go on: push: branches: - master paths: - '.github/workflows/test-go.yaml' - 'CMakeLists.txt' - 'cmake/**' - 'sherpa-onnx/csrc/*' - 'go-api-examples/**' - 'scripts/go/**' pull_request: branches: - master paths: - '.github/workflows/test-go.yaml' - 'CMakeLists.txt' - 'cmake/**' - 'sherpa-onnx/csrc/*' - 'go-api-examples/**' - 'scripts/go/**' workflow_dispatch: concurrency: group: test-go-${{ github.ref }} cancel-in-progress: true jobs: test-go: name: ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, macos-14] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ matrix.os }}-go - uses: actions/setup-go@v5 with: go-version: '>=1.12' - name: Display go version shell: bash run: | go version go env GOPATH go env GOARCH go env CGO_ENABLED - name: Display go env shell: bash run: | go env - name: Build sherpa-onnx shell: bash run: | export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" mkdir build cd build cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DBUILD_SHARED_LIBS=ON -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF -DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF .. make -j1 cp -v _deps/onnxruntime-src/lib/libonnxruntime*dylib ./lib/ cd ../scripts/go/_internal/ ls -lh lib echo "-----" ls -lh lib/*/ echo "-----" go mod tidy go build - name: Test speaker identification shell: bash run: | cd scripts/go/_internal/speaker-identification/ ./run.sh - name: Test streaming HLG decoding shell: bash run: | cd scripts/go/_internal/streaming-hlg-decoding/ ./run.sh - name: Test non-streaming TTS (macOS) shell: bash run: | mkdir tts-waves cd scripts/go/_internal/non-streaming-tts/ ls -lh go mod tidy cat go.mod go build ls -lh echo "Test vits-ljs" ./run-vits-ljs.sh rm -rf vits-ljs echo "Test vits-vctk" ./run-vits-vctk.sh rm -rf vits-vctk echo "Test vits-zh-aishell3" ./run-vits-zh-aishell3.sh rm -rf vits-icefall-zh-aishell3 echo "Test vits-piper-en_US-lessac-medium" ./run-vits-piper-en_US-lessac-medium.sh rm -rf vits-piper-en_US-lessac-medium cp *.wav ../../../../tts-waves/ - uses: actions/upload-artifact@v4 with: name: tts-waves-${{ matrix.os }} path: tts-waves - name: Test non-streaming decoding files (macOS) shell: bash run: | cd scripts/go/_internal/non-streaming-decode-files/ ls -lh go mod tidy cat go.mod go build ls -lh echo "Test telespeech ctc" ./run-telespeech-ctc.sh rm -rf sherpa-onnx-telespeech-ctc-* echo "Test transducer" ./run-transducer.sh rm -rf sherpa-onnx-zipformer-en-2023-06-26 echo "Test transducer" ./run-transducer.sh rm -rf sherpa-onnx-zipformer-en-2023-06-26 echo "Test paraformer" ./run-paraformer.sh ./run-paraformer-itn.sh rm -rf sherpa-onnx-paraformer-zh-2023-03-28 echo "Test NeMo CTC" ./run-nemo-ctc.sh rm -rf sherpa-onnx-nemo-ctc-en-conformer-medium echo "Test Whisper tiny.en" ./run-whisper.sh rm -rf sherpa-onnx-whisper-tiny.en echo "Test Tdnn yesno" ./run-tdnn-yesno.sh rm -rf sherpa-onnx-tdnn-yesno - name: Test streaming decoding files shell: bash run: | cd scripts/go/_internal/streaming-decode-files ls -lh go mod tidy cat go.mod go build ls -lh echo "Test zipformer2 CTC" ./run-zipformer2-ctc.sh rm -rf sherpa-onnx-streaming-zipformer-ctc-multi-zh-hans-2023-12-13 echo "Test transducer" ./run-transducer.sh rm -rf sherpa-onnx-streaming-zipformer-en-2023-06-26 ./run-transducer-itn.sh rm -rf sherpa-onnx-streaming-* echo "Test paraformer" ./run-paraformer.sh rm -rf sherpa-onnx-streaming-paraformer-bilingual-zh-en