diff --git a/.gitea/workflows/deploy-wise.yml b/.gitea/workflows/deploy-wise.yml index b632df5..59caa52 100644 --- a/.gitea/workflows/deploy-wise.yml +++ b/.gitea/workflows/deploy-wise.yml @@ -62,7 +62,8 @@ jobs: run: | set -e df -h /opt | tail -1 - free -h | head -2 + # `free -h | head -2` 도 같은 SIGPIPE 함정을 안고 있다(작아서 대개 통과하지만 경합이다). + free -h # 터널이 살아 있어야 배포 후 확인이 가능하다 systemctl is-active arko-was-tunnel || echo "::warning::터널이 죽어 있다 — 배포 후 확인이 실패할 수 있다" @@ -80,7 +81,11 @@ jobs: run: | set -e # 바이트코드 major=51(Java 7). JDK 11/17 로 잘못 빌드되면 WAS 에서 못 뜬다. - CLS=$(find target/classes -name '*.class' | head -1) + # `find ... | head -1` 로 쓰면 안 된다. head 가 첫 줄을 받고 파이프를 닫는 순간 + # find 가 SIGPIPE(141)로 죽고, act 가 스텝을 bash -e -o pipefail 로 돌리기 때문에 + # 파이프라인 전체가 실패로 판정된다 — 출력 한 줄 없이 배포가 멈춘다(2026-08-26 실제 발생). + # -print -quit 는 첫 매치를 찍고 스스로 끝내므로 파이프가 필요 없다. + CLS=$(find target/classes -name '*.class' -print -quit) VER=$(od -An -t d1 -j 7 -N 1 "$CLS" | tr -d ' ') echo "바이트코드 major=$VER (51이어야 정상)" [ "$VER" = "51" ] || { echo "::error::JDK 8 이 아닌 컴파일러로 빌드됐다"; exit 1; }