build #472
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: build | |
| on: | |
| # Build file modifications | |
| push: | |
| branches: [ 'master' ] | |
| paths: [ '.github/workflows/build.yml', '.devops/**' ] | |
| #pull_request: | |
| # branches: [ 'master' ] | |
| # Daily rebuild | |
| schedule: | |
| - cron: "0 4 * * *" | |
| # Manual rebuild, in case of some important upstream change | |
| workflow_dispatch: | |
| jobs: | |
| server: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| ssl: [nossl, ssl] | |
| avx: [noavx, avx, avx2, avx512] | |
| include: | |
| - ssl: nossl | |
| ssl_defines: '-DLLAMA_OPENSSL=OFF' | |
| - ssl: ssl | |
| ssl_defines: '-DOPENSSL_USE_STATIC_LIBS=ON' | |
| - avx: noavx | |
| avx_defines: '-DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF' | |
| - avx: avx | |
| avx_defines: '-DGGML_AVX2=OFF' | |
| - avx: avx2 | |
| avx_defines: '' | |
| - avx: avx512 | |
| avx_defines: '-DGGML_AVX512=ON' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Checkout llama.cpp | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: ggml-org/llama.cpp | |
| path: repo | |
| - name: Setup Alpine Linux | |
| uses: jirutka/setup-alpine@v1 | |
| with: | |
| packages: build-base cmake git linux-headers openssl-dev openssl-libs-static | |
| - name: CMake | |
| run: | | |
| cmake repo -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" -DGGML_NATIVE=OFF -DGGML_STATIC=ON -DGGML_RPC=ON -DGGML_CCACHE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_CURL=OFF -DBUILD_SHARED_LIBS=OFF ${{ matrix.ssl_defines }} ${{ matrix.avx_defines }} | |
| cmake --build build --config Release --target llama-server --target rpc-server -j $(nproc) | |
| strip build/bin/* | |
| shell: alpine.sh {0} | |
| - name: Upload build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: server-${{ matrix.ssl }}-${{ matrix.avx }} | |
| path: build/bin/* | |
| if-no-files-found: error | |
| - name: Build and push llama-server Docker image | |
| uses: macbre/push-to-ghcr@v14 | |
| with: | |
| dockerfile: .devops/llama-server.Dockerfile | |
| context: build/bin | |
| image_name: ${{ github.repository }} | |
| image_tag: server-${{ matrix.ssl }}-${{ matrix.avx }} | |
| github_token: ${{ secrets.GHCR_ACCESS_TOKEN }} | |
| docker_io_user: ${{ vars.DOCKER_IO_USER }} | |
| docker_io_token: ${{ secrets.DOCKER_IO_ACCESS_TOKEN }} | |
| - name: Build and push rpc-server Docker image | |
| uses: macbre/push-to-ghcr@v14 | |
| with: | |
| dockerfile: .devops/rpc-server.Dockerfile | |
| context: build/bin | |
| image_name: ${{ github.repository }} | |
| image_tag: rpc-server-${{ matrix.ssl }}-${{ matrix.avx }} | |
| github_token: ${{ secrets.GHCR_ACCESS_TOKEN }} | |
| docker_io_user: ${{ vars.DOCKER_IO_USER }} | |
| docker_io_token: ${{ secrets.DOCKER_IO_ACCESS_TOKEN }} | |