205 lines
5.2 KiB
YAML
205 lines
5.2 KiB
YAML
name: run-python-test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '.github/workflows/run-python-test.yaml'
|
|
- '.github/scripts/test-python.sh'
|
|
- 'cmake/**'
|
|
- 'sherpa-onnx/csrc/*'
|
|
- 'python-api-examples/**'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '.github/workflows/run-python-test.yaml'
|
|
- '.github/scripts/test-python.sh'
|
|
- 'cmake/**'
|
|
- 'sherpa-onnx/csrc/*'
|
|
- 'python-api-examples/**'
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: run-python-test-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
run-python-test:
|
|
name: ${{ matrix.os }} ${{ matrix.python-version }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-24.04
|
|
python-version: "3.8"
|
|
- os: ubuntu-24.04
|
|
python-version: "3.9"
|
|
|
|
- os: ubuntu-24.04
|
|
python-version: "3.10"
|
|
- os: ubuntu-24.04
|
|
python-version: "3.11"
|
|
- os: ubuntu-24.04
|
|
python-version: "3.12"
|
|
- os: ubuntu-24.04
|
|
python-version: "3.13"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Update version
|
|
shell: bash
|
|
run: |
|
|
./new-release.sh
|
|
git diff .
|
|
|
|
- name: Display OS version
|
|
shell: bash
|
|
run: |
|
|
uname -a
|
|
find "/etc" -maxdepth 1 -type f -name "*version" -exec head -n 100 {} \;
|
|
|
|
- name: ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
key: ${{ matrix.os }}-python-${{ matrix.python-version }}
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install Python dependencies
|
|
shell: bash
|
|
run: |
|
|
python3 -m pip install --upgrade pip numpy pypinyin sentencepiece>=0.1.96 soundfile
|
|
python3 -m pip install wheel twine setuptools
|
|
|
|
- uses: afoley587/setup-ffmpeg@main
|
|
id: setup-ffmpeg
|
|
with:
|
|
ffmpeg-version: release
|
|
architecture: ''
|
|
github-token: ${{ github.server_url == 'https://github.com' && github.token || '' }}
|
|
|
|
- name: Install ninja
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get install ninja-build
|
|
|
|
- name: Display ninja version
|
|
shell: bash
|
|
run: |
|
|
ninja --version
|
|
ninja --help || true
|
|
which ninja
|
|
|
|
- name: Display site packages dir
|
|
shell: bash
|
|
run: |
|
|
python3 -c 'import site; print(site.getsitepackages())'
|
|
p=$(python3 -c 'import site; print(site.getsitepackages())')
|
|
echo "p: $p"
|
|
|
|
- name: Install patchelf
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get update -q
|
|
sudo apt-get install -q -y patchelf
|
|
patchelf --help
|
|
|
|
- name: Build sherpa-onnx
|
|
shell: bash
|
|
run: |
|
|
export CMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
|
cmake --version
|
|
export SHERPA_ONNX_CMAKE_ARGS="-G Ninja -DCMAKE_BUILD_TYPE=Release"
|
|
export SHERPA_ONNX_MAKE_ARGS="-j 6"
|
|
|
|
python3 setup.py bdist_wheel
|
|
|
|
- name: Patch wheels
|
|
shell: bash
|
|
run: |
|
|
mkdir ./dist2
|
|
sudo ./scripts/wheel/patch_wheel.py --in-dir ./dist --out-dir ./dist2
|
|
|
|
- name: Install sherpa-onnx
|
|
shell: bash
|
|
run: |
|
|
ls -lh dist2
|
|
|
|
python3 -m pip install ./dist2/*.whl
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.os }}-${{ matrix.python-version }}-whl
|
|
path: ./dist
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.os }}-${{ matrix.python-version }}-whl-patched
|
|
path: ./dist2
|
|
|
|
- name: Show dependencies
|
|
shell: bash
|
|
run: |
|
|
cd dist
|
|
mkdir t
|
|
cd t
|
|
unzip ../*.whl
|
|
readelf -d _sherpa_onnx*.so
|
|
|
|
echo "----"
|
|
|
|
readelf -d sherpa_onnx-*.data/data/bin/sherpa-onnx
|
|
|
|
- name: Show dependencies (patched)
|
|
shell: bash
|
|
run: |
|
|
cd dist2
|
|
mkdir t
|
|
cd t
|
|
unzip ../*.whl
|
|
readelf -d _sherpa_onnx*.so
|
|
|
|
echo "----"
|
|
|
|
readelf -d sherpa_onnx-*.data/data/bin/sherpa-onnx
|
|
|
|
- name: Test sherpa-onnx
|
|
shell: bash
|
|
run: |
|
|
export OS=${{ matrix.os }}
|
|
|
|
p=$(python3 -c 'import site; print(site.getsitepackages()[0])')
|
|
echo "p: $p"
|
|
p=$p/sherpa_onnx/lib
|
|
echo "p: $p"
|
|
ls -lh $p
|
|
|
|
export LD_LIBRARY_PATH=$p:$LD_LIBRARY_PATH
|
|
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
|
|
|
|
.github/scripts/test-python.sh
|
|
.github/scripts/test-speaker-recognition-python.sh
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: source-separation-${{ matrix.os }}-${{ matrix.python-version }}-whl
|
|
path: ./source-separation
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: tts-generated-test-files-${{ matrix.os }}-${{ matrix.python-version }}
|
|
path: tts
|