feat(sdlc-gate): 新增工作包 PR 閘門,未結清就擋下別的階段技能
This commit is contained in:
+8
-2
@@ -582,7 +582,9 @@ if [ "$action" = smoke ]; then
|
||||
# $2 不加引號展開:子命令是固定字面字,空字串時要展成「沒有參數」而不是空參數。
|
||||
smoke_one() {
|
||||
_h="$1"; _s="${2:-}"
|
||||
_out=$(printf '{}' | JSC_CLI="$cli" sh "$HOOKS/$_h" $_s 2>&1); _rc=$?
|
||||
# 技能名一律清空:冒煙要驗的是「沒有技能情境時腳本跑得完」。留著繼承來的 JSC_SKILL,
|
||||
# sdlc-gate.sh wp-check skill 會拿它當真實呼叫判定,有未結清 PR 時就誤報成執行期錯誤。
|
||||
_out=$(printf '{}' | JSC_CLI="$cli" JSC_SKILL="" SKILL="" sh "$HOOKS/$_h" $_s 2>&1); _rc=$?
|
||||
if [ "$_rc" -eq 0 ]; then
|
||||
printf '[jsc] %s%s:exit 0,正常。\n' "$_h" "${_s:+ $_s}" >> "$smoke_out"
|
||||
elif [ "$_h" = sdlc-gate.sh ] && [ "$_s" = check ] && [ "$_rc" -eq 2 ]; then
|
||||
@@ -602,9 +604,13 @@ if [ "$action" = smoke ]; then
|
||||
smoke_one version-guard.sh
|
||||
smoke_one skill-usage.sh
|
||||
smoke_one ste100-guard.sh
|
||||
# sdlc-gate.sh 有兩個 hook 模式,接在不同事件上,兩個都要驗:wp-check prompt 一律 exit 0,
|
||||
# wp-check skill 在取不到技能名時放行(上面已清空技能名),所以兩者都不需要白名單例外。
|
||||
smoke_one sdlc-gate.sh "wp-check prompt"
|
||||
smoke_one sdlc-gate.sh "wp-check skill"
|
||||
|
||||
if [ "$smoke_fails" -eq 0 ]; then
|
||||
printf 'status=ok reason=%s\n' "五支 hook 都跑得完,沒有執行期錯誤"
|
||||
printf 'status=ok reason=%s\n' "五支 hook 的每個接線模式都跑得完,沒有執行期錯誤"
|
||||
cat "$smoke_out"; rm -f "$smoke_out"; exit 0
|
||||
fi
|
||||
printf 'status=failed reason=%s\n' "$smoke_fails 支 hook 有執行期錯誤"
|
||||
|
||||
Reference in New Issue
Block a user