Skip to content

Commit

Permalink
Nodejs sdk (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
albho authored Feb 28, 2024
1 parent 855e4d1 commit acf44f9
Show file tree
Hide file tree
Showing 47 changed files with 7,096 additions and 1 deletion.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ body:
- Android
- C
- iOS
- Node.js
- Python
- Web
validations:
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/nodejs-codestyle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Node.js Codestyle

on:
workflow_dispatch:
push:
branches: [ main ]
paths:
- '**/nodejs/*.js'
- '**/nodejs/*.ts'
- '.github/workflows/nodejs-codestyle.yml'
pull_request:
branches: [ main, 'v[0-9]+.[0-9]+' ]
paths:
- '**/nodejs/*.js'
- '**/nodejs/*.ts'
- '.github/workflows/nodejs-codestyle.yml'

jobs:
check-nodejs-codestyle:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Node.js LTS
uses: actions/setup-node@v3
with:
node-version: lts/*

- name: Pre-build dependencies
run: npm install yarn

- name: Run Binding Linter
run: yarn && yarn lint
working-directory: binding/nodejs
68 changes: 68 additions & 0 deletions .github/workflows/nodejs-demos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Node.js Demos

on:
workflow_dispatch:
push:
branches: [ main ]
paths:
- 'demo/nodejs/**'
- '!demo/nodejs/README.md'
- 'lib/node/**'
- '.github/workflows/nodejs-demos.yml'

pull_request:
branches: [ main, 'v[0-9]+.[0-9]+' ]
paths:
- 'demo/nodejs/**'
- '!demo/nodejs/README.md'
- 'lib/node/**'
- '.github/workflows/nodejs-demos.yml'

defaults:
run:
working-directory: demo/nodejs

jobs:
build-github-hosted:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [16.x, 18.x, 20.x]

steps:
- uses: actions/checkout@v3

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
run: yarn install

- name: Test enroll
run: yarn file -a ${{secrets.PV_VALID_ACCESS_KEY}} --enroll --enroll_audio_paths ../../resources/audio_samples/speaker_1_utt_1.wav ../../resources/audio_samples/speaker_1_utt_2.wav --output_profile_path test.egl

- name: Test inference
run: yarn file -a ${{secrets.PV_VALID_ACCESS_KEY}} --test --input_profile_paths test.egl --test_audio_path ../../resources/audio_samples/speaker_1_test_utt.wav

build-self-hosted:
runs-on: ${{ matrix.machine }}

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64, jetson]

steps:
- uses: actions/checkout@v3

- name: Install dependencies
run: yarn install

- name: Test enroll
run: yarn file -a ${{secrets.PV_VALID_ACCESS_KEY}} --enroll --enroll_audio_paths ../../resources/audio_samples/speaker_1_utt_1.wav ../../resources/audio_samples/speaker_1_utt_2.wav --output_profile_path test.egl

- name: Test inference
run: yarn file -a ${{secrets.PV_VALID_ACCESS_KEY}} --test --input_profile_paths test.egl --test_audio_path ../../resources/audio_samples/speaker_1_test_utt.wav
110 changes: 110 additions & 0 deletions .github/workflows/nodejs-perf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: Node.js Performance

on:
workflow_dispatch:
push:
branches: [ main ]
paths:
- 'binding/nodejs/perf.test.js'
- 'lib/node/**'
- '.github/workflows/nodejs-perf.yml'

pull_request:
branches: [ main, 'v[0-9]+.[0-9]+' ]
paths:
- 'binding/nodejs/perf.test.js'
- 'lib/node/**'
- '.github/workflows/nodejs-perf.yml'

defaults:
run:
working-directory: binding/nodejs

jobs:
perf-github-hosted:
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
include:
- os: ubuntu-latest
num_test_iterations: 20
enroll_performance_threshold_sec: 0.5
proc_performance_threshold_sec: 0.6
- os: windows-latest
num_test_iterations: 20
enroll_performance_threshold_sec: 0.5
proc_performance_threshold_sec: 0.6
- os: macos-latest
num_test_iterations: 20
enroll_performance_threshold_sec: 1.3
proc_performance_threshold_sec: 1.3

steps:
- uses: actions/checkout@v3

- name: Set up Node.js LTS
uses: actions/setup-node@v3
with:
node-version: lts/*

- name: Install dependencies
run: yarn install

- name: Test
run: yarn test perf.test.ts --access_key=${{secrets.PV_VALID_ACCESS_KEY}} --num_test_iterations=${{matrix.num_test_iterations}} --enroll_performance_threshold_sec=${{matrix.enroll_performance_threshold_sec}} --proc_performance_threshold_sec=${{matrix.proc_performance_threshold_sec}}

perf-self-hosted:
runs-on: ${{ matrix.machine }}

strategy:
fail-fast: false
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64, jetson]
include:
- machine: rpi3-32
num_test_iterations: 20
enroll_performance_threshold_sec: 2.5
proc_performance_threshold_sec: 2.8
- machine: rpi3-64
num_test_iterations: 20
enroll_performance_threshold_sec: 2.5
proc_performance_threshold_sec: 2.8
- machine: rpi4-32
num_test_iterations: 20
enroll_performance_threshold_sec: 1.5
proc_performance_threshold_sec: 1.5
- machine: rpi4-64
num_test_iterations: 20
enroll_performance_threshold_sec: 2.0
proc_performance_threshold_sec: 2.5
- machine: rpi5-64
num_test_iterations: 20
enroll_performance_threshold_sec: 0.5
proc_performance_threshold_sec: 0.6
- machine: jetson
num_test_iterations: 20
enroll_performance_threshold_sec: 1.2
proc_performance_threshold_sec: 1.5

steps:
- uses: actions/checkout@v3

- name: Pre-build dependencies
run: npm install --global yarn

- name: Install dependencies
run: yarn install

- name: Machine state before
working-directory: resources/.scripts
run: bash machine-state.sh

- name: Test
run: yarn test perf.test.ts --access_key=${{secrets.PV_VALID_ACCESS_KEY}} --num_test_iterations=${{matrix.num_test_iterations}} --enroll_performance_threshold_sec=${{matrix.enroll_performance_threshold_sec}} --proc_performance_threshold_sec=${{matrix.proc_performance_threshold_sec}}

- name: Machine state after
working-directory: resources/.scripts
run: bash machine-state.sh
68 changes: 68 additions & 0 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Node.js

on:
workflow_dispatch:
push:
branches: [ main ]
paths:
- 'binding/nodejs/**'
- '!binding/nodejs/README.md'
- 'lib/node/**'
- '.github/workflows/nodejs.yml'

pull_request:
branches: [ main, 'v[0-9]+.[0-9]+' ]
paths:
- 'binding/nodejs/**'
- '!binding/nodejs/README.md'
- 'lib/node/**'
- '.github/workflows/nodejs.yml'

defaults:
run:
working-directory: binding/nodejs

jobs:
build-github-hosted:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [16.x, 18.x, 20.x]

steps:
- uses: actions/checkout@v3

- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}

- name: Pre-build dependencies
run: npm install yarn

- name: Install dependencies
run: yarn install

- name: Test
run: yarn test index.test.ts --access_key=${{secrets.PV_VALID_ACCESS_KEY}}

build-self-hosted:
runs-on: ${{ matrix.machine }}

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64, jetson]

steps:
- uses: actions/checkout@v3

- name: Pre-build dependencies
run: npm install --global yarn

- name: Install dependencies
run: yarn install

- name: Test
run: yarn test index.test.ts --access_key=${{secrets.PV_VALID_ACCESS_KEY}}
Loading

0 comments on commit acf44f9

Please sign in to comment.