Team Ai
Datasetpublic

Brunobkr/llama.cpp_AlgMor24_github

ΩFFFΣLLIa • llama.cpp • AlgMor24 ██████╗ ███████╗███████╗███████╗██╗ ██╗ ██╗ █████╗ ██╔═══██╗██╔════╝██╔════╝██╔════╝██║ ██║ ██║██╔══██╗ ██║ ██║█████╗ █████╗ █████╗ ██║ ██║ ██║███████║ ██║ ██║██╔══╝ ██╔══╝ ██╔══╝ ██║ ██║ ██║██╔══██║ ╚██████╔╝██║ ██║ ███████╗███████╗███████╗██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ High-Performance LLM / VLM Inference & Autonomous Agentic Ecosystem… See the full description on the dataset page: https://huggingface.co/datasets/Brunobkr/llama.cpp_AlgMor24_github.

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes3kdownloads
docker.yml530 linesDownload Raw Back to workflows
1# This workflow uses actions that are not certified by GitHub.2# They are provided by a third-party and are governed by3# separate terms of service, privacy policy, and support4# documentation.5 6# GitHub recommends pinning actions to a commit SHA.7# To get a newer version, you will need to update the SHA.8# You can also reference a tag or branch, but the action may change without warning.9 10name: Publish Docker image11 12on:13  workflow_dispatch: # allows manual triggering14    inputs:15      skip_s390x:16        description: "Skip the s390x build target (useful for fast test runs that do not need the IBM Z runner)"17        type: boolean18        default: false19  schedule:20    # Rebuild daily rather than on every push because it is expensive21    - cron: '12 4 * * *'22 23concurrency:24  group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}25  cancel-in-progress: true26 27# Fine-grant permission28# https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token29permissions:30  packages: write31 32jobs:33  create_tag:34    name: Create and push git tag35    runs-on: ubuntu-slim36    permissions:37      contents: write38    outputs:39      source_tag: ${{ steps.srctag.outputs.name }}40 41    steps:42      - name: Clone43        id: checkout44        uses: actions/checkout@v645        with:46          fetch-depth: 047 48      - name: Determine source tag name49        id: srctag50        uses: ./.github/actions/get-tag-name51        env:52          BRANCH_NAME: ${{ github.head_ref || github.ref_name }}53 54      - name: Create and push git tag55        env:56          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}57        run: |58          git tag ${{ steps.srctag.outputs.name }} || exit 059          git push origin ${{ steps.srctag.outputs.name }} || exit 060 61  build_ui:62    name: Build UI63    needs: create_tag64    uses: ./.github/workflows/ui-build.yml65    with:66      hf_ui_version: ${{ needs.create_tag.outputs.source_tag }}67 68  prepare_matrices:69    name: Prepare Docker matrices70    runs-on: ubuntu-24.0471    outputs:72      build_matrix: ${{ steps.matrices.outputs.build_matrix }}73      merge_matrix: ${{ steps.matrices.outputs.merge_matrix }}74 75    steps:76      - name: Generate build and merge matrices77        id: matrices78        shell: bash79        env:80          SKIP_S390X: ${{ inputs.skip_s390x || 'false' }}81        run: |82          set -euo pipefail83 84          # Keep all build targets in one place and derive merge targets from it.85          cat > build-matrix.json <<'JSON'86          [87            { "tag": "cpu", "dockerfile": ".devops/cpu.Dockerfile", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": false, "runs_on": "ubuntu-24.04" },88            { "tag": "cpu", "dockerfile": ".devops/cpu.Dockerfile", "platforms": "linux/arm64", "full": true, "light": true, "server": true, "free_disk_space": false, "runs_on": "ubuntu-24.04-arm" },89            { "tag": "cpu", "dockerfile": ".devops/s390x.Dockerfile", "platforms": "linux/s390x", "full": true, "light": true, "server": true, "free_disk_space": false, "runs_on": "ubuntu-24.04-s390x", "prebuilt_ui": true },90            { "tag": "cuda cuda12", "dockerfile": ".devops/cuda.Dockerfile", "cuda_version": "12.8.1", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": true, "runs_on": "ubuntu-24.04" },91            { "tag": "cuda cuda12", "dockerfile": ".devops/cuda.Dockerfile", "cuda_version": "12.8.1", "platforms": "linux/arm64", "full": true, "light": true, "server": true, "free_disk_space": true, "runs_on": "ubuntu-24.04-arm" },92            { "tag": "cuda13", "dockerfile": ".devops/cuda.Dockerfile", "cuda_version": "13.3.0", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": true, "runs_on": "ubuntu-24.04" },93            { "tag": "cuda13", "dockerfile": ".devops/cuda.Dockerfile", "cuda_version": "13.3.0", "platforms": "linux/arm64", "full": true, "light": true, "server": true, "free_disk_space": true, "runs_on": "ubuntu-24.04-arm" },94            { "tag": "musa", "dockerfile": ".devops/musa.Dockerfile", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": true, "runs_on": "ubuntu-24.04" },95            { "tag": "intel", "dockerfile": ".devops/intel.Dockerfile", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": true, "runs_on": "ubuntu-24.04" },96            { "tag": "vulkan", "dockerfile": ".devops/vulkan.Dockerfile", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": false, "runs_on": "ubuntu-24.04" },97            { "tag": "vulkan", "dockerfile": ".devops/vulkan.Dockerfile", "platforms": "linux/arm64", "full": true, "light": true, "server": true, "free_disk_space": false, "runs_on": "ubuntu-24.04-arm" },98            { "tag": "rocm", "dockerfile": ".devops/rocm.Dockerfile", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": true, "runs_on": "ubuntu-24.04" },99            { "tag": "openvino", "dockerfile": ".devops/openvino.Dockerfile", "platforms": "linux/amd64", "full": true, "light": true, "server": true, "free_disk_space": false, "runs_on": "ubuntu-24.04" }100          ]101          JSON102 103          if [ "${SKIP_S390X}" = "true" ]; then104            jq 'map(select(.platforms != "linux/s390x"))' build-matrix.json > build-matrix.json.tmp105            mv build-matrix.json.tmp build-matrix.json106          fi107 108          BUILD_MATRIX="$(jq -c . build-matrix.json)"109          MERGE_MATRIX="$(jq -c '110            reduce .[] as $entry ({}; .[$entry.tag] |= (111              . // {112                tag: $entry.tag,113                arches: [],114                full: false,115                light: false,116                server: false117              }118              | .full = (.full or ($entry.full // false))119              | .light = (.light or ($entry.light // false))120              | .server = (.server or ($entry.server // false))121              | .arches += [($entry.platforms | sub("^linux/"; ""))]122            ))123            # Backward compatibility: s390x tags are aliases of cpu for the linux/s390x platform.124            | if (has("cpu") and (((.cpu.arches // []) | index("s390x")) != null)) then125                . + {126                  s390x: {127                    tag: "s390x",128                    arches: ["s390x"],129                    full: .cpu.full,130                    light: .cpu.light,131                    server: .cpu.server132                  }133                }134              else135                .136              end137            | [.[] | .arches = (.arches | unique | sort | join(" "))]138          ' build-matrix.json)"139 140          echo "build_matrix=$BUILD_MATRIX" >> "$GITHUB_OUTPUT"141          echo "merge_matrix=$MERGE_MATRIX" >> "$GITHUB_OUTPUT"142 143  push_to_registry:144    name: Push Docker image to Docker Registry145    needs: [prepare_matrices, create_tag, build_ui]146 147    runs-on: ${{ matrix.config.runs_on }}148    strategy:149      fail-fast: false150      matrix:151        config: ${{ fromJSON(needs.prepare_matrices.outputs.build_matrix) }}152    steps:153      - name: Check out the repo154        id: checkout155        uses: actions/checkout@v6156        with:157          fetch-depth: 0158          ref: ${{ needs.create_tag.outputs.source_tag }}159 160      - name: Download prebuilt UI161        if: ${{ matrix.config.prebuilt_ui == true }}162        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8163        with:164          name: ui-build165          path: tools/ui/dist166 167      - name: Set up QEMU168        if: ${{ contains(matrix.config.platforms, 'linux/amd64') }}169        uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4170        with:171          image: tonistiigi/binfmt:qemu-v10.2.1172 173      - name: Set up Docker Buildx174        uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4175 176      - name: Log in to Docker Registry177        uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4178        with:179          registry: ghcr.io180          username: ${{ github.repository_owner }}181          password: ${{ secrets.GITHUB_TOKEN }}182 183      - name: Determine image metadata184        id: meta185        shell: bash186        run: |187          set -euo pipefail188 189          REPO_OWNER="${GITHUB_REPOSITORY_OWNER@L}"  # to lower case190          REPO_NAME="${{ github.event.repository.name }}"191          IMAGE_REPO="ghcr.io/${REPO_OWNER}/${REPO_NAME}"192          PREFIX="${IMAGE_REPO}:"193          PLATFORM="${{ matrix.config.platforms }}"194          ARCH_SUFFIX="${PLATFORM#linux/}"195 196          # list all tags possible197          tags="${{ matrix.config.tag }}"198          for tag in $tags; do199              if [[ "$tag" == "cpu" ]]; then200                  TYPE=""201              else202                  TYPE="-$tag"203              fi204              CACHETAG="${PREFIX}buildcache${TYPE}-${ARCH_SUFFIX}"205          done206 207          SAFE_TAGS="$(echo "$tags" | tr ' ' '_')"208 209          echo "image_repo=$IMAGE_REPO" >> $GITHUB_OUTPUT210          echo "arch_suffix=$ARCH_SUFFIX" >> $GITHUB_OUTPUT211          echo "cache_output_tag=$CACHETAG" >> $GITHUB_OUTPUT212          echo "digest_artifact_suffix=${SAFE_TAGS}-${ARCH_SUFFIX}" >> $GITHUB_OUTPUT213          echo "cache_output_tag=$CACHETAG"  # print out for debugging214        env:215          GITHUB_REPOSITORY_OWNER: '${{ github.repository_owner }}'216 217      - name: Get build date218        id: build_date219        run: echo "date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT220 221      - name: Free Disk Space (Ubuntu)222        if: ${{ matrix.config.free_disk_space == true }}223        uses: ggml-org/free-disk-space@v1.3.1224        with:225          # this might remove tools that are actually needed,226          # if set to "true" but frees about 6 GB227          tool-cache: false228 229          # all of these default to true, but feel free to set to230          # "false" if necessary for your workflow231          android: true232          dotnet: true233          haskell: true234          large-packages: true235          docker-images: true236          swap-storage: true237 238      - name: Build and push Full Docker image by digest239        id: build_full240        if: ${{ (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && matrix.config.full == true }}241        uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7242        with:243          context: .244          platforms: ${{ matrix.config.platforms }}245          outputs: type=image,name=${{ steps.meta.outputs.image_repo }},push-by-digest=true,name-canonical=true,push=true,oci-mediatypes=true246          file: ${{ matrix.config.dockerfile }}247          target: full248          provenance: false249          build-args: |250            BUILD_DATE=${{ steps.build_date.outputs.date }}251            APP_VERSION=${{ needs.create_tag.outputs.source_tag }}252            APP_REVISION=${{ steps.checkout.outputs.commit }}253            IMAGE_URL=${{ github.server_url }}/${{ github.repository }}254            IMAGE_SOURCE=${{ github.server_url }}/${{ github.repository }}255            ${{ matrix.config.ubuntu_version && format('UBUNTU_VERSION={0}', matrix.config.ubuntu_version) || '' }}256            ${{ matrix.config.cuda_version && format('CUDA_VERSION={0}', matrix.config.cuda_version) || '' }}257          annotations: |258            manifest:org.opencontainers.image.created=${{ steps.build_date.outputs.date }}259            manifest:org.opencontainers.image.version=${{ needs.create_tag.outputs.source_tag }}260            manifest:org.opencontainers.image.revision=${{ steps.checkout.outputs.commit }}261            manifest:org.opencontainers.image.title=llama.cpp262            manifest:org.opencontainers.image.description=LLM inference in C/C++263            manifest:org.opencontainers.image.url=${{ github.server_url }}/${{ github.repository }}264            manifest:org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}265          # using github experimental cache266          #cache-from: type=gha267          #cache-to: type=gha,mode=max268          # return to this if the experimental github cache is having issues269          #cache-to: type=local,dest=/tmp/.buildx-cache270          #cache-from: type=local,src=/tmp/.buildx-cache271          # using registry cache (no storage limit)272          cache-from: type=registry,ref=${{ steps.meta.outputs.cache_output_tag }}273          cache-to: type=registry,ref=${{ steps.meta.outputs.cache_output_tag }},mode=max274 275      - name: Build and push Light Docker image by digest276        id: build_light277        if: ${{ (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && matrix.config.light == true }}278        uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7279        with:280          context: .281          platforms: ${{ matrix.config.platforms }}282          outputs: type=image,name=${{ steps.meta.outputs.image_repo }},push-by-digest=true,name-canonical=true,push=true,oci-mediatypes=true283          file: ${{ matrix.config.dockerfile }}284          target: light285          provenance: false286          build-args: |287            BUILD_DATE=${{ steps.build_date.outputs.date }}288            APP_VERSION=${{ needs.create_tag.outputs.source_tag }}289            APP_REVISION=${{ steps.checkout.outputs.commit }}290            IMAGE_URL=${{ github.server_url }}/${{ github.repository }}291            IMAGE_SOURCE=${{ github.server_url }}/${{ github.repository }}292            ${{ matrix.config.ubuntu_version && format('UBUNTU_VERSION={0}', matrix.config.ubuntu_version) || '' }}293            ${{ matrix.config.cuda_version && format('CUDA_VERSION={0}', matrix.config.cuda_version) || '' }}294          annotations: |295            manifest:org.opencontainers.image.created=${{ steps.build_date.outputs.date }}296            manifest:org.opencontainers.image.version=${{ needs.create_tag.outputs.source_tag }}297            manifest:org.opencontainers.image.revision=${{ steps.checkout.outputs.commit }}298            manifest:org.opencontainers.image.title=llama.cpp299            manifest:org.opencontainers.image.description=LLM inference in C/C++300            manifest:org.opencontainers.image.url=${{ github.server_url }}/${{ github.repository }}301            manifest:org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}302          # using github experimental cache303          #cache-from: type=gha304          #cache-to: type=gha,mode=max305          # return to this if the experimental github cache is having issues306          #cache-to: type=local,dest=/tmp/.buildx-cache307          #cache-from: type=local,src=/tmp/.buildx-cache308          # using registry cache (no storage limit)309          cache-from: type=registry,ref=${{ steps.meta.outputs.cache_output_tag }}310          cache-to: type=registry,ref=${{ steps.meta.outputs.cache_output_tag }},mode=max311 312      - name: Build and push Server Docker image by digest313        id: build_server314        if: ${{ (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && matrix.config.server == true }}315        uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7316        with:317          context: .318          platforms: ${{ matrix.config.platforms }}319          outputs: type=image,name=${{ steps.meta.outputs.image_repo }},push-by-digest=true,name-canonical=true,push=true,oci-mediatypes=true320          file: ${{ matrix.config.dockerfile }}321          target: server322          provenance: false323          build-args: |324            BUILD_DATE=${{ steps.build_date.outputs.date }}325            APP_VERSION=${{ needs.create_tag.outputs.source_tag }}326            APP_REVISION=${{ steps.checkout.outputs.commit }}327            IMAGE_URL=${{ github.server_url }}/${{ github.repository }}328            IMAGE_SOURCE=${{ github.server_url }}/${{ github.repository }}329            ${{ matrix.config.ubuntu_version && format('UBUNTU_VERSION={0}', matrix.config.ubuntu_version) || '' }}330            ${{ matrix.config.cuda_version && format('CUDA_VERSION={0}', matrix.config.cuda_version) || '' }}331          annotations: |332            manifest:org.opencontainers.image.created=${{ steps.build_date.outputs.date }}333            manifest:org.opencontainers.image.version=${{ needs.create_tag.outputs.source_tag }}334            manifest:org.opencontainers.image.revision=${{ steps.checkout.outputs.commit }}335            manifest:org.opencontainers.image.title=llama.cpp336            manifest:org.opencontainers.image.description=LLM inference in C/C++337            manifest:org.opencontainers.image.url=${{ github.server_url }}/${{ github.repository }}338            manifest:org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}339          # using github experimental cache340          #cache-from: type=gha341          #cache-to: type=gha,mode=max342          # return to this if the experimental github cache is having issues343          #cache-to: type=local,dest=/tmp/.buildx-cache344          #cache-from: type=local,src=/tmp/.buildx-cache345          # using registry cache (no storage limit)346          cache-from: type=registry,ref=${{ steps.meta.outputs.cache_output_tag }}347          cache-to: type=registry,ref=${{ steps.meta.outputs.cache_output_tag }},mode=max348 349      - name: Export digest metadata350        shell: bash351        run: |352            set -euo pipefail353 354            TAGS="${{ matrix.config.tag }}"355            ARCH_SUFFIX="${{ steps.meta.outputs.arch_suffix }}"356            DIGEST_FILE="/tmp/digests/${{ steps.meta.outputs.digest_artifact_suffix }}.tsv"357            mkdir -p /tmp/digests358 359            add_digest_rows() {360                local image_type="$1"361                local digest="$2"362 363                if [[ -z "$digest" ]]; then364                  echo "Missing digest for image_type=${image_type}" >&2365                  exit 1366                fi367 368                for tag in $TAGS; do369                    printf '%s\t%s\t%s\t%s\n' "$tag" "$ARCH_SUFFIX" "$image_type" "$digest" >> "$DIGEST_FILE"370                done371            }372 373            if [[ "${{ matrix.config.full }}" == "true" ]]; then374                add_digest_rows "full" "${{ steps.build_full.outputs.digest }}"375            fi376 377            if [[ "${{ matrix.config.light }}" == "true" ]]; then378                add_digest_rows "light" "${{ steps.build_light.outputs.digest }}"379            fi380 381            if [[ "${{ matrix.config.server }}" == "true" ]]; then382                add_digest_rows "server" "${{ steps.build_server.outputs.digest }}"383            fi384 385      - name: Upload digest metadata386        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7387        with:388          name: digests-${{ steps.meta.outputs.digest_artifact_suffix }}389          path: /tmp/digests/${{ steps.meta.outputs.digest_artifact_suffix }}.tsv390          if-no-files-found: error391 392  merge_arch_tags:393    name: Create shared tags from digests394    needs: [prepare_matrices, push_to_registry, create_tag]395    runs-on: ubuntu-24.04396    strategy:397      fail-fast: false398      matrix:399        config: ${{ fromJSON(needs.prepare_matrices.outputs.merge_matrix) }}400 401    steps:402      - name: Check out the repo403        id: checkout404        uses: actions/checkout@v6405        with:406          fetch-depth: 0407 408      - name: Get build date409        id: build_date410        run: echo "date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT411 412      - name: Download digest metadata413        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8414        with:415          pattern: digests-*416          path: /tmp/digests417          merge-multiple: true418 419      - name: Set up Docker Buildx420        uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4421 422      - name: Log in to Docker Registry423        uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4424        with:425          registry: ghcr.io426          username: ${{ github.repository_owner }}427          password: ${{ secrets.GITHUB_TOKEN }}428 429      - name: Create tags from digests430        shell: bash431        run: |432          set -euo pipefail433 434          REPO_OWNER="${GITHUB_REPOSITORY_OWNER@L}"  # to lower case435          REPO_NAME="${{ github.event.repository.name }}"436          IMAGE_REPO="ghcr.io/${REPO_OWNER}/${REPO_NAME}"437          PREFIX="${IMAGE_REPO}:"438          SRC_TAG="${{ needs.create_tag.outputs.source_tag }}"439          BUILD_DATE="${{ steps.build_date.outputs.date }}"440          COMMIT_SHA="${{ steps.checkout.outputs.commit }}"441          TAGS="${{ matrix.config.tag }}"442          ARCHES="${{ matrix.config.arches }}"443          DIGEST_GLOB="/tmp/digests/*.tsv"444 445          if ! ls ${DIGEST_GLOB} >/dev/null 2>&1; then446              echo "No digest metadata found in /tmp/digests" >&2447              exit 1448          fi449 450          if [[ -z "$SRC_TAG" ]]; then451              echo "Missing source tag from create_tag" >&2452              exit 1453          fi454 455          find_digest() {456              local tag_name="$1"457              local arch="$2"458              local image_type="$3"459              local digest460 461              digest="$(awk -F '\t' -v t="$tag_name" -v a="$arch" -v i="$image_type" '$1 == t && $2 == a && $3 == i { print $4; exit }' ${DIGEST_GLOB})"462 463              # Backward compatibility: s390x tags are aliases of cpu for the linux/s390x platform.464              if [[ -z "$digest" && "$tag_name" == "s390x" && "$arch" == "s390x" ]]; then465                digest="$(awk -F '\t' -v t="cpu" -v a="$arch" -v i="$image_type" '$1 == t && $2 == a && $3 == i { print $4; exit }' ${DIGEST_GLOB})"466              fi467 468              if [[ -z "$digest" ]]; then469                echo "Missing digest for tag=${tag_name} arch=${arch} image_type=${image_type}" >&2470                exit 1471              fi472 473              echo "$digest"474          }475 476          create_manifest_tags() {477              local image_type="$1"478              local tag_name="$2"479              local suffix="$3"480 481              local merged_tag="${PREFIX}${image_type}${suffix}"482              local merged_versioned_tag="${merged_tag}-${SRC_TAG}"483 484              local refs=()485 486              for arch in $ARCHES; do487                  local digest488                  digest="$(find_digest "$tag_name" "$arch" "$image_type")"489                  refs+=("${IMAGE_REPO}@${digest}")490              done491 492              local annotations=(493                  --annotation "index:org.opencontainers.image.created=${BUILD_DATE}"494                  --annotation "index:org.opencontainers.image.version=${SRC_TAG}"495                  --annotation "index:org.opencontainers.image.revision=${COMMIT_SHA}"496                  --annotation "index:org.opencontainers.image.title=llama.cpp"497                  --annotation "index:org.opencontainers.image.description=LLM inference in C/C++"498                  --annotation "index:org.opencontainers.image.url=${{ github.server_url }}/${{ github.repository }}"499                  --annotation "index:org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}"500              )501 502              echo "Creating ${merged_tag} from ${refs[*]}"503              docker buildx imagetools create "${annotations[@]}" --tag "${merged_tag}" "${refs[@]}"504 505              echo "Creating ${merged_versioned_tag} from ${refs[*]}"506              docker buildx imagetools create "${annotations[@]}" --tag "${merged_versioned_tag}" "${refs[@]}"507          }508 509          for tag in $TAGS; do510              if [[ "$tag" == "cpu" ]]; then511                  TYPE=""512              else513                  TYPE="-$tag"514              fi515 516              if [[ "${{ matrix.config.full }}" == "true" ]]; then517                  create_manifest_tags "full" "$tag" "$TYPE"518              fi519 520              if [[ "${{ matrix.config.light }}" == "true" ]]; then521                  create_manifest_tags "light" "$tag" "$TYPE"522              fi523 524              if [[ "${{ matrix.config.server }}" == "true" ]]; then525                  create_manifest_tags "server" "$tag" "$TYPE"526              fi527          done528        env:529          GITHUB_REPOSITORY_OWNER: '${{ github.repository_owner }}'530 
Brunobkr/llama.cpp_AlgMor24_github · Team Ai