build-wasm-simd.yaml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. name: wasm-simd
  2. on:
  3. push:
  4. branches:
  5. - master
  6. paths:
  7. - '.github/workflows/build-wasm-simd.yaml'
  8. - 'CMakeLists.txt'
  9. - 'cmake/**'
  10. - 'sherpa-ncnn/csrc/*'
  11. - 'wasm/*'
  12. pull_request:
  13. branches:
  14. - master
  15. paths:
  16. - '.github/workflows/build-wasm-simd.yaml'
  17. - 'CMakeLists.txt'
  18. - 'cmake/**'
  19. - 'sherpa-ncnn/csrc/*'
  20. - 'wasm/*'
  21. release:
  22. types:
  23. - published
  24. workflow_dispatch:
  25. inputs:
  26. release:
  27. description: "Whether to release"
  28. type: boolean
  29. env:
  30. RELEASE:
  31. |- # Release if there is a release tag name or a release flag in workflow_dispatch
  32. ${{ github.event.release.tag_name != '' || github.event.inputs.release == 'true' }}
  33. concurrency:
  34. group: build-wasm-simd-${{ github.ref }}
  35. cancel-in-progress: true
  36. jobs:
  37. wasm-simd:
  38. runs-on: ${{ matrix.os }}
  39. strategy:
  40. fail-fast: false
  41. matrix:
  42. os: [ubuntu-latest]
  43. steps:
  44. - uses: actions/checkout@v4
  45. with:
  46. fetch-depth: 0
  47. - name: Install emsdk
  48. uses: mymindstorm/setup-emsdk@v14
  49. - name: View emsdk version
  50. shell: bash
  51. run: |
  52. emcc -v
  53. echo "--------------------"
  54. emcc --check
  55. - name: Download model files
  56. shell: bash
  57. run: |
  58. cd wasm/assets
  59. ls -lh
  60. echo "----------"
  61. wget -q https://github.com/k2-fsa/sherpa-ncnn/releases/download/models/sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13.tar.bz2
  62. tar xvf sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13.tar.bz2
  63. mv -v sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13/*pnnx.ncnn.param .
  64. mv -v sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13/*pnnx.ncnn.bin .
  65. mv -v sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13/tokens.txt .
  66. rm -rf sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13
  67. rm -v sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13.tar.bz2
  68. ls -lh
  69. - name: Build sherpa-ncnn for WebAssembly
  70. shell: bash
  71. run: |
  72. ./build-wasm-simd.sh
  73. - name: collect files
  74. shell: bash
  75. run: |
  76. SHERPA_NCNN_VERSION=v$(grep "SHERPA_NCNN_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2)
  77. mv build-wasm-simd/install/bin/wasm sherpa-ncnn-wasm-simd-${SHERPA_NCNN_VERSION}
  78. ls -lh sherpa-ncnn-wasm-simd-${SHERPA_NCNN_VERSION}
  79. tar cjfv sherpa-ncnn-wasm-simd-${SHERPA_NCNN_VERSION}.tar.bz2 ./sherpa-ncnn-wasm-simd-${SHERPA_NCNN_VERSION}
  80. - name: Upload wasm files
  81. uses: actions/upload-artifact@v4
  82. with:
  83. name: sherpa-ncnn-wasm-simd
  84. path: ./sherpa-ncnn-wasm-simd-*.tar.bz2
  85. - name: Release wasm files
  86. if: env.RELEASE == 'true'
  87. uses: svenstaro/upload-release-action@v2
  88. with:
  89. file_glob: true
  90. overwrite: true
  91. file: ./sherpa-ncnn-wasm-simd*.tar.bz2