@@ -184,6 +184,76 @@ jobs:
184184 asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-linux-amd64.tar.gz
185185 asset_content_type : application/gzip
186186
187+ ubuntu-amd64-vulkan-build :
188+ runs-on : ubuntu-18-04-cuda-11-7
189+ needs : [create-draft-release, set-nitro-version]
190+ if : always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
191+ permissions :
192+ contents : write
193+ steps :
194+ - name : Clone
195+ id : checkout
196+ uses : actions/checkout@v3
197+ with :
198+ submodules : recursive
199+
200+ - name : Prepare Vulkan SDK
201+ uses : humbletim/setup-vulkan-sdk@v1.2.0
202+ with :
203+ vulkan-query-version : 1.3.204.0
204+ vulkan-components : Vulkan-Headers, Vulkan-Loader
205+ vulkan-use-cache : true
206+
207+ - name : Build
208+ id : make_build
209+ run : |
210+ ldd --version
211+ ./install_deps.sh
212+ mkdir build && cd build
213+ cmake -DLLAMA_NATIVE=OFF -DLLAMA_VULKAN=OFF -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }} ..
214+ make -j $(nproc)
215+ ls -la
216+
217+ - name : Package
218+ shell : bash
219+ run : |
220+ mkdir -p nitro
221+ cp build/nitro nitro/
222+ tar -czvf nitro.tar.gz nitro
223+
224+ - name : Upload Artifact
225+ uses : actions/upload-artifact@v2
226+ if : github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
227+ with :
228+ name : nitro-linux-amd64
229+ path : ./nitro
230+
231+ - name : Run e2e testing - LLama.CPP
232+ shell : bash
233+ run : |
234+ # run e2e testing
235+ cd nitro
236+ chmod +x ../.github/scripts/e2e-test-llama-linux-and-mac.sh && ../.github/scripts/e2e-test-llama-linux-and-mac.sh ./nitro ${{ env.LLM_MODEL_URL }}
237+ rm -rf uploads/
238+
239+ - name : Run e2e testing - Whisper.CPP
240+ shell : bash
241+ run : |
242+ # run e2e testing
243+ cd nitro
244+ chmod +x ../.github/scripts/e2e-test-whisper-linux-and-mac.sh && ../.github/scripts/e2e-test-whisper-linux-and-mac.sh ./nitro ${{ env.WHISPER_MODEL_URL }}
245+ rm -rf uploads/
246+
247+ - uses : actions/upload-release-asset@v1.0.1
248+ if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
249+ env :
250+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
251+ with :
252+ upload_url : ${{ needs.create-draft-release.outputs.upload_url }}
253+ asset_path : ./nitro.tar.gz
254+ asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-linux-amd64-vulkan.tar.gz
255+ asset_content_type : application/gzip
256+
187257 ubuntu-amd64-cuda-build :
188258 runs-on : ubuntu-18-04-cuda-${{ matrix.cuda }}
189259 needs : [create-draft-release, set-nitro-version]
@@ -250,7 +320,7 @@ jobs:
250320 asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-linux-amd64-cuda-${{ matrix.cuda }}.tar.gz
251321 asset_content_type : application/gzip
252322
253- macOS-M -build :
323+ macOS-silicon -build :
254324 runs-on : mac-silicon
255325 needs : [create-draft-release, set-nitro-version]
256326 if : always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
@@ -328,7 +398,7 @@ jobs:
328398 asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-mac-arm64.tar.gz
329399 asset_content_type : application/gzip
330400
331- macOS-Intel -build :
401+ macOS-amd64 -build :
332402 runs-on : macos-latest
333403 needs : [create-draft-release, set-nitro-version]
334404 if : always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
@@ -397,6 +467,82 @@ jobs:
397467 asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-mac-amd64.tar.gz
398468 asset_content_type : application/gzip
399469
470+ macOS-amd64-vulkan-build :
471+ runs-on : macos-latest
472+ needs : [create-draft-release, set-nitro-version]
473+ if : always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
474+ permissions :
475+ contents : write
476+ steps :
477+ - name : Clone
478+ id : checkout
479+ uses : actions/checkout@v3
480+ with :
481+ submodules : recursive
482+
483+ - name : Dependencies
484+ id : depends
485+ continue-on-error : true
486+ run : |
487+ brew update
488+ brew install sdl2
489+
490+ - name : Prepare Vulkan SDK
491+ uses : humbletim/setup-vulkan-sdk@v1.2.0
492+ with :
493+ vulkan-query-version : 1.3.204.0
494+ vulkan-components : Vulkan-Headers, Vulkan-Loader
495+ vulkan-use-cache : true
496+
497+ - name : Build
498+ id : cmake_build
499+ run : |
500+ ./install_deps.sh
501+ mkdir build && cd build
502+ cmake -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }} -DLLAMA_VULKAN=OFF -DLLAMA_METAL=OFF ..
503+ CC=gcc-8 make -j $(sysctl -n hw.ncp)
504+ ls -la
505+
506+ - name : Package
507+ shell : bash
508+ run : |
509+ mkdir -p nitro
510+ cp build/nitro nitro/
511+ tar -czvf nitro.tar.gz nitro
512+
513+ - name : Upload Artifact
514+ uses : actions/upload-artifact@v2
515+ if : github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
516+ with :
517+ name : nitro-mac-amd64
518+ path : ./nitro
519+
520+ - name : Run e2e testing - LLama.CPP
521+ shell : bash
522+ run : |
523+ # run e2e testing
524+ cd nitro
525+ chmod +x ../.github/scripts/e2e-test-llama-linux-and-mac.sh && ../.github/scripts/e2e-test-llama-linux-and-mac.sh ./nitro ${{ env.LLM_MODEL_URL }}
526+ rm -rf uploads/
527+
528+ - name : Run e2e testing - Whisper.CPP
529+ shell : bash
530+ run : |
531+ # run e2e testing
532+ cd nitro
533+ chmod +x ../.github/scripts/e2e-test-whisper-linux-and-mac.sh && ../.github/scripts/e2e-test-whisper-linux-and-mac.sh ./nitro ${{ env.WHISPER_MODEL_URL }}
534+ rm -rf uploads/
535+
536+ - uses : actions/upload-release-asset@v1.0.1
537+ if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
538+ env :
539+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
540+ with :
541+ upload_url : ${{ needs.create-draft-release.outputs.upload_url }}
542+ asset_path : ./nitro.tar.gz
543+ asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-mac-amd64-vulkan.tar.gz
544+ asset_content_type : application/gzip
545+
400546 windows-amd64-build :
401547 runs-on : windows-latest
402548 needs : [create-draft-release, set-nitro-version]
@@ -483,6 +629,89 @@ jobs:
483629 asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-win-amd64.tar.gz
484630 asset_content_type : application/gzip
485631
632+ windows-amd64-vulkan-build :
633+ runs-on : windows-latest
634+ needs : [create-draft-release, set-nitro-version]
635+ if : always() && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.set-nitro-version.result == 'success'
636+ permissions :
637+ contents : write
638+
639+ steps :
640+ - name : Clone
641+
642+ id : checkout
643+ uses : actions/checkout@v3
644+ with :
645+ submodules : recursive
646+
647+ - name : Setup VSWhere.exe
648+ uses : warrenbuckley/Setup-VSWhere@v1
649+ with :
650+ version : latest
651+ silent : true
652+ env :
653+ ACTIONS_ALLOW_UNSECURE_COMMANDS : true
654+
655+ - name : Add msbuild to PATH
656+ uses : microsoft/setup-msbuild@v1
657+
658+ - name : Fetch SDL2 and set SDL2_DIR version 2.28.5
659+ run : |
660+ C:/msys64/usr/bin/wget.exe -qO sdl2.zip https://github.com/libsdl-org/SDL/releases/download/release-2.28.5/SDL2-devel-2.28.5-VC.zip
661+ 7z x sdl2.zip
662+ echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-2.28.5/cmake" >> $env:GITHUB_ENV
663+
664+ - name : actions-setup-cmake
665+ uses : jwlawson/actions-setup-cmake@v1.14.1
666+
667+ - name : Prepare Vulkan SDK
668+ uses : humbletim/setup-vulkan-sdk@v1.2.0
669+ with :
670+ vulkan-query-version : 1.3.204.0
671+ vulkan-components : Vulkan-Headers, Vulkan-Loader
672+ vulkan-use-cache : true
673+
674+ - name : Build
675+ id : cmake_build
676+ shell : cmd
677+ run : |
678+ cmake -S ./nitro_deps -B ./build_deps/nitro_deps
679+ cmake --build ./build_deps/nitro_deps --config Release
680+ mkdir -p build
681+ cd build
682+ cmake .. -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_VULKAN=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=RELEASE -DWHISPER_SDL2=ON -DNITRO_VERSION=${{ needs.set-nitro-version.outputs.version }}
683+ cmake --build . --config Release -j "%NUMBER_OF_PROCESSORS%"
684+
685+ - name : Pack artifacts
686+ id : pack_artifacts
687+ shell : cmd
688+ run : |
689+ robocopy build_deps\_install\bin\ .\build\Release\ zlib.dll
690+ robocopy build\bin\Release\ .\build\Release\ llama.dll
691+ robocopy build\bin\Release\ .\build\Release\ whisper.dll
692+ robocopy "$env:SDL2_DIR\..\lib\2.28.5\" .\build\Release\ SDL2.dll
693+ dotnet tool install --global AzureSignTool
694+ azuresigntool.exe sign -kvu "${{ secrets.AZURE_KEY_VAULT_URI }}" -kvi "${{ secrets.AZURE_CLIENT_ID }}" -kvt "${{ secrets.AZURE_TENANT_ID }}" -kvs "${{ secrets.AZURE_CLIENT_SECRET }}" -kvc ${{ secrets.AZURE_CERT_NAME }} -tr http://timestamp.globalsign.com/tsa/r6advanced1 -v ".\build\Release\nitro.exe"
695+ 7z a -ttar temp.tar .\build\Release\*
696+ 7z a -tgzip nitro.tar.gz temp.tar
697+
698+ - name : Upload Artifact
699+ uses : actions/upload-artifact@v2
700+ if : github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
701+ with :
702+ name : nitro-win-amd64
703+ path : ./build/Release
704+
705+ - uses : actions/upload-release-asset@v1.0.1
706+ if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
707+ env :
708+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
709+ with :
710+ upload_url : ${{ needs.create-draft-release.outputs.upload_url }}
711+ asset_path : ./nitro.tar.gz
712+ asset_name : nitro-${{ needs.create-draft-release.outputs.version }}-win-amd64-vulkan.tar.gz
713+ asset_content_type : application/gzip
714+
486715 windows-amd64-cuda-build :
487716 runs-on : windows-cuda-${{ matrix.cuda }}
488717 needs : [create-draft-release, set-nitro-version]
@@ -581,10 +810,13 @@ jobs:
581810 [
582811 ubuntu-amd64-build,
583812 ubuntu-amd64-cuda-build,
584- macOS-M -build,
585- macOS-Intel -build,
813+ macOS-silicon -build,
814+ macOS-amd64 -build,
586815 windows-amd64-build,
587816 windows-amd64-cuda-build,
817+ macOS-amd64-vulkan-build,
818+ ubuntu-amd64-vulkan-build,
819+ windows-amd64-vulkan-build,
588820 ]
589821 permissions :
590822 contents : write
@@ -596,16 +828,19 @@ jobs:
596828 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
597829
598830 noti-discord-nightly :
599- if : always() && github.event_name == 'schedule' && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.ubuntu-amd64-build.result == 'success' && needs.ubuntu-amd64-cuda-build.result == 'success' && needs.macOS-M -build.result == 'success' && needs.macOS-Intel -build.result == 'success' && needs.windows-amd64-build.result == 'success' && needs.windows-amd64-cuda-build.result == 'success'
831+ if : always() && github.event_name == 'schedule' && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.ubuntu-amd64-build.result == 'success' && needs.ubuntu-amd64-cuda-build.result == 'success' && needs.macOS-silicon -build.result == 'success' && needs.macOS-amd64 -build.result == 'success' && needs.windows-amd64-build.result == 'success' && needs.windows-amd64-cuda-build.result == 'success'
600832 needs :
601833 [
602834 create-draft-release,
603835 ubuntu-amd64-build,
604836 ubuntu-amd64-cuda-build,
605- macOS-M -build,
606- macOS-Intel -build,
837+ macOS-silicon -build,
838+ macOS-amd64 -build,
607839 windows-amd64-build,
608840 windows-amd64-cuda-build,
841+ macOS-amd64-vulkan-build,
842+ ubuntu-amd64-vulkan-build,
843+ windows-amd64-vulkan-build,
609844 ]
610845 runs-on : ubuntu-latest
611846 steps :
@@ -632,16 +867,19 @@ jobs:
632867 GITHUB_RUN_ID : ${{ github.run_id }}
633868
634869 noti-discord-manual :
635- if : always() && github.event_name == 'workflow_dispatch' && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.ubuntu-amd64-build.result == 'success' && needs.ubuntu-amd64-cuda-build.result == 'success' && needs.macOS-M -build.result == 'success' && needs.macOS-Intel -build.result == 'success' && needs.windows-amd64-build.result == 'success' && needs.windows-amd64-cuda-build.result == 'success'
870+ if : always() && github.event_name == 'workflow_dispatch' && (needs.create-draft-release.result == 'success' || needs.create-draft-release.result == 'skipped') && needs.ubuntu-amd64-build.result == 'success' && needs.ubuntu-amd64-cuda-build.result == 'success' && needs.macOS-silicon -build.result == 'success' && needs.macOS-amd64 -build.result == 'success' && needs.windows-amd64-build.result == 'success' && needs.windows-amd64-cuda-build.result == 'success'
636871 needs :
637872 [
638873 create-draft-release,
639874 ubuntu-amd64-build,
640875 ubuntu-amd64-cuda-build,
641- macOS-M -build,
642- macOS-Intel -build,
876+ macOS-silicon -build,
877+ macOS-amd64 -build,
643878 windows-amd64-build,
644879 windows-amd64-cuda-build,
880+ macOS-amd64-vulkan-build,
881+ ubuntu-amd64-vulkan-build,
882+ windows-amd64-vulkan-build,
645883 ]
646884 runs-on : ubuntu-latest
647885 steps :
0 commit comments