desktop 앱 적용
This commit is contained in:
Executable
+67
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
# Jenkins goldenChart-Desktop-Pipeline — 전체 빌드·배포 진입점
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
WORK_TREE="${WORK_TREE:-/Users/aidev/apps/goldenChart}"
|
||||
export PATH="/opt/homebrew/opt/llvm/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:${PATH:-/usr/bin:/bin}"
|
||||
for prefix in "$HOME/homebrew" /opt/homebrew; do
|
||||
[[ -x "$prefix/bin/brew" ]] && eval "$("$prefix/bin/brew" shellenv)"
|
||||
done
|
||||
# shellcheck disable=SC1091
|
||||
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
|
||||
|
||||
log() { echo "[desktop-pipeline $(date '+%H:%M:%S')] $*"; }
|
||||
|
||||
log "=== goldenChart Desktop Pipeline #${BUILD_NUMBER:-local} ==="
|
||||
log "WORK_TREE=$WORK_TREE"
|
||||
|
||||
cd "$WORK_TREE"
|
||||
|
||||
# Git 동기화 (Jenkins SCM checkout 후에도 file:// bare 와 맞춤)
|
||||
if [[ -d "${GIT_DIR:-/Volumes/ADATA/git/goldenChart.git}" ]]; then
|
||||
git --git-dir="${GIT_DIR:-/Volumes/ADATA/git/goldenChart.git}" \
|
||||
--work-tree="$WORK_TREE" checkout -f main 2>/dev/null || true
|
||||
fi
|
||||
|
||||
chmod +x "$ROOT/scripts/"*.sh 2>/dev/null || true
|
||||
|
||||
# 의존성 (최초 1회 — 이미 있으면 빠르게 통과)
|
||||
if ! command -v cargo-xwin >/dev/null 2>&1 || ! command -v rustc >/dev/null 2>&1; then
|
||||
log "Desktop build deps 설치..."
|
||||
"$ROOT/scripts/install-desktop-build-deps.sh"
|
||||
fi
|
||||
|
||||
# updater pubkey (repo에 desktop/updater.pub 있으면 patch만)
|
||||
if [[ -f "$ROOT/desktop/updater.pub" ]]; then
|
||||
"$ROOT/scripts/patch-tauri-updater-pubkey.sh"
|
||||
elif [[ -f "${TAURI_SIGNER_KEY:-$HOME/.tauri/goldenchart.key}" ]]; then
|
||||
"$ROOT/scripts/setup-desktop-updater-keys.sh"
|
||||
fi
|
||||
|
||||
BUILD_ARGS=(--all)
|
||||
if [[ -n "${DESKTOP_BUILD_MAC_ONLY:-}" ]]; then BUILD_ARGS=(--mac); fi
|
||||
if [[ -n "${DESKTOP_BUILD_WIN_ONLY:-}" ]]; then BUILD_ARGS=(--win); fi
|
||||
if [[ -n "${BUMP_VERSION:-}" ]]; then BUILD_ARGS+=(--bump-version "$BUMP_VERSION"); fi
|
||||
|
||||
"$ROOT/scripts/build-desktop.sh" "${BUILD_ARGS[@]}"
|
||||
|
||||
WORK_TREE="$WORK_TREE" \
|
||||
ARTIFACT_DIR="$ROOT/dist-desktop" \
|
||||
DESKTOP_UPDATE_BASE_URL="${DESKTOP_UPDATE_BASE_URL:-http://exdev.co.kr/desktop/updates}" \
|
||||
TAURI_SIGNER_KEY="${TAURI_SIGNER_KEY:-$HOME/.tauri/goldenchart.key}" \
|
||||
DESKTOP_RELEASE_NOTES="${DESKTOP_RELEASE_NOTES:-Build ${BUILD_NUMBER:-local}}" \
|
||||
"$ROOT/scripts/publish-desktop-update.sh"
|
||||
|
||||
# Jenkins artifact archive 경로
|
||||
if [[ -d "$ROOT/dist-desktop" ]]; then
|
||||
log "Artifacts ready: $ROOT/dist-desktop"
|
||||
fi
|
||||
|
||||
# 웹 frontend Docker 재배포 (latest.json static 포함) — 선택
|
||||
if [[ "${DESKTOP_DEPLOY_WEB:-0}" == "1" ]] && [[ -x "${DEPLOY_SCRIPT:-/Volumes/ADATA/git/deploy.sh}" ]]; then
|
||||
log "Trigger web deploy (frontend only)..."
|
||||
SERVICE_NAME=frontend "${DEPLOY_SCRIPT:-/Volumes/ADATA/git/deploy.sh}"
|
||||
fi
|
||||
|
||||
log "Pipeline complete."
|
||||
Reference in New Issue
Block a user