fix(ci): reclaim space for semantic backup smoke
This commit is contained in:
@@ -156,6 +156,8 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install --yes --no-install-recommends ripgrep
|
sudo apt-get install --yes --no-install-recommends ripgrep
|
||||||
|
- name: Reclaim unused hosted-runner space
|
||||||
|
run: bash scripts/prepare-linux-docker-runner.sh
|
||||||
- name: Run unified deployment smoke
|
- name: Run unified deployment smoke
|
||||||
run: timeout --signal=TERM --kill-after=45s 32m bash scripts/unified-deployment-smoke.sh
|
run: timeout --signal=TERM --kill-after=45s 32m bash scripts/unified-deployment-smoke.sh
|
||||||
- name: Run tht update smoke
|
- name: Run tht update smoke
|
||||||
|
|||||||
Executable
+28
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# The local distribution gate pulls the 7 GB Ollama image, downloads the default embedding
|
||||||
|
# model, builds the application images, and then archives every durable volume. GitHub's hosted
|
||||||
|
# Linux image also ships toolchains this job never uses. Remove only those known, runner-owned
|
||||||
|
# installations so the backup is tested with the production semantic stack instead of a stub.
|
||||||
|
[[ "$(uname -s)" == Linux ]] || {
|
||||||
|
printf 'Linux is required for hosted-runner disk preparation.\n' >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly unused_toolchains=(
|
||||||
|
/usr/local/lib/android
|
||||||
|
/usr/share/dotnet
|
||||||
|
/opt/ghc
|
||||||
|
/usr/local/.ghcup
|
||||||
|
)
|
||||||
|
|
||||||
|
for path in "${unused_toolchains[@]}"; do
|
||||||
|
[[ -e "$path" || -L "$path" ]] || continue
|
||||||
|
sudo rm -rf -- "$path"
|
||||||
|
done
|
||||||
|
|
||||||
|
sudo apt-get clean
|
||||||
|
docker system prune --all --force
|
||||||
|
df -h /
|
||||||
|
docker system df
|
||||||
@@ -2469,12 +2469,14 @@ task13_self_test_registry_fingerprint() {
|
|||||||
|
|
||||||
task13_self_test_source_contract() {
|
task13_self_test_source_contract() {
|
||||||
local root host_network push_command registry_function workflow uses_count pinned_uses_count
|
local root host_network push_command registry_function workflow uses_count pinned_uses_count
|
||||||
|
local runner_preparation path
|
||||||
local auth_runtime_mount auth_root_mount auth_projection auth_runtime_owner
|
local auth_runtime_mount auth_root_mount auth_projection auth_runtime_owner
|
||||||
local pi_auth_bind pi_projection registry_runtime_mount registry_root_mount registry_projection
|
local pi_auth_bind pi_projection registry_runtime_mount registry_root_mount registry_projection
|
||||||
local application_secret_bind application_secret_mount application_secret_projection
|
local application_secret_bind application_secret_mount application_secret_projection
|
||||||
local application_secret_parent_owner application_secret_file_owner
|
local application_secret_parent_owner application_secret_file_owner
|
||||||
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
||||||
workflow="$root/.github/workflows/deployment.yml"
|
workflow="$root/.github/workflows/deployment.yml"
|
||||||
|
runner_preparation="$root/scripts/prepare-linux-docker-runner.sh"
|
||||||
host_network='--network'' host'
|
host_network='--network'' host'
|
||||||
push_command='docker image ''push'
|
push_command='docker image ''push'
|
||||||
registry_function='task13_start_''registry'
|
registry_function='task13_start_''registry'
|
||||||
@@ -2543,6 +2545,16 @@ task13_self_test_source_contract() {
|
|||||||
|| task13_fail "CI lacks an outer timeout for the unified deployment smoke"
|
|| task13_fail "CI lacks an outer timeout for the unified deployment smoke"
|
||||||
grep -Eq 'timeout .*scripts/tht-update-smoke\.sh' "$workflow" \
|
grep -Eq 'timeout .*scripts/tht-update-smoke\.sh' "$workflow" \
|
||||||
|| task13_fail "CI lacks an outer timeout for the tht update smoke"
|
|| task13_fail "CI lacks an outer timeout for the tht update smoke"
|
||||||
|
grep -Fq 'bash scripts/prepare-linux-docker-runner.sh' "$workflow" \
|
||||||
|
|| task13_fail "CI must reclaim unused hosted-runner toolchains before the Docker release smoke"
|
||||||
|
[[ -x "$runner_preparation" ]] \
|
||||||
|
|| task13_fail "the Linux Docker runner preparation must be executable"
|
||||||
|
for path in /usr/local/lib/android /usr/share/dotnet /opt/ghc /usr/local/.ghcup; do
|
||||||
|
grep -Fq -- "$path" "$runner_preparation" \
|
||||||
|
|| task13_fail "the Linux Docker runner preparation is missing the scoped path: $path"
|
||||||
|
done
|
||||||
|
! grep -Eq '/opt/hostedtoolcache([/[:space:]]|$)|rm[[:space:]]+-rf[[:space:]]+--?[[:space:]]+/($|[[:space:]])' "$runner_preparation" \
|
||||||
|
|| task13_fail "the Linux Docker runner preparation must not remove required tool caches or broad roots"
|
||||||
uses_count="$(grep -Ec '^[[:space:]]+uses:' "$workflow")"
|
uses_count="$(grep -Ec '^[[:space:]]+uses:' "$workflow")"
|
||||||
pinned_uses_count="$(grep -Ec '^[[:space:]]+uses: [^[:space:]]+@[0-9a-f]{40}([[:space:]]|$)' "$workflow")"
|
pinned_uses_count="$(grep -Ec '^[[:space:]]+uses: [^[:space:]]+@[0-9a-f]{40}([[:space:]]|$)' "$workflow")"
|
||||||
[[ "$uses_count" -gt 0 && "$uses_count" -eq "$pinned_uses_count" ]] \
|
[[ "$uses_count" -gt 0 && "$uses_count" -eq "$pinned_uses_count" ]] \
|
||||||
|
|||||||
Reference in New Issue
Block a user