버전 업 오류
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@goldenchart/desktop",
|
"name": "@goldenchart/desktop",
|
||||||
"version": "0.1.18",
|
"version": "0.1.22",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "GoldenChart",
|
"productName": "GoldenChart",
|
||||||
"version": "0.1.18",
|
"version": "0.1.22",
|
||||||
"identifier": "com.goldenchart.desktop",
|
"identifier": "com.goldenchart.desktop",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "npm run dev",
|
"beforeDevCommand": "npm run dev",
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ CONF="${WORK_TREE}/desktop/src-tauri/tauri.conf.json"
|
|||||||
LATEST="${WORK_TREE}/frontend/public/desktop/updates/latest.json"
|
LATEST="${WORK_TREE}/frontend/public/desktop/updates/latest.json"
|
||||||
UPDATES_DIR="${WORK_TREE}/frontend/public/desktop/updates"
|
UPDATES_DIR="${WORK_TREE}/frontend/public/desktop/updates"
|
||||||
BUILD_INFO="${WORK_TREE}/dist-desktop/build-info.json"
|
BUILD_INFO="${WORK_TREE}/dist-desktop/build-info.json"
|
||||||
RELEASE_DIR="${WORK_TREE}/data/desktop-releases"
|
RELEASE_DIR="${GC_DESKTOP_APP_RELEASE_DIR:-$WORK_TREE/data/desktop-releases}"
|
||||||
|
|
||||||
node -e "
|
node -e "
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
|||||||
@@ -18,10 +18,16 @@ log "WORK_TREE=$WORK_TREE"
|
|||||||
|
|
||||||
cd "$WORK_TREE"
|
cd "$WORK_TREE"
|
||||||
|
|
||||||
|
# CI 에서는 BUILD_NUMBER 유무와 관계없이 semver bump (로컬 수동 실행 포함)
|
||||||
|
export DESKTOP_AUTO_BUMP="${DESKTOP_AUTO_BUMP:-1}"
|
||||||
|
|
||||||
# Git 동기화 (checkout 후 tauri.conf 가 git 버전으로 리셋됨 → bump 필수)
|
# Git 동기화 (checkout 후 tauri.conf 가 git 버전으로 리셋됨 → bump 필수)
|
||||||
if [[ -d "${GIT_DIR:-/Volumes/ADATA/git/goldenChart.git}" ]]; then
|
GIT_DIR="${GIT_DIR:-/Volumes/ADATA/git/goldenChart.git}"
|
||||||
git --git-dir="${GIT_DIR:-/Volumes/ADATA/git/goldenChart.git}" \
|
if [[ -d "$GIT_DIR" ]]; then
|
||||||
--work-tree="$WORK_TREE" checkout -f main 2>/dev/null || true
|
if git --git-dir="$GIT_DIR" remote get-url origin >/dev/null 2>&1; then
|
||||||
|
git --git-dir="$GIT_DIR" fetch origin main 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
git --git-dir="$GIT_DIR" --work-tree="$WORK_TREE" checkout -f main 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chmod +x "$WORK_TREE/scripts/"*.sh 2>/dev/null || true
|
chmod +x "$WORK_TREE/scripts/"*.sh 2>/dev/null || true
|
||||||
@@ -50,12 +56,15 @@ export WORK_TREE
|
|||||||
export BUILD_NUMBER="${BUILD_NUMBER:-}"
|
export BUILD_NUMBER="${BUILD_NUMBER:-}"
|
||||||
export DESKTOP_BUMP_ON_CI="${DESKTOP_BUMP_ON_CI:-1}"
|
export DESKTOP_BUMP_ON_CI="${DESKTOP_BUMP_ON_CI:-1}"
|
||||||
|
|
||||||
# mobile pipeline 과 동일: git checkout 직후 semver bump (0.1.4 고정 tauri.conf 방지)
|
# mobile pipeline 과 동일: git checkout 직후 semver bump (0.1.18 등 git 구버전 방지)
|
||||||
if [[ -z "${BUMP_VERSION:-}" ]] && [[ -n "${BUILD_NUMBER:-}" ]] && [[ "${DESKTOP_BUMP_ON_CI:-1}" == "1" ]]; then
|
if [[ -z "${BUMP_VERSION:-}" ]] && [[ "${DESKTOP_BUMP_ON_CI:-1}" == "1" ]]; then
|
||||||
log "CI Desktop version bump..."
|
log "CI Desktop version bump..."
|
||||||
BUMPED="$("$WORK_TREE/scripts/bump-desktop-version-from-release.sh")"
|
BUMPED="$("$WORK_TREE/scripts/bump-desktop-version-from-release.sh")"
|
||||||
export DESKTOP_SKIP_VERSION_BUMP=1
|
export DESKTOP_SKIP_VERSION_BUMP=1
|
||||||
log "Desktop version → $BUMPED"
|
log "Desktop version → $BUMPED (tauri.conf + package.json)"
|
||||||
|
else
|
||||||
|
BUMPED="$(node -p "require('$WORK_TREE/desktop/src-tauri/tauri.conf.json').version" 2>/dev/null || echo '?')"
|
||||||
|
log "Desktop version bump skipped — using v$BUMPED"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"$WORK_TREE/scripts/build-desktop.sh" "${BUILD_ARGS[@]}"
|
"$WORK_TREE/scripts/build-desktop.sh" "${BUILD_ARGS[@]}"
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ set -euo pipefail
|
|||||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
export PATH="/opt/homebrew/bin:/usr/local/bin:${PATH:-/usr/bin:/bin}"
|
export PATH="/opt/homebrew/bin:/usr/local/bin:${PATH:-/usr/bin:/bin}"
|
||||||
UPDATES_DIR="${UPDATES_DIR:-${WORK_TREE:-$ROOT}/frontend/public/desktop/updates}"
|
UPDATES_DIR="${UPDATES_DIR:-${WORK_TREE:-$ROOT}/frontend/public/desktop/updates}"
|
||||||
CONF="$ROOT/desktop/src-tauri/tauri.conf.json"
|
|
||||||
BASE_URL="${DESKTOP_UPDATE_BASE_URL:-https://exdev.co.kr/desktop/updates}"
|
BASE_URL="${DESKTOP_UPDATE_BASE_URL:-https://exdev.co.kr/desktop/updates}"
|
||||||
BASE_URL="${BASE_URL/http:\/\//https:\/\/}"
|
BASE_URL="${BASE_URL/http:\/\//https:\/\/}"
|
||||||
|
|
||||||
@@ -14,16 +13,47 @@ if [[ ! -d "$UPDATES_DIR" ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VERSION="$(node -p "require('$CONF').version" 2>/dev/null || echo '0.1.0')"
|
# tauri.conf(git) 는 구버전일 수 있음 — build-info·latest.json·설치 파일명 우선
|
||||||
BUILD_INFO="$UPDATES_DIR/build-info.json"
|
VERSION="$(node -e "
|
||||||
if [[ -f "$BUILD_INFO" ]]; then
|
const fs = require('fs');
|
||||||
BI_VER="$(node -e "try{console.log(JSON.parse(require('fs').readFileSync(process.argv[1],'utf8')).version||'')}catch{}" "$BUILD_INFO" 2>/dev/null || true)"
|
const path = require('path');
|
||||||
if [[ -n "$BI_VER" ]]; then
|
const dir = process.argv[1];
|
||||||
VERSION="$BI_VER"
|
const parse = v => String(v || '0.0.0').trim().replace(/^v/i, '').split('.').map(n => parseInt(n, 10) || 0);
|
||||||
fi
|
const cmp = (a, b) => {
|
||||||
fi
|
const pa = parse(a), pb = parse(b);
|
||||||
# dmg/exe 설치 파일명 버전은 manifest에 반영하지 않음 (updater tar.gz/exe와 불일치 시 루프 유발)
|
for (let i = 0; i < 3; i++) {
|
||||||
|
const d = (pa[i] || 0) - (pb[i] || 0);
|
||||||
|
if (d) return d;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
const maxVer = (cur, next) => (next && cmp(next, cur) > 0 ? next : cur);
|
||||||
|
let base = '0.0.0';
|
||||||
|
const bi = path.join(dir, 'build-info.json');
|
||||||
|
if (fs.existsSync(bi)) {
|
||||||
|
try { base = maxVer(base, JSON.parse(fs.readFileSync(bi, 'utf8')).version); } catch {}
|
||||||
|
}
|
||||||
|
const latest = path.join(dir, 'latest.json');
|
||||||
|
if (fs.existsSync(latest)) {
|
||||||
|
try { base = maxVer(base, JSON.parse(fs.readFileSync(latest, 'utf8')).version); } catch {}
|
||||||
|
}
|
||||||
|
if (fs.existsSync(dir)) {
|
||||||
|
for (const name of fs.readdirSync(dir)) {
|
||||||
|
const m = name.match(/GoldenChart[_-](\\d+\\.\\d+\\.\\d+)/i);
|
||||||
|
if (m) base = maxVer(base, m[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (base === '0.0.0') {
|
||||||
|
try {
|
||||||
|
const conf = JSON.parse(fs.readFileSync(process.argv[2], 'utf8'));
|
||||||
|
if (conf.version) base = conf.version;
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
console.log(base);
|
||||||
|
" "$UPDATES_DIR" "$ROOT/desktop/src-tauri/tauri.conf.json")"
|
||||||
|
|
||||||
NOTES="${DESKTOP_RELEASE_NOTES:-GoldenChart Desktop $VERSION}"
|
NOTES="${DESKTOP_RELEASE_NOTES:-GoldenChart Desktop $VERSION}"
|
||||||
|
echo "[reconcile-latest] version source → v${VERSION}"
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
node "$ROOT/scripts/generate-desktop-latest-json.mjs" \
|
node "$ROOT/scripts/generate-desktop-latest-json.mjs" \
|
||||||
@@ -37,7 +67,7 @@ set -e
|
|||||||
if [[ "$RC" -eq 0 ]]; then
|
if [[ "$RC" -eq 0 ]]; then
|
||||||
echo "[reconcile-latest] updated $UPDATES_DIR/latest.json"
|
echo "[reconcile-latest] updated $UPDATES_DIR/latest.json"
|
||||||
elif [[ "$RC" -eq 2 ]]; then
|
elif [[ "$RC" -eq 2 ]]; then
|
||||||
echo "[reconcile-latest] no signed bundles — keeping existing latest.json"
|
echo "[reconcile-latest] no signed bundles — keeping existing latest.json (v${VERSION})"
|
||||||
else
|
else
|
||||||
exit "$RC"
|
exit "$RC"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ export PATH="/opt/homebrew/opt/llvm/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/us
|
|||||||
export WORK_TREE="${WORK_TREE}"
|
export WORK_TREE="${WORK_TREE}"
|
||||||
export GIT_DIR="${GIT_DIR}"
|
export GIT_DIR="${GIT_DIR}"
|
||||||
export BUILD_NUMBER="\${BUILD_NUMBER}"
|
export BUILD_NUMBER="\${BUILD_NUMBER}"
|
||||||
|
export DESKTOP_AUTO_BUMP=1
|
||||||
export TAURI_SIGNER_KEY="\${TAURI_SIGNER_KEY:-\$HOME/.tauri/goldenchart.key}"
|
export TAURI_SIGNER_KEY="\${TAURI_SIGNER_KEY:-\$HOME/.tauri/goldenchart.key}"
|
||||||
export DESKTOP_BUMP_ON_CI=1
|
export DESKTOP_BUMP_ON_CI=1
|
||||||
export DESKTOP_DEPLOY_WEB=0
|
export DESKTOP_DEPLOY_WEB=0
|
||||||
|
|||||||
Reference in New Issue
Block a user