ci: add clang for windows arm64 #221
Workflow file for this run
This file contains hidden or 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: CI | ||
|
Check failure on line 1 in .github/workflows/menlo-build.yml
|
||
| on: | ||
| push: | ||
| tags: ["b[0-9]+"] | ||
| paths: | ||
| [ | ||
| ".github/scripts/**", | ||
| ".github/workflows/build.yml", | ||
| ".github/workflows/menlo-build.yml", | ||
| "**/CMakeLists.txt", | ||
| "**/Makefile", | ||
| "menlo/Makefile", | ||
| "**/*.h", | ||
| "**/*.hpp", | ||
| "**/*.c", | ||
| "**/*.cpp", | ||
| "**/*.cu", | ||
| "**/*.cc", | ||
| "**/*.cxx", | ||
| "llama.cpp", | ||
| "!docs/**", | ||
| "!.gitignore", | ||
| "!README.md", | ||
| ] | ||
| workflow_dispatch: | ||
| pull_request: | ||
| branches: | ||
| - dev | ||
| env: | ||
| VULKAN_VERSION: 1.4.328.0 | ||
| jobs: | ||
| create-draft-release: | ||
| runs-on: ubuntu-latest | ||
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||
| outputs: | ||
| upload_url: ${{ steps.create_release.outputs.upload_url }} | ||
| version: ${{ steps.get_version.outputs.version }} | ||
| permissions: | ||
| contents: write | ||
| steps: | ||
| - name: Extract tag name | ||
| id: get_version | ||
| run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV && echo "::set-output name=version::${GITHUB_REF#refs/tags/}" | ||
| env: | ||
| GITHUB_REF: ${{ github.ref }} | ||
| - name: Create Draft Release | ||
| id: create_release | ||
| uses: softprops/action-gh-release@v2 | ||
| with: | ||
| tag_name: ${{ github.ref_name }} | ||
| token: ${{ secrets.GITHUB_TOKEN }} | ||
| name: "${{ env.VERSION }}" | ||
| draft: true | ||
| generate_release_notes: true | ||
| prerelease: false | ||
| build-and-test: | ||
| runs-on: ${{ matrix.runs-on }} | ||
| # needs: [create-draft-release] | ||
| timeout-minutes: 270 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| # - os: "linux" | ||
| # name: "common_cpus-x64" | ||
| # runs-on: "ubuntu-22-04-cuda-12-4" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "cuda-11-common_cpus-x64" | ||
| # runs-on: "ubuntu-22-04-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_CUDA=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "cuda-12-common_cpus-x64" | ||
| # runs-on: "ubuntu-22-04-cuda-12-4" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_CUDA=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "vulkan-common_cpus-x64" | ||
| # runs-on: "ubuntu-22-04" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_VULKAN=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: true | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "noavx-x64" | ||
| # runs-on: "ubuntu-20-04" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DGGML_F16C=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx-x64" | ||
| # runs-on: "ubuntu-20-04" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx512-x64" | ||
| # runs-on: "ubuntu-20-04" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "noavx-cuda-cu11.7-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DGGML_F16C=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx2-cuda-cu11.7-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx-cuda-cu11.7-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx512-cuda-cu11.7-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "noavx-cuda-cu12.0-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DGGML_F16C=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx2-cuda-cu12.0-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx-cuda-cu12.0-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "avx512-cuda-cu12.0-x64" | ||
| # runs-on: "ubuntu-20-04-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON " | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "linux" | ||
| # name: "vulkan-x64" | ||
| # runs-on: "ubuntu-22-04" | ||
| # cmake-flags: "-DBUILD_SHARED_LIBS=OFF -DGGML_VULKAN=ON -DLLAMA_CURL=OFF -DGGML_NATIVE=OFF " | ||
| # run-e2e: false | ||
| # vulkan: true | ||
| # ccache: true | ||
| # ccache-dir: "/home/runner/.ccache" | ||
| # - os: "macos" | ||
| # name: "x64" | ||
| # runs-on: "macos-selfhosted-12" | ||
| # cmake-flags: "-DCMAKE_BUILD_RPATH=\"@loader_path\" -DGGML_METAL=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=ON" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: false | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "macos" | ||
| # name: "arm64" | ||
| # runs-on: "macos-selfhosted-12-arm64" | ||
| # cmake-flags: "-DCMAKE_BUILD_RPATH=\"@loader_path\" -DGGML_METAL_EMBED_LIBRARY=ON -DBUILD_SHARED_LIBS=ON" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: false | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "noavx-cuda-cu12.0-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DGGML_F16C=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx2-cuda-cu12.0-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx-cuda-cu12.0-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx512-cuda-cu12.0-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "noavx-cuda-cu11.7-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DGGML_F16C=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx2-cuda-cu11.7-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx-cuda-cu11.7-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx512-cuda-cu11.7-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx2-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_NATIVE=OFF -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
| # run-e2e: true | ||
| # vulkan: false | ||
| # ccache: false | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "noavx-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DBUILD_SHARED_LIBS=OFF -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DGGML_F16C=OFF -DGGML_NATIVE=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: false | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
| # run-e2e: true | ||
| # vulkan: false | ||
| # ccache: false | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "avx512-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: false | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "vulkan-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DBUILD_SHARED_LIBS=OFF -DGGML_VULKAN=ON -DLLAMA_CURL=OFF -DGGML_NATIVE=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
| # vulkan: true | ||
| # run-e2e: false | ||
| # ccache: false | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "common_cpus-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "cuda-11-common_cpus-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_CUDA=ON -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "cuda-12-common_cpus-x64" | ||
| # runs-on: "windows-cuda-12-0" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_CUDA=ON -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: false | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| # - os: "win" | ||
| # name: "vulkan-common_cpus-x64" | ||
| # runs-on: "windows-cuda-11-7" | ||
| # cmake-flags: "-DLLAMA_CURL=OFF -DGGML_VULKAN=ON -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| # run-e2e: false | ||
| # vulkan: true | ||
| # ccache: true | ||
| # ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| - os: "win" | ||
| name: "windows-arm64" | ||
| runs-on: "windows-11-arm" | ||
| cmake-flags: "-DLLAMA_CURL=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
| run-e2e: false | ||
| vulkan: false | ||
| ccache: true | ||
| ccache-dir: 'C:\Users\ContainerAdministrator\AppData\Local\ccache' | ||
| steps: | ||
| - name: Clone | ||
| id: checkout | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| submodules: recursive | ||
| - name: Replace our Makefile | ||
| run: | | ||
| cat menlo/Makefile | tee Makefile | ||
| - name: use python for linux | ||
| continue-on-error: true | ||
| uses: actions/setup-python@v4 | ||
| with: | ||
| python-version: '3.10' | ||
| - name: Install tools on Windows | ||
| if: runner.os == 'Windows' | ||
| run: | | ||
| choco install ccache awscli make ccache ninja -y | ||
| - name: Install tools on Linux | ||
| if: runner.os == 'Linux' | ||
| run: | | ||
| sudo apt-get install -y ninja-build | ||
| python3 -m pip install awscli | ||
| if [ "${{ matrix.os }}${{ matrix.name }}" == "linuxarm64" ]; then | ||
| sudo apt-get install -y ccache | ||
| exit 0 | ||
| fi | ||
| cd /tmp | ||
| wget https://github.com/ccache/ccache/releases/download/v4.10.2/ccache-4.10.2-linux-x86_64.tar.xz | ||
| tar -xvf ccache-4.10.2-linux-x86_64.tar.xz | ||
| sudo cp ccache-4.10.2-linux-x86_64/ccache /usr/bin/ccache | ||
| ccache -V | ||
| rm -rf /tmp/ccache-4.10.2-linux-x86_64.tar.xz /tmp/ccache-4.10.2-linux-x86_64 | ||
| - name: Install coreutils macos | ||
| if: runner.os == 'macOS' | ||
| run: | | ||
| brew install coreutils | ||
| - name: Prepare Vulkan SDK Linux | ||
| if: ${{ matrix.vulkan && (matrix.os == 'linux') }} | ||
| run: | | ||
| wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - | ||
| sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list | ||
| sudo apt-get update -y | ||
| sudo apt-get install -y build-essential vulkan-sdk | ||
| - name: Install Clang for Windows Arm64 | ||
| if: ${{ matrix.os == 'win'}} && ${{ matrix.name == "windows-arm64" }} | ||
| run: | | ||
| choco install llvm | ||
| clang --version | ||
| - name: Prepare Vulkan SDK Windows | ||
| if: ${{ matrix.vulkan && (matrix.os == 'win') }} | ||
| continue-on-error: true | ||
| run: | | ||
| curl.exe -o $env:RUNNER_TEMP/VulkanSDK-Installer.exe -L "https://sdk.lunarg.com/sdk/download/${env:VULKAN_VERSION}/windows/vulkansdk-windows-X64-${env:VULKAN_VERSION}.exe" | ||
| & "$env:RUNNER_TEMP\VulkanSDK-Installer.exe" --accept-licenses --default-answer --confirm-command install | ||
| Add-Content $env:GITHUB_ENV "VULKAN_SDK=C:\VulkanSDK\${env:VULKAN_VERSION}" | ||
| Add-Content $env:GITHUB_PATH "C:\VulkanSDK\${env:VULKAN_VERSION}\bin" | ||
| - name: Get Cer for code signing | ||
| if: runner.os == 'macOS' | ||
| run: base64 -d <<< "$CODE_SIGN_P12_BASE64" > /tmp/codesign.p12 | ||
| shell: bash | ||
| env: | ||
| CODE_SIGN_P12_BASE64: ${{ secrets.CODE_SIGN_P12_BASE64 }} | ||
| - uses: apple-actions/import-codesign-certs@v2 | ||
| continue-on-error: true | ||
| if: runner.os == 'macOS' | ||
| with: | ||
| p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} | ||
| p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} | ||
| - uses: actions/setup-dotnet@v3 | ||
| if: runner.os == 'Windows' | ||
| with: | ||
| dotnet-version: "8.0.x" | ||
| - name: Add msbuild to PATH | ||
| if: runner.os == 'Windows' | ||
| uses: ilammy/[email protected] | ||
| - name: Build | ||
| id: build-and-test | ||
| run: | | ||
| make build-lib CMAKE_EXTRA_FLAGS="${{ matrix.cmake-flags }}" | ||
| - uses: 1arp/[email protected] | ||
| with: | ||
| path: 'llama' | ||
| isAbsolutePath: false | ||
| file: 'version.txt' | ||
| content: | | ||
| name: ${{ matrix.os }}-${{ matrix.name }} | ||
| version: ${{needs.create-draft-release.outputs.version}} | ||
| - name: Code Signing macOS | ||
| if: runner.os == 'macOS' | ||
| run: | | ||
| make codesign CODE_SIGN=true DEVELOPER_ID="${{ secrets.DEVELOPER_ID }}" | ||
| - name: Install Quill for notarization | ||
| if: runner.os == 'macOS' | ||
| run: | | ||
| curl -sSfL https://raw.githubusercontent.com/anchore/quill/main/install.sh | sh -s -- -b /usr/local/bin | ||
| quill --version | ||
| - name: Prepare notary key | ||
| if: runner.os == 'macOS' | ||
| run: | | ||
| base64 -d <<< "$NOTARIZE_P8_BASE64" > /tmp/notary-key.p8 | ||
| chmod 600 /tmp/notary-key.p8 | ||
| env: | ||
| NOTARIZE_P8_BASE64: ${{ secrets.NOTARIZE_P8_BASE64 }} | ||
| - name: Notarize macOS binaries | ||
| if: runner.os == 'macOS' | ||
| run: | | ||
| make notarize NOTARIZE=true QUILL_NOTARY_KEY_ID="${{ secrets.NOTARY_KEY_ID }}" QUILL_NOTARY_ISSUER="${{ secrets.NOTARY_ISSUER }}" QUILL_NOTARY_KEY="/tmp/notary-key.p8" | ||
| - name: Cleanup notary key | ||
| if: runner.os == 'macOS' | ||
| run: | | ||
| rm -f /tmp/notary-key.p8 | ||
| echo "Notary key cleaned up" | ||
| - name: Code Signing Windows | ||
| if: runner.os == 'Windows' | ||
| shell: cmd | ||
| run: | | ||
| set PATH=%PATH%;%USERPROFILE%\.dotnet\tools | ||
| make codesign CODE_SIGN=true AZURE_KEY_VAULT_URI="${{ secrets.AZURE_KEY_VAULT_URI }}" AZURE_CLIENT_ID="${{ secrets.AZURE_CLIENT_ID }}" AZURE_TENANT_ID="${{ secrets.AZURE_TENANT_ID }}" AZURE_CLIENT_SECRET="${{ secrets.AZURE_CLIENT_SECRET }}" AZURE_CERT_NAME="${{ secrets.AZURE_CERT_NAME }}" | ||
| - name: Package | ||
| run: | | ||
| cat llama/version.txt | ||
| make package | ||
| - name: Upload Artifact | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: llama-${{ matrix.os }}-${{ matrix.name }} | ||
| path: ./llama | ||
| - name: Calculate SHA512 Checksum (macOS) | ||
| if: runner.os == 'macOS' | ||
| run: | | ||
| sha512sum ./llama.tar.gz | awk '{ print $1 }' > sha512.txt | ||
| size=$(stat -f%z ./llama.tar.gz) # Sử dụng -f%z cho macOS | ||
| echo "checksum=$(cat sha512.txt)" >> $GITHUB_ENV | ||
| echo "size=$size" >> $GITHUB_ENV | ||
| - name: Calculate SHA512 Checksum (Windows) | ||
| if: runner.os == 'Windows' | ||
| shell: pwsh | ||
| run: | | ||
| CertUtil -hashfile ./llama.tar.gz SHA512 | Select-String -Pattern "^[0-9a-fA-F]+$" | Out-File sha512.txt | ||
| $size = (Get-Item ./llama.tar.gz).length | ||
| echo "checksum=$(Get-Content sha512.txt)" >> $env:GITHUB_ENV | ||
| echo "size=$size" >> $env:GITHUB_ENV | ||
| - name: Calculate SHA512 Checksum (Linux) | ||
| if: runner.os == 'Linux' | ||
| run: | | ||
| sha512sum ./llama.tar.gz | awk '{ print $1 }' > sha512.txt | ||
| size=$(stat -c%s ./llama.tar.gz) | ||
| echo "checksum=$(cat sha512.txt)" >> $GITHUB_ENV | ||
| echo "size=$size" >> $GITHUB_ENV | ||
| ## Write for matrix outputs workaround | ||
| - uses: cloudposse/github-action-matrix-outputs-write@v1 | ||
| id: out | ||
| with: | ||
| matrix-step-name: ${{ github.job }} | ||
| matrix-key: ${{ matrix.os }}-${{ matrix.name }} | ||
| outputs: |- | ||
| sha512: ${{ env.checksum }} | ||
| size: ${{ env.size }} | ||
| - uses: actions/[email protected] | ||
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| upload_url: ${{ needs.create-draft-release.outputs.upload_url }} | ||
| asset_path: ./llama.tar.gz | ||
| asset_name: llama-${{ needs.create-draft-release.outputs.version }}-bin-${{ matrix.os }}-${{ matrix.name }}.tar.gz | ||
| asset_content_type: application/gzip | ||
| - name: Remove Keychain | ||
| continue-on-error: true | ||
| if: always() && runner.os == 'macOS' | ||
| run: | | ||
| security delete-keychain signing_temp.keychain | ||
| ## Read matrix outputs | ||
| read: | ||
| runs-on: ubuntu-latest | ||
| needs: [build-and-test] | ||
| steps: | ||
| - uses: cloudposse/github-action-matrix-outputs-read@v1 | ||
| id: read | ||
| with: | ||
| matrix-step-name: build-and-test | ||
| outputs: | ||
| result: "${{ steps.read.outputs.result }}" | ||
| create-checksum-file: | ||
| runs-on: ubuntu-20-04 | ||
| permissions: | ||
| contents: write | ||
| needs: [read, create-draft-release] | ||
| steps: | ||
| - name: Download cuda dependencies from s3 and create checksum | ||
| run: | | ||
| wget https://minio.menlo.ai:9000/cicd/dist/cuda-dependencies/12.0/linux/cuda.tar.gz -O /tmp/cudart-llama-bin-linux-cu12.0-x64.tar.gz | ||
| wget https://minio.menlo.ai:9000/cicd/dist/cuda-dependencies/11.7/linux/cuda.tar.gz -O /tmp/cudart-llama-bin-linux-cu11.7-x64.tar.gz | ||
| wget https://minio.menlo.ai:9000/cicd/dist/cuda-dependencies/12.0/windows/cuda.tar.gz -O /tmp/cudart-llama-bin-win-cu12.0-x64.tar.gz | ||
| wget https://minio.menlo.ai:9000/cicd/dist/cuda-dependencies/11.7/windows/cuda.tar.gz -O /tmp/cudart-llama-bin-win-cu11.7-x64.tar.gz | ||
| version=${{ needs.create-draft-release.outputs.version }} | ||
| outputs=${{ toJson(needs.read.outputs.result) }} | ||
| echo $outputs | ||
| echo "version: $version" > checksum.yml | ||
| echo "files:" >> checksum.yml | ||
| echo "$outputs" | jq -r --arg version "$version" ' | ||
| .sha512 as $sha512 | | ||
| .size as $size | | ||
| (.sha512 | keys[]) as $key | | ||
| "- url: llama-\($version)-\($key).tar.gz\n sha512: >-\n \($sha512[$key])\n size: \($size[$key])" | ||
| ' >> checksum.yml | ||
| echo "- url: cudart-llama-bin-linux-cu12.0-x64.tar.gz" >> checksum.yml | ||
| echo " sha512: >-" >> checksum.yml | ||
| echo " $(sha512sum /tmp/cudart-llama-bin-linux-cu12.0-x64.tar.gz | awk '{ print $1 }')" >> checksum.yml | ||
| echo " size: $(stat -c%s /tmp/cudart-llama-bin-linux-cu12.0-x64.tar.gz)" >> checksum.yml | ||
| echo "- url: cudart-llama-bin-linux-cu11.7-x64.tar.gz" >> checksum.yml | ||
| echo " sha512: >-" >> checksum.yml | ||
| echo " $(sha512sum /tmp/cudart-llama-bin-linux-cu11.7-x64.tar.gz | awk '{ print $1 }')" >> checksum.yml | ||
| echo " size: $(stat -c%s /tmp/cudart-llama-bin-linux-cu11.7-x64.tar.gz)" >> checksum.yml | ||
| echo "- url: cudart-llama-bin-win-cu11.7-x64.tar.gz" >> checksum.yml | ||
| echo " sha512: >-" >> checksum.yml | ||
| echo " $(sha512sum /tmp/cudart-llama-bin-win-cu11.7-x64.tar.gz | awk '{ print $1 }')" >> checksum.yml | ||
| echo " size: $(stat -c%s /tmp/cudart-llama-bin-win-cu11.7-x64.tar.gz)" >> checksum.yml | ||
| echo "- url: cudart-llama-bin-win-cu12.0-x64.tar.gz" >> checksum.yml | ||
| echo " sha512: >-" >> checksum.yml | ||
| echo " $(sha512sum /tmp/cudart-llama-bin-win-cu12.0-x64.tar.gz | awk '{ print $1 }')" >> checksum.yml | ||
| echo " size: $(stat -c%s /tmp/cudart-llama-bin-win-cu12.0-x64.tar.gz)" >> checksum.yml | ||
| cat checksum.yml | ||
| - name: Upload checksum.yml to GitHub Release | ||
| uses: actions/upload-release-asset@v1 | ||
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| upload_url: ${{ needs.create-draft-release.outputs.upload_url }} | ||
| asset_path: ./checksum.yml | ||
| asset_name: checksum.yml | ||
| asset_content_type: text/yaml | ||
| - name: upload cudart-llama-bin-linux-cu12.0-x64.tar.gz to Github Release | ||
| uses: actions/upload-release-asset@v1 | ||
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| upload_url: ${{ needs.create-draft-release.outputs.upload_url }} | ||
| asset_path: /tmp/cudart-llama-bin-linux-cu12.0-x64.tar.gz | ||
| asset_name: cudart-llama-bin-linux-cu12.0-x64.tar.gz | ||
| asset_content_type: application/gzip | ||
| - name: upload cudart-llama-bin-linux-cu11.7-x64.tar.gz to Github Release | ||
| uses: actions/upload-release-asset@v1 | ||
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| upload_url: ${{ needs.create-draft-release.outputs.upload_url }} | ||
| asset_path: /tmp/cudart-llama-bin-linux-cu11.7-x64.tar.gz | ||
| asset_name: cudart-llama-bin-linux-cu11.7-x64.tar.gz | ||
| asset_content_type: application/gzip | ||
| - name: upload cudart-llama-bin-win-cu12.0-x64.tar.gz to Github Release | ||
| uses: actions/upload-release-asset@v1 | ||
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| upload_url: ${{ needs.create-draft-release.outputs.upload_url }} | ||
| asset_path: /tmp/cudart-llama-bin-win-cu12.0-x64.tar.gz | ||
| asset_name: cudart-llama-bin-win-cu12.0-x64.tar.gz | ||
| asset_content_type: application/gzip | ||
| - name: upload cudart-llama-bin-win-cu11.7-x64.tar.gz to Github Release | ||
| uses: actions/upload-release-asset@v1 | ||
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| upload_url: ${{ needs.create-draft-release.outputs.upload_url }} | ||
| asset_path: /tmp/cudart-llama-bin-win-cu11.7-x64.tar.gz | ||
| asset_name: cudart-llama-bin-win-cu11.7-x64.tar.gz | ||
| asset_content_type: application/gzip | ||