release-nuget-package #77
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | | |
git config --global user.email "[email protected]" | |
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:[email protected]/csukuangfj/sherpa-onnx-libs huggingface | |
cd huggingface | |
git fetch | |
git pull | |
mkdir -p windows-for-dotnet | |
cp -v ../sherpa-onnx-*.tar.bz2 ./windows-for-dotnet | |
git status | |
git lfs track "*.bz2" | |
git add . | |
git commit -m "add more files" | |
git push https://csukuangfj:[email protected]/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: | | |
6.0.x | |
7.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 |