Skip to content

Commit

Permalink
Node v0.2.0 (#32)
Browse files Browse the repository at this point in the history
* nodejs binding

* demo

* workflows

* use new lib with electron fix

* post-release

---------

Co-authored-by: Pouya Rostam <[email protected]>
  • Loading branch information
albho and Pouya Rostam authored Jul 9, 2024
1 parent f17fa71 commit 430d79a
Show file tree
Hide file tree
Showing 46 changed files with 7,199 additions and 13 deletions.
5 changes: 4 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Bug report
description: Bugs in Orca
title: "Orca Issue: "
labels: ["bug"]
labels: [ "bug" ]
body:
- type: markdown
attributes:
Expand All @@ -22,7 +22,10 @@ body:
attributes:
label: SDK
options:
- 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
74 changes: 74 additions & 0 deletions .github/workflows/nodejs-demos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
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 ]
include:
- os: ubuntu-latest
install-dep: sudo apt install libasound2-dev -y
- os: macos-latest
install-dep: brew install python-setuptools
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: |
${{ matrix.install-dep }}
yarn install
- name: Test streaming
run: yarn streaming -a ${{secrets.PV_VALID_ACCESS_KEY}} -t "Hello, I am Orca!"

- name: Test file
run: yarn file -a ${{secrets.PV_VALID_ACCESS_KEY}} -t "Hello, I am Orca!" -o "./tmp.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 streaming
run: yarn streaming -a ${{secrets.PV_VALID_ACCESS_KEY}} -t "Hello, I am Orca!"

- name: Test file
run: yarn file -a ${{secrets.PV_VALID_ACCESS_KEY}} -t "Hello, I am Orca!" -o "./tmp.wav"
91 changes: 91 additions & 0 deletions .github/workflows/nodejs-perf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Node.js Performance

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

pull_request:
branches: [ main, 'v[0-9]+.[0-9]+' ]
paths:
- 'binding/nodejs/.test/perf.test.ts'
- 'lib/common/**'
- '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
proc_performance_threshold_sec: 0.2
- os: windows-latest
proc_performance_threshold_sec: 0.25
- os: macos-latest
proc_performance_threshold_sec: 0.2

steps:
- uses: actions/checkout@v3

- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x

- name: Install dependencies
run: yarn install

- name: Test
run: yarn test test/perf.test.ts --access_key=${{secrets.PV_VALID_ACCESS_KEY}} --num_test_iterations=50 --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
proc_performance_threshold_sec: 2.9
- machine: rpi3-64
proc_performance_threshold_sec: 2.1
- machine: rpi4-32
proc_performance_threshold_sec: 1.3
- machine: rpi4-64
proc_performance_threshold_sec: 1.3
- machine: rpi5-64
proc_performance_threshold_sec: 0.8
- machine: jetson
proc_performance_threshold_sec: 1.3

steps:
- uses: actions/checkout@v3

- name: Install dependencies
run: yarn install

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

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

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

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

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

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: 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
run: yarn test 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: Install dependencies
run: yarn install

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

0 comments on commit 430d79a

Please sign in to comment.