mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-08-31 01:21:23 +02:00
985b14912b
* ci : apply ccache-clear with older/min/dry-run to all ccache jobs Assisted-by: llama.cpp:DeepSeek-v4-Flash-0731 * ci : install gh in ccache-clear if missing (container jobs) The ccache-clear action relies on the gh CLI, which is not present in container-based jobs. Install it on demand so those jobs can clear caches. Assisted-by: llama.cpp:DeepSeek-v4-Flash-0731 * ci : install gh via apt repo in ccache-clear The install.sh script used previously is no longer served (404). Switch to the official GitHub CLI apt repository, which is still available. Assisted-by: llama.cpp:DeepSeek-v4-Flash-0731 * ci : pass --repo to gh cache commands in ccache-clear In container jobs gh cannot auto-detect the repository from git, so gh cache list/delete fail with 'failed to run git: not a git repository'. Pass the repository explicitly via --repo using GITHUB_REPOSITORY. Assisted-by: llama.cpp:DeepSeek-v4-Flash-0731 * ci : drop -new suffix from vulkan ccache key The -new suffix was only needed to force a fresh cache. With ccache-clear now evicting stale caches, the original key can be used again. The old ccache-vulkan-ubuntu-24.04-arm-new entries still match the ccache-clear key prefix and are cleaned up automatically. Assisted-by: llama.cpp:DeepSeek-v4-Flash-0731 * ci : fix ccache-clear date parsing on macOS (BSD date) macOS ships BSD date, which has no -d option. The older cutoff check was silently disabled there: 'date: illegal option -- d' errors in the log and the loop was only stopped by the min limit, risking deletion of caches not older than the cutoff (e.g. saved by a concurrent job). Parse the ISO-8601 timestamps with GNU date when available and fall back to BSD date otherwise (TZ=UTC, fractional seconds dropped). Assisted-by: llama.cpp:DeepSeek-v4-Flash-0731 * ci : extract ccache-clear logic into scripts/ccache-clear.sh The composite action now consists of a dedicated step that installs the GitHub CLI when missing (e.g. in container jobs) and a thin step that calls the new script. The script follows the make-release-checks.sh conventions (usage/env header, set -euo pipefail, CLI flags) and only checks that gh is available. The action inputs are unchanged, so the workflow steps are untouched. Assisted-by: llama.cpp:DeepSeek-v4-Flash-0731 * ci : remove unused apple ccaches
51 lines
2.2 KiB
YAML
51 lines
2.2 KiB
YAML
# note: place this as the last step of the job, so the new cache is saved by "Post ccache" right after the old one is cleared
|
|
name: "ccache-clear"
|
|
description: "Delete GitHub Actions caches matching a key prefix, oldest first"
|
|
inputs:
|
|
key:
|
|
description: "Cache key prefix to match and delete"
|
|
required: true
|
|
older:
|
|
description: "Only delete caches created more than this long ago (e.g. 90m, 1h, 1d). By default all matching caches are deleted"
|
|
required: false
|
|
default: ""
|
|
min:
|
|
description: "Stop deleting if fewer than this many caches would remain (e.g. 1). By default there is no minimum"
|
|
required: false
|
|
default: "0"
|
|
dry-run:
|
|
description: "Only print the caches that would be deleted, without deleting them"
|
|
required: false
|
|
default: "false"
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install GitHub CLI if missing
|
|
shell: bash
|
|
run: |
|
|
# e.g. in container jobs, where it is not preinstalled
|
|
if ! command -v gh >/dev/null 2>&1; then
|
|
echo "GitHub CLI not found, installing..."
|
|
if ! command -v curl >/dev/null 2>&1; then
|
|
apt-get update >/dev/null 2>&1 || true
|
|
apt-get install -y curl >/dev/null 2>&1 || true
|
|
fi
|
|
mkdir -p -m 755 /etc/apt/keyrings
|
|
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg >/dev/null
|
|
chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list
|
|
apt-get update >/dev/null 2>&1 || true
|
|
apt-get install -y gh || { echo "Failed to install GitHub CLI (gh)" >&2; exit 1; }
|
|
fi
|
|
command -v gh >/dev/null 2>&1 || { echo "GitHub CLI (gh) is required but could not be installed" >&2; exit 1; }
|
|
|
|
- name: Clear caches
|
|
shell: bash
|
|
run: |
|
|
bash scripts/ccache-clear.sh \
|
|
--key "${{ inputs.key }}" \
|
|
--older "${{ inputs.older }}" \
|
|
--min "${{ inputs.min }}" \
|
|
${{ inputs.dry-run == 'true' && '--dry-run' || '' }}
|