Merge pull request 'fix(scripts): sync-web — флаги tea после подкоманды и git add без web/dist (#110, O-2)' (#111) from feat/110-sync-web-tea into main

This commit is contained in:
aep 2026-10-16 12:50:22 +03:00
commit 7c7018a0c2
2 changed files with 14 additions and 5 deletions

View File

@ -112,7 +112,8 @@ touch "$WT/.bounded"
echo "worktree: $WT ($TMP_BRANCH от $CORE_REF)"
# --- 3. Issue и ветка (не в dry-run) ---------------------------------------------------------------------------------
TEA=(tea --login home --repo RSHB/arm-core)
# tea 0.16+ принимает --login/--repo только после подкоманды: tea issues create --login … (arm-ka-docs#110)
TEA_FLAGS=(--login home --repo RSHB/arm-core)
ISSUE=""
BRANCH="$TMP_BRANCH"
if [ "$MODE" = sync ]; then
@ -123,7 +124,7 @@ $(printf '%s\n' "$COMMITS" | sed 's/^/- /')
Bounded-задача, выполнена \`docs/scripts/sync-web.sh\`: перенос набора синхронизации ($N_FILES файлов) в \`web/\`,
проверки vitest / tsc / biome / build, PR в main. Ревью перенесённого кода против бэкенда — за исполнителем."
ISSUE_URL=$("${TEA[@]}" issues create --title "$TITLE" --description "$BODY" | grep -o 'https://[^ ]*/issues/[0-9]*' | tail -1)
ISSUE_URL=$(tea issues create "${TEA_FLAGS[@]}" --title "$TITLE" --description "$BODY" | grep -o 'https://[^ ]*/issues/[0-9]*' | tail -1)
ISSUE=${ISSUE_URL##*/}
[ -n "$ISSUE" ] || die "не удалось создать issue через tea"
BRANCH="feat/$ISSUE-web-sync-$HEAD7"
@ -174,7 +175,9 @@ run_check build npm run build
echo "проверки: $TESTS; tsc чисто; biome $W_NEW предупреждений (на $CORE_REF — $W_MAIN); build ок"
# --- 6. Коммит, push, PR -------------------------------------------------------------------------------------------
git -C "$WT" add -A web -- ':!web/node_modules' ':!web/dist'
# web/dist игнорируется .gitignore arm-core; исключать его pathspec'ом нельзя — git 2.50 на явно названный
# игнорируемый путь отвечает «paths are ignored» и кодом 1 (arm-ka-docs#110). Симлинк node_modules .gitignore не ловит.
git -C "$WT" add -A web -- ':!web/node_modules'
git -C "$WT" -c commit.gpgsign=false commit -q -F - <<EOF
fix(web): синхронизация встроенного фронта с arm-web@${REF#origin/} ($HEAD7) (#$ISSUE)
@ -207,12 +210,12 @@ $(printf '%s\n' "$FILES" | sed 's/^/- web\//')
Ревью перенесённого кода против бэкенда — за исполнителем, находки с маркерами в комментариях к PR.
🤖 Generated with [Claude Code](https://claude.com/claude-code)"
PR_URL=$("${TEA[@]}" pulls create --head "$BRANCH" --base "${CORE_REF#origin/}" --title "fix(web): синхронизация встроенного фронта с arm-web@${REF#origin/} ($HEAD7) (#$ISSUE)" \
PR_URL=$(tea pulls create "${TEA_FLAGS[@]}" --head "$BRANCH" --base "${CORE_REF#origin/}" --title "fix(web): синхронизация встроенного фронта с arm-web@${REF#origin/} ($HEAD7) (#$ISSUE)" \
--description "$PR_BODY" | grep -o 'https://[^ ]*/pulls/[0-9]*' | tail -1)
echo
echo "готово: коммит $COMMIT, ветка $BRANCH"
echo "issue: $ISSUE_URL"
echo "PR: ${PR_URL:-создать вручную: tea pulls create --head $BRANCH}"
echo "PR: ${PR_URL:-создать вручную: tea pulls create ${TEA_FLAGS[*]} --head $BRANCH --base ${CORE_REF#origin/}}"
echo "исполнителю: проверить перенесённый код против бэкенда (коммиты arm-web выше), затем — merge и «закрывай»."
echo "worktree $WT, симлинк web/node_modules и .bounded остаются до закрытия."

View File

@ -123,5 +123,11 @@ rc=0; out=$("$SNAPSHOT" "$CORE" "$WORK/out6" origin/main </dev/null 2>&1) || rc=
check "$([ "$rc" != 0 ] && [ ! -d "$WORK/out6/arm-core" ] && echo 0 || echo 1)" "пайплайн при расхождении: снимок не делается (rc=$rc)"
unset ARM_WEB
# --- 6. вызовы tea: флаги после подкоманды ---------------------------------------------------------------------------
# tea 0.16 не принимает --login/--repo перед подкомандой («flag provided but not defined: -login», arm-ka-docs#110);
# сам tea тест не вызывает (нет сети), поэтому проверяется текст скриптов
bad=$(grep -nE '(^|[^[:alnum:]_-])tea[[:space:]]+-' "$SYNC" "$SNAPSHOT" || true)
check "$([ -z "$bad" ] && echo 0 || echo 1)" "tea: флаги идут после подкоманды${bad:+ — нарушения: $bad}"
[ "$fail" = 0 ] || exit 1
echo "ok: sync-web.sh — точка синхронизации, перенос набора, отказ при расхождении, пайплайн переноса"