name: test-node-addon-api on: push: branches: - master paths: - '.github/workflows/test-nodejs-addon-api.yaml' - 'CMakeLists.txt' - 'cmake/**' - 'sherpa-onnx/csrc/*' - 'sherpa-onnx/c-api/*' - 'scripts/node-addon-api/**' pull_request: branches: - master paths: - '.github/workflows/test-nodejs-addon-api.yaml' - 'CMakeLists.txt' - 'cmake/**' - 'sherpa-onnx/csrc/*' - 'sherpa-onnx/c-api/*' - 'scripts/node-addon-api/**' workflow_dispatch: concurrency: group: test-node-addon-api-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: test-node-addon-api: name: ${{ matrix.os }} ${{ matrix.node-version }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-11, macos-14, ubuntu-20.04, ubuntu-22.04] node-version: ["16", "17", "18", "19", "21", "22"] 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 }} - uses: actions/setup-node@v4 with: registry-url: 'https://registry.npmjs.org' node-version: ${{ matrix.node-version }} - name: Display node version shell: bash run: | node --version - 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" mkdir build cd build cmake \ -DCMAKE_INSTALL_PREFIX=/tmp/sherpa-onnx \ -DBUILD_SHARED_LIBS=ON \ -DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \ -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ -DSHERPA_ONNX_ENABLE_BINARY=OFF \ .. make -j make install - name: Build node-addon-api package shell: bash run: | cd scripts/node-addon-api export PKG_CONFIG_PATH=/tmp/sherpa-onnx:$PKG_CONFIG_PATH ls -lh /tmp/sherpa-onnx pkg-config --cflags sherpa-onnx pkg-config --libs sherpa-onnx npm i ./node_modules/.bin/node-gyp configure build --verbose - name: Test streaming transducer shell: bash run: | cd scripts/node-addon-api curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2 tar xvf sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2 rm sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2 node test/test_asr_streaming_transducer.js rm -rf sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20