Files
goldenChart/scripts/push-with-desktop-version.sh
T
2026-06-14 23:49:16 +09:00

71 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# git push + desktop semver 명시 bump (커밋 포함)
#
# Desktop 은 frontend 소스를 번들하고 backend API 를 사용하므로
# frontend / backend / desktop / packages/shared 변경 후 push 시 사용하세요.
#
# Usage:
# ./scripts/push-with-desktop-version.sh [git push 인자...]
# ./scripts/push-with-desktop-version.sh origin main
#
# Env:
# TRIGGER_DESKTOP_BUILD=1 push 후 Jenkins Desktop 빌드 트리거 (기본 1)
# DESKTOP_SKIP_BUMP=1 버전 bump 생략 (이미 올린 경우)
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
log() { echo "[push-desktop] $*"; }
if ! git diff-index --quiet HEAD --; then
log "ERROR: commit 되지 않은 변경이 있습니다."
log " 1) 코드 변경을 git commit"
log " 2) ./scripts/push-with-desktop-version.sh 실행"
exit 1
fi
REMOTE="${1:-origin}"
BRANCH="${2:-main}"
if [[ $# -ge 1 ]]; then
PUSH_ARGS=("$@")
else
PUSH_ARGS=(origin main)
fi
if [[ "${DESKTOP_SKIP_BUMP:-}" != "1" ]]; then
BEFORE="$("$ROOT/scripts/read-desktop-version.sh")"
NEW_VER="$("$ROOT/scripts/bump-desktop-version-for-push.sh")"
log "Desktop version: v${BEFORE} → v${NEW_VER}"
git add desktop/src-tauri/tauri.conf.json desktop/package.json
if git diff --cached --quiet -- desktop/src-tauri/tauri.conf.json desktop/package.json; then
log "버전 파일 변경 없음 (v${NEW_VER})"
else
git commit -m "$(cat <<EOF
chore(desktop): bump version to v${NEW_VER}
EOF
)"
log "커밋됨: chore(desktop): bump version to v${NEW_VER}"
fi
else
NEW_VER="$("$ROOT/scripts/read-desktop-version.sh")"
log "버전 bump 생략 — v${NEW_VER}"
fi
log "git push ${PUSH_ARGS[*]}"
git push "${PUSH_ARGS[@]}"
if [[ "${TRIGGER_DESKTOP_BUILD:-1}" == "1" ]] && [[ -x "$ROOT/scripts/trigger-desktop-jenkins-build.sh" ]]; then
log "Jenkins Desktop Pipeline 트리거..."
if "$ROOT/scripts/trigger-desktop-jenkins-build.sh"; then
log "Jenkins 빌드 큐 등록 완료 (v${NEW_VER})"
else
log "[WARN] Jenkins 트리거 실패 — 수동으로 goldenChart-Desktop-Pipeline 실행"
fi
fi
log "완료 — 다음 Desktop 빌드 버전: v${NEW_VER}"