fix(stale-claims): avoid SIGPIPE 141 — pass file path не pipe #612
2 changed files with 7 additions and 25 deletions
|
|
@ -28,18 +28,6 @@ jobs:
|
|||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Diagnostic — runner environment
|
||||
run: |
|
||||
echo "=== runner environment ==="
|
||||
echo "shell: $SHELL"
|
||||
echo "bash: $(bash --version | head -1)"
|
||||
echo "python3: $(python3 --version 2>&1 || echo 'NOT INSTALLED')"
|
||||
echo "curl: $(curl --version | head -1)"
|
||||
echo "mktemp: $(mktemp --version | head -1 2>&1 || echo 'no --version')"
|
||||
echo "pwd: $(pwd)"
|
||||
echo "ls scripts/: $(ls scripts/ 2>&1)"
|
||||
echo "script exists: $(test -f scripts/cleanup-stale-claims.sh && echo yes || echo no)"
|
||||
|
||||
- name: Run cleanup script
|
||||
env:
|
||||
FORGEJO_TOKEN: ${{ secrets.FORGEJO_BOT_QA_TOKEN }}
|
||||
|
|
@ -47,14 +35,5 @@ jobs:
|
|||
FORGEJO_REPO: lekss361/gendesign
|
||||
STALE_HOURS: 4
|
||||
run: |
|
||||
echo "=== env check ==="
|
||||
echo "FORGEJO_TOKEN length: ${#FORGEJO_TOKEN}"
|
||||
echo "FORGEJO_URL: $FORGEJO_URL"
|
||||
echo "FORGEJO_REPO: $FORGEJO_REPO"
|
||||
echo "STALE_HOURS: $STALE_HOURS"
|
||||
echo "=== check token works ==="
|
||||
curl -sS -H "Authorization: token $FORGEJO_TOKEN" "$FORGEJO_URL/api/v1/user" | head -c 200
|
||||
echo ""
|
||||
echo "=== run script with -x trace ==="
|
||||
chmod +x scripts/cleanup-stale-claims.sh
|
||||
bash -x scripts/cleanup-stale-claims.sh
|
||||
./scripts/cleanup-stale-claims.sh
|
||||
|
|
|
|||
|
|
@ -65,8 +65,10 @@ for PAGE in 1 2 3 4 5 6 7 8 9 10; do
|
|||
fi
|
||||
done
|
||||
|
||||
# Парсим JSON
|
||||
cat "$ISSUES_TMP" | python3 <<'PYEOF'
|
||||
# Парсим JSON — читаем файл прямо в Python через env var (не через pipe `cat | python3`).
|
||||
# При pipe + sys.exit(0) после print, cat получает SIGPIPE → script exits 141 под
|
||||
# set -o pipefail. Передача path через env var не использует pipe → no SIGPIPE.
|
||||
ISSUES_FILE="$ISSUES_TMP" python3 <<'PYEOF'
|
||||
import json, os, subprocess, sys, datetime
|
||||
|
||||
cutoff = int(os.environ.get("CUTOFF", "0"))
|
||||
|
|
@ -75,7 +77,8 @@ if cutoff == 0:
|
|||
sys.exit(1)
|
||||
|
||||
# Read pagination output — multiple JSON arrays separated by "---PAGE_END---"
|
||||
raw = sys.stdin.read()
|
||||
with open(os.environ["ISSUES_FILE"]) as f:
|
||||
raw = f.read()
|
||||
pages = [p.strip() for p in raw.split("---PAGE_END---") if p.strip()]
|
||||
data = []
|
||||
for p in pages:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue