name: test-nodejs on: push: branches: - master pull_request: branches: - master workflow_dispatch: concurrency: group: test-nodejs-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: test-nodejs: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] #, windows-2019] 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-ON - name: Configure CMake 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 -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install .. cmake --build . --target install --config Release ls -lh install/lib - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Copy files shell: bash run: | os=${{ matrix.os }} if [[ $os == 'ubuntu-latest' ]]; then mkdir -p scripts/nodejs/lib/linux-x64 dst=scripts/nodejs/lib/linux-x64 elif [[ $os == 'macos-latest' ]]; then mkdir -p scripts/nodejs/lib/osx-x64 dst=scripts/nodejs/lib/osx-x64 elif [[ $os == 'windows-2019' ]]; then mkdir -p scripts/nodejs/lib/win-x64 dst=scripts/nodejs/lib/win-x64 fi ls -lh build/install/lib/ rm -rf build/install/lib/pkgconfig cp -v build/install/lib/* $dst/ - name: replace files shell: bash run: | cd nodejs-examples files=$(ls -1 *.js) for f in ${files[@]}; do echo $f sed -i.bak s%\'sherpa-onnx\'%\'./index.js\'% $f git status done git diff cp *.js ../scripts/nodejs - uses: actions/setup-node@v4 with: node-version: 13 registry-url: 'https://registry.npmjs.org' - name: Display node version shell: bash run: | node --version npm --version - name: Run tests shell: bash run: | node --version npm --version export d=scripts/nodejs pushd $d npm install npm install wav popd ./.github/scripts/test-nodejs-npm.sh