Files
goldenChart/scripts/push-with-desktop-version.sh
T
2026-06-15 00:03:05 +09:00

71 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# git push + desktop semver bump (원격 latest.json 반영) + push + Jenkins
#
# plain git push 만 하면 git tauri.conf 버전 그대로 빌드될 수 있습니다.
# 이 스크립트 또는 Jenkins CI bump(DESKTOP_BUMP_ON_CI=1) 로 semver 가 올라갑니다.
#
# 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}"