Etapa G (go): cosecha 20 + syft/traefik promovidos a mano (pack fallaba: patches no viajaban a recipes/ — fix en harvest-go) + pre-check por name interno del TOML (exporters) + re-cola crossplane-cli/fabric-ai/oh-my-posh con fixes (alias crossplane, ./cmd/fabric, -o oh-my-posh) + logs por-cola en build-farm
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -78,10 +78,15 @@ for f in "$QUEUE"/*.toml; do
|
||||
[ -e "$f" ] || { echo "$(STAMP) cola vacía"; break; }
|
||||
n=$(basename "$f" .toml)
|
||||
|
||||
# El artefacto del store se llama por el `name` INTERNO de la receta, que puede diferir del nombre
|
||||
# del fichero (prometheus-blackbox-exporter.toml → name="blackbox_exporter"); sin esto el pre-check
|
||||
# nunca los ve y quedan "no-sellados" para siempre.
|
||||
rn=$(sed -n 's/^name *= *"\(.*\)".*/\1/p' "$f" | head -1); [ -n "$rn" ] || rn="$n"
|
||||
|
||||
# Pre-check BARATO: ¿el worker selló algo para este nombre? (tras el rsync el store local lo tiene).
|
||||
# Sin esto, `hammer build` de una receta NO sellada ARRANCARÍA un build local (vendor+compile) y lo
|
||||
# mataría el timeout ⇒ CPU del hub desperdiciada cada cosecha. Si no hay seal `*-<n>`, salto ya.
|
||||
ls "$STORE"/*-"$n" >/dev/null 2>&1 || { skipped="$skipped $n"; continue; }
|
||||
# mataría el timeout ⇒ CPU del hub desperdiciada cada cosecha. Si no hay seal `*-<rn>`, salto ya.
|
||||
ls "$STORE"/*-"$rn" >/dev/null 2>&1 || { skipped="$skipped $n"; continue; }
|
||||
|
||||
# ¿sellada con el hash ACTUAL? cache-hit instantáneo imprime el hash; un build real (hash distinto,
|
||||
# raro) se pasa del timeout ⇒ skip (no compilamos en el hub).
|
||||
@@ -100,14 +105,14 @@ for f in "$QUEUE"/*.toml; do
|
||||
argo-rollouts) want=kubectl-argo-rollouts ;; step-cli) want=step ;; soft-serve) want=soft ;; go-mockery) want=mockery ;;
|
||||
temporal-cli) want=temporal ;;
|
||||
seaweedfs) want=weed ;; go-migrate) want=migrate ;; jsonnet-bundler) want=jb ;; fabric-ai) want=fabric ;;
|
||||
crossplane-cli) want=crank ;;
|
||||
*) want="$n" ;;
|
||||
crossplane-cli) want=crossplane ;;
|
||||
*) want="$rn" ;; # def: el name interno de la receta (== binario en la vía Go auto)
|
||||
esac
|
||||
|
||||
# SMOKE-TEST: el seal debe instalar un binario cuyo nombre == $want. Si instaló otro (un helper:
|
||||
# functional-test, protoc-gen-buf-lint, gosecutil…), detect_go_main eligió mal el main ⇒ NO es la
|
||||
# herramienta correcta aunque "corra" → a REVIEW (no firmamos un binario equivocado). Lección eksctl.
|
||||
d="$STORE/${H#b3:}-$n"
|
||||
d="$STORE/${H#b3:}-$rn"
|
||||
allbins=$(find "$d" -type f -path '*/bin/*' -perm -100 2>/dev/null)
|
||||
bin=$(printf '%s\n' "$allbins" | while read -r b; do [ "$(basename "$b")" = "$want" ] && { echo "$b"; break; }; done)
|
||||
if [ -z "$bin" ]; then
|
||||
@@ -131,6 +136,10 @@ for f in "$QUEUE"/*.toml; do
|
||||
echo "$(STAMP) ✓ smoke $n (bin=$bn static=$isstatic): ${out%%
|
||||
*}"
|
||||
mv "$f" "recipes/$n.toml"
|
||||
# los patches VIAJAN con la receta (lección 4517a98, faltaba acá): pack los lee de recipes/
|
||||
for p in $(sed -n 's/^patches *= *\[\(.*\)\]/\1/p' "recipes/$n.toml" | tr -d '",' ); do
|
||||
[ -f "$QUEUE/$p" ] && cp -n "$QUEUE/$p" "recipes/$p"
|
||||
done
|
||||
if "$HAMMER" --store "$STORE" pack "recipes/$n.toml" --repo "$REPO" --distro-version "$DISTRO" --build >/dev/null 2>&1; then
|
||||
promoted="$promoted $n"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user