Skip to content

Commit

Permalink
Merge pull request #120 from Picovoice/better-platform-detection
Browse files Browse the repository at this point in the history
  • Loading branch information
matt200-ok authored Jan 15, 2025
2 parents 9c99557 + 95b3b4e commit 6cc52b3
Show file tree
Hide file tree
Showing 52 changed files with 669 additions and 304 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/c-demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- os: ubuntu-latest
pv_recorder_platform: linux
- os: windows-latest
pv_recorder_platform: windows
pv_recorder_platform: windows-amd64
- os: macos-latest
pv_recorder_platform: mac-arm64

Expand All @@ -53,7 +53,7 @@ jobs:
runs-on: ${{ matrix.machine }}
strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows-arm64]
include:
- machine: rpi3-32
pv_recorder_platform: raspberry-pi3
Expand All @@ -67,6 +67,9 @@ jobs:
pv_recorder_platform: raspberry-pi5
- machine: rpi5-64
pv_recorder_platform: raspberry-pi5-64
- machine: pv-windows-arm64
pv_recorder_platform: windows-arm64
shell: pwsh

steps:
- uses: actions/checkout@v3
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/dotnet-demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, pv-windows-arm64]
include:
- machine: pv-windows-arm64
shell: pwsh

steps:
- uses: actions/checkout@v3
Expand Down
58 changes: 39 additions & 19 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,11 @@ jobs:
build-github-hosted:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
dotnet-version: [2.1.x, 3.0.x, 3.1.x, 5.0.x, 6.0.x, 8.0.x]
dotnet-version: [6.0.x, 8.0.x]
include:
- dotnet-version: 2.1.x
binding-framework: netstandard2.0
test-framework: netcoreapp2.1.30
- dotnet-version: 3.0.x
binding-framework: netcoreapp3.0
test-framework: netcoreapp3.0
- dotnet-version: 3.1.x
binding-framework: netcoreapp3.0
test-framework: netcoreapp3.1
- dotnet-version: 5.0.x
binding-framework: netcoreapp3.0
test-framework: net5.0
- dotnet-version: 6.0.x
binding-framework: net6.0
test-framework: net6.0
Expand All @@ -55,13 +44,19 @@ jobs:
test-framework: net8.0

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up .NET
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ matrix.dotnet-version }}

- name: Set up .NET (8)
if: ${{ matrix.os == 'ubuntu-latest' && matrix.dotnet-version == '6.0.x' }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x

- name: Build binding
run: dotnet build PvRecorder/PvRecorder.csproj --framework ${{ matrix.binding-framework }}

Expand All @@ -72,14 +67,39 @@ jobs:
runs-on: ${{ matrix.machine }}

strategy:
fail-fast: false
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-ios]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-ios, pv-windows-arm64]
dotnet-version: [6.0.x, 8.0.x]
include:
- dotnet-version: 6.0.x
binding-framework: net6.0
test-framework: net6.0
- dotnet-version: 8.0.x
binding-framework: net8.0
test-framework: net8.0
- machine: pv-windows
dotnet-version: 2.1.x
binding-framework: netstandard2.0
test-framework: netcoreapp2.1
- machine: pv-windows
dotnet-version: 3.0.x
binding-framework: netcoreapp3.0
test-framework: netcoreapp3.0
- machine: pv-windows
dotnet-version: 3.1.x
binding-framework: netcoreapp3.0
test-framework: netcoreapp3.1
- machine: pv-windows
dotnet-version: 5.0.x
binding-framework: netcoreapp3.0
test-framework: net5.0

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Build binding
run: dotnet build PvRecorder/PvRecorder.csproj --framework net8.0
run: dotnet build PvRecorder/PvRecorder.csproj --framework ${{ matrix.binding-framework }}

- name: Test
run: dotnet test --framework net8.0 -v n
run: dotnet test --framework ${{ matrix.test-framework }} -v n
2 changes: 1 addition & 1 deletion .github/workflows/go-demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-windows-arm64]

steps:
- uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-ios]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-windows-arm64, pv-ios]

steps:
- uses: actions/checkout@v3
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/nodejs-codestyle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ jobs:
with:
node-version: lts/*

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

- name: Run Binding Linter
run: yarn && yarn lint
working-directory: binding/nodejs
working-directory: binding/nodejs
18 changes: 17 additions & 1 deletion .github/workflows/nodejs-demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,14 @@ jobs:
with:
node-version: ${{ matrix.node-version }}

# ************ REMOVE AFTER RELEASE ***************
- name: build local binding
run: |
yarn install
yarn build
working-directory: binding/nodejs
# ************ REMOVE AFTER RELEASE ***************

- name: Install dependencies
run: yarn install

Expand All @@ -49,13 +57,21 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-ios]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-ios, pv-windows, pv-windows-arm64]

steps:
- uses: actions/checkout@v3
with:
submodules: recursive

# ************ REMOVE AFTER RELEASE ***************
- name: build local binding
run: |
yarn install
yarn build
working-directory: binding/nodejs
# ************ REMOVE AFTER RELEASE ***************

- name: Install dependencies
run: yarn install

Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,6 @@ jobs:
with:
node-version: ${{ matrix.node-version }}

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

- name: Install dependencies
run: yarn install

Expand All @@ -60,7 +57,7 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-ios]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-windows-arm64, pv-ios]

steps:
- uses: actions/checkout@v3
Expand Down
39 changes: 39 additions & 0 deletions .github/workflows/python-demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,14 @@ jobs:
- name: Pre-build dependencies
run: python -m pip install --upgrade pip

# ************ REMOVE AFTER RELEASE ***************
- name: build local binding
run: |
python3 -m pip install setuptools wheel
python3 -m setup sdist bdist_wheel
working-directory: binding/python
# ************ REMOVE AFTER RELEASE ***************

- name: Install dependencies
run: pip install -r requirements.txt

Expand All @@ -55,6 +63,13 @@ jobs:
steps:
- uses: actions/checkout@v3

# ************ REMOVE AFTER RELEASE ***************
- name: build local binding
run: |
python3 -m setup sdist bdist_wheel
working-directory: binding/python
# ************ REMOVE AFTER RELEASE ***************

- name: Install dependencies
run: |
python3 -m venv .venv
Expand All @@ -66,3 +81,27 @@ jobs:
python3 -m venv .venv
source .venv/bin/activate
python3 pv_recorder_demo.py --show_audio_devices
build-windows-arm64:
runs-on: ${{ matrix.machine }}

strategy:
matrix:
machine: [pv-windows-arm64]

steps:
- uses: actions/checkout@v3

# ************ REMOVE AFTER RELEASE ***************
- name: build local binding
run: |
python3 -m pip install setuptools wheel
python3 -m setup sdist bdist_wheel
working-directory: binding/python
# ************ REMOVE AFTER RELEASE ***************

- name: Install dependencies
run: pip3 install -r requirements.txt

- name: Run demo
run: python3 pv_recorder_demo.py --show_audio_devices
2 changes: 1 addition & 1 deletion .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-ios]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-windows-arm64, pv-ios]

steps:
- uses: actions/checkout@v3
Expand Down
12 changes: 2 additions & 10 deletions .github/workflows/rust-codestyle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,7 @@ jobs:
working-directory: binding/rust

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
uses: dtolnay/rust-toolchain@stable

- name: Run clippy
run: cargo clippy -- -D warnings
Expand All @@ -69,11 +65,7 @@ jobs:
working-directory: binding/rust

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
uses: dtolnay/rust-toolchain@stable

- name: Run clippy
run: cargo clippy -- -D warnings
14 changes: 2 additions & 12 deletions .github/workflows/rust-demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,7 @@ jobs:
working-directory: binding/rust

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
uses: dtolnay/rust-toolchain@stable

- name: Rust build demo
run: cargo build --verbose
Expand All @@ -60,7 +56,7 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows-arm64]

steps:
- uses: actions/checkout@v3
Expand All @@ -69,12 +65,6 @@ jobs:
run: bash copy.sh
working-directory: binding/rust

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

- name: Rust build demo
run: cargo build --verbose

Expand Down
19 changes: 3 additions & 16 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,6 @@ jobs:
- name: Rust pre-build
run: bash copy.sh

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Build
run: cargo build --verbose

Expand All @@ -68,30 +61,24 @@ jobs:

strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-ios]
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-32, rpi5-64, pv-windows, pv-windows-arm64, pv-ios]

steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Rust pre-build
if: matrix.machine != 'pv-windows'
if: matrix.machine != 'pv-windows' && matrix.machine != 'pv-windows-arm64'
run: bash copy.sh

- name: Rust pre-build windows
if: matrix.machine == 'pv-windows'
if: matrix.machine == 'pv-windows' || matrix.machine == 'pv-windows-arm64'
run: |
New-Item -Path "." -Name "data" -ItemType "directory"
New-Item -Path ".\data" -Name "lib" -ItemType "directory"
Copy-Item -Path "..\..\lib\windows" -Destination ".\data\lib" -Recurse
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

- name: Build
run: cargo build --verbose

Expand Down
Loading

0 comments on commit 6cc52b3

Please sign in to comment.