mirror of
https://github.com/k2-fsa/sherpa-onnx.git
synced 2026-01-09 07:41:06 +08:00
187 lines
4.9 KiB
YAML
187 lines
4.9 KiB
YAML
name: release-nuget-package
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: release-nuget-package
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build-libs:
|
|
name: ${{ matrix.os }} ${{ matrix.arch }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [windows-2019]
|
|
arch: [x64, x86, arm64]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Build sherpa-onnx
|
|
shell: bash
|
|
run: |
|
|
arch=${{ matrix.arch }}
|
|
opts=""
|
|
if [ $arch == x86 ]; then
|
|
opts="-A Win32"
|
|
elif [ $arch == arm64 ]; then
|
|
opts="-A ARM64"
|
|
fi
|
|
|
|
mkdir build
|
|
cd build
|
|
cmake \
|
|
$opts \
|
|
-DBUILD_SHARED_LIBS=ON \
|
|
-DCMAKE_INSTALL_PREFIX=./install \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \
|
|
-DBUILD_ESPEAK_NG_EXE=OFF \
|
|
-DSHERPA_ONNX_BUILD_C_API_EXAMPLES=OFF \
|
|
-DSHERPA_ONNX_ENABLE_BINARY=ON \
|
|
..
|
|
|
|
cmake --build . --target install --config Release
|
|
rm -rf install/pkgconfig
|
|
|
|
- name: Create tar file
|
|
shell: bash
|
|
run: |
|
|
arch=${{ matrix.arch }}
|
|
|
|
cd build
|
|
|
|
SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ../CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2)
|
|
|
|
dst=sherpa-onnx-$SHERPA_ONNX_VERSION-win-$arch
|
|
mv install/lib $dst
|
|
tar cjvf $dst.tar.bz2 $dst
|
|
ls -lh *.tar.bz2
|
|
mv *.tar.bz2 ../
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: windows-${{ matrix.arch }}
|
|
path: ./*.tar.bz2
|
|
|
|
# https://huggingface.co/docs/hub/spaces-github-actions
|
|
- name: Publish to huggingface
|
|
if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
|
env:
|
|
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
|
uses: nick-fields/retry@v3
|
|
with:
|
|
max_attempts: 20
|
|
timeout_seconds: 200
|
|
shell: bash
|
|
command: |
|
|
SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2)
|
|
git config --global user.email "csukuangfj@gmail.com"
|
|
git config --global user.name "Fangjun Kuang"
|
|
|
|
rm -rf huggingface
|
|
export GIT_CLONE_PROTECTION_ACTIVE=false
|
|
export GIT_LFS_SKIP_SMUDGE=1
|
|
|
|
git clone https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-onnx-libs huggingface
|
|
|
|
cd huggingface
|
|
git fetch
|
|
git pull
|
|
dst=windows-for-dotnet/$SHERPA_ONNX_VERSION
|
|
mkdir -p $dst
|
|
|
|
cp -v ../sherpa-onnx-*.tar.bz2 $dst/
|
|
|
|
git status
|
|
git lfs track "*.bz2"
|
|
|
|
git add .
|
|
|
|
git commit -m "add more files"
|
|
|
|
git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-onnx-libs main
|
|
rm -rf huggingface
|
|
|
|
release-nuget-package:
|
|
runs-on: ${{ matrix.os }}
|
|
needs: [build-libs]
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v4
|
|
with:
|
|
dotnet-version: 8.0.x
|
|
|
|
- name: Install Python dependencies
|
|
shell: bash
|
|
run: |
|
|
python3 -m pip install --upgrade pip Jinja2
|
|
|
|
- name: Retrieve artifact from windows x64
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: windows-x64
|
|
path: /tmp/windows-x64
|
|
|
|
- name: Retrieve artifact from windows x86
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: windows-x86
|
|
path: /tmp/windows-x86
|
|
|
|
- name: Retrieve artifact from windows arm64
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: windows-arm64
|
|
path: /tmp/windows-arm64
|
|
|
|
- name: Check dotnet
|
|
run: dotnet --info
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get install -y tree
|
|
ls -lh /tmp/
|
|
|
|
tree /tmp/windows*
|
|
echo "----"
|
|
|
|
rm -fv /tmp/windows*/*.lib
|
|
tree /tmp/windows*
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
cd scripts/dotnet
|
|
./run.sh
|
|
|
|
ls -lh /tmp/packages
|
|
|
|
- name: publish .Net packages to nuget.org
|
|
if: github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa'
|
|
shell: bash
|
|
env:
|
|
API_KEY: ${{ secrets.NUGET_API_KEY }}
|
|
run: |
|
|
# API_KEY is valid until 2025.04.26
|
|
cd /tmp/packages
|
|
dotnet nuget push ./org.k2fsa.sherpa.onnx.*.nupkg --skip-duplicate --api-key $API_KEY --source https://api.nuget.org/v3/index.json
|