#!/usr/bin/env bash # exdev Jenkins — goldenChart-Desktop-Pipeline Job 생성 set -euo pipefail export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:${PATH:-/usr/bin:/bin}" JENKINS_HOME="${JENKINS_HOME:-$HOME/.jenkins}" JENKINS_JOB="goldenChart-Desktop-Pipeline" JENKINS_TRIGGER_TOKEN="${JENKINS_DESKTOP_TRIGGER_TOKEN:-${GC_DESKTOP_JENKINS_TRIGGER_TOKEN:-goldenchart-desktop-build}}" GIT_DIR="${GIT_DIR:-/Volumes/ADATA/git/goldenChart.git}" WORK_TREE="${WORK_TREE:-/Users/aidev/apps/goldenChart}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" log() { echo "[install-desktop-jenkins] $*"; } log "Jenkins job 생성: $JENKINS_JOB" mkdir -p "${JENKINS_HOME}/jobs/${JENKINS_JOB}" cat > "${JENKINS_HOME}/jobs/${JENKINS_JOB}/config.xml" << JENKINS_XML GoldenChart Desktop — Tauri macOS dmg + Windows NSIS + updater false 2 file://${GIT_DIR} */main false true false false false ${JENKINS_TRIGGER_TOKEN} false #!/bin/bash set -euo pipefail export PATH="/opt/homebrew/opt/llvm/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:\$PATH" export WORK_TREE="${WORK_TREE}" export GIT_DIR="${GIT_DIR}" export BUILD_NUMBER="\${BUILD_NUMBER}" export TAURI_SIGNER_KEY="\${TAURI_SIGNER_KEY:-\$HOME/.tauri/goldenchart.key}" export DESKTOP_BUMP_ON_CI=1 export DESKTOP_DEPLOY_WEB=0 export DESKTOP_UPDATE_BASE_URL="${DESKTOP_UPDATE_BASE_URL:-https://exdev.co.kr/desktop/updates}" "${WORK_TREE}/scripts/jenkins-desktop-pipeline.sh" dist-desktop/** true false false true JENKINS_XML if curl -sf -o /dev/null "http://127.0.0.1:8090/login" 2>/dev/null; then curl -sf -X POST "http://127.0.0.1:8090/reload" 2>/dev/null || true fi log "완료: http://127.0.0.1:8090/job/${JENKINS_JOB}/" log "원격 트리거 토큰: $JENKINS_TRIGGER_TOKEN" log "backend env: GC_DESKTOP_JENKINS_TRIGGER_TOKEN=$JENKINS_TRIGGER_TOKEN" log "" log "Jenkins JVM (file:// bare checkout 허용, launchd plist 또는 nohup java -D):" log " -Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" log "" log "웹 UI 「앱 빌드」를 쓰려면 Jenkins API Token 필수:" log " ./scripts/configure-desktop-jenkins-backend.sh" log " (또는 .env에 GC_DESKTOP_JENKINS_USER / GC_DESKTOP_JENKINS_TOKEN 설정 후 docker compose up -d backend)" log "" log "Jenkins Credentials (Secret file):" log " ID: tauri-signer-key → \$HOME/.tauri/goldenchart.key" log "" log "최초 1회 (서버):" log " ./scripts/install-desktop-build-deps.sh" log " ./scripts/setup-desktop-updater-keys.sh" log " git add desktop/updater.pub && git commit"