fix: Desktop publish가 build-info 버전을 tauri.conf로 덮어쓰지 않음
CI bump(0.1.7) 후 deploy checkout으로 tauri.conf가 0.1.4로 돌아가도 latest.json에 올바른 빌드 버전이 반영되도록 한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -13,8 +13,6 @@ DESKTOP_RELEASE_DIR="${GC_DESKTOP_APP_RELEASE_DIR:-$ROOT/data/desktop-releases}"
|
|||||||
KEY_PATH="${TAURI_SIGNER_KEY:-$HOME/.tauri/goldenchart.key}"
|
KEY_PATH="${TAURI_SIGNER_KEY:-$HOME/.tauri/goldenchart.key}"
|
||||||
DESKTOP_DIR="$ROOT/desktop"
|
DESKTOP_DIR="$ROOT/desktop"
|
||||||
CONF="$DESKTOP_DIR/src-tauri/tauri.conf.json"
|
CONF="$DESKTOP_DIR/src-tauri/tauri.conf.json"
|
||||||
VERSION="$(node -p "require('$CONF').version")"
|
|
||||||
NOTES="${DESKTOP_RELEASE_NOTES:-GoldenChart Desktop $VERSION}"
|
|
||||||
BUILD_INFO="$ARTIFACT_DIR/build-info.json"
|
BUILD_INFO="$ARTIFACT_DIR/build-info.json"
|
||||||
|
|
||||||
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:${PATH:-/usr/bin:/bin}"
|
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:${PATH:-/usr/bin:/bin}"
|
||||||
@@ -23,6 +21,14 @@ export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:${PATH:-/usr/bi
|
|||||||
|
|
||||||
log() { echo "[publish-desktop] $*"; }
|
log() { echo "[publish-desktop] $*"; }
|
||||||
|
|
||||||
|
# CI bump 후 deploy checkout 등으로 tauri.conf가 되돌아갈 수 있음 — build-info 우선
|
||||||
|
VERSION="$(node -p "require('$CONF').version" 2>/dev/null || echo '0.1.0')"
|
||||||
|
if [[ -f "$BUILD_INFO" ]]; then
|
||||||
|
VERSION="$(node -e "try{console.log(JSON.parse(require('fs').readFileSync(process.argv[1],'utf8')).version||'')}catch{}" "$BUILD_INFO" 2>/dev/null || echo "$VERSION")"
|
||||||
|
[[ -z "$VERSION" ]] && VERSION="$(node -p "require('$CONF').version" 2>/dev/null || echo '0.1.0')"
|
||||||
|
fi
|
||||||
|
NOTES="${DESKTOP_RELEASE_NOTES:-GoldenChart Desktop $VERSION}"
|
||||||
|
|
||||||
log "=== Publish Desktop v$VERSION ==="
|
log "=== Publish Desktop v$VERSION ==="
|
||||||
log "Updates src: $UPDATES_SRC"
|
log "Updates src: $UPDATES_SRC"
|
||||||
log "Web static: $WEB_STATIC_DIR"
|
log "Web static: $WEB_STATIC_DIR"
|
||||||
@@ -62,14 +68,9 @@ else
|
|||||||
log " ./scripts/setup-desktop-updater-keys.sh 실행 후 Jenkins Credential 등록"
|
log " ./scripts/setup-desktop-updater-keys.sh 실행 후 Jenkins Credential 등록"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# build-info 복사
|
# build-info 복사 (빌드 시 기록된 버전 유지 — tauri.conf로 덮어쓰지 않음)
|
||||||
if [[ -f "$BUILD_INFO" ]]; then
|
if [[ -f "$BUILD_INFO" ]]; then
|
||||||
cp -f "$BUILD_INFO" "$PUBLISH_UPDATES/build-info.json"
|
cp -f "$BUILD_INFO" "$PUBLISH_UPDATES/build-info.json"
|
||||||
node -e "
|
|
||||||
const fs=require('fs'); const p=process.argv[1]; const v=process.argv[2];
|
|
||||||
const j=JSON.parse(fs.readFileSync(p,'utf8')); j.version=v;
|
|
||||||
fs.writeFileSync(p, JSON.stringify(j,null,2)+'\n');
|
|
||||||
" "$PUBLISH_UPDATES/build-info.json" "$VERSION"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# latest.json
|
# latest.json
|
||||||
|
|||||||
@@ -17,19 +17,10 @@ fi
|
|||||||
VERSION="$(node -p "require('$CONF').version" 2>/dev/null || echo '0.1.0')"
|
VERSION="$(node -p "require('$CONF').version" 2>/dev/null || echo '0.1.0')"
|
||||||
BUILD_INFO="$UPDATES_DIR/build-info.json"
|
BUILD_INFO="$UPDATES_DIR/build-info.json"
|
||||||
if [[ -f "$BUILD_INFO" ]]; then
|
if [[ -f "$BUILD_INFO" ]]; then
|
||||||
VERSION="$(node <<NODE
|
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 fs = require('fs');
|
if [[ -n "$BI_VER" ]]; then
|
||||||
const cmp = (a, b) => {
|
VERSION="$BI_VER"
|
||||||
const pa = a.split('.').map(Number), pb = b.split('.').map(Number);
|
fi
|
||||||
for (let i = 0; i < 3; i++) { const d = (pa[i]||0)-(pb[i]||0); if (d) return d; }
|
|
||||||
return 0;
|
|
||||||
};
|
|
||||||
const confV = '$VERSION';
|
|
||||||
let biV = confV;
|
|
||||||
try { biV = JSON.parse(fs.readFileSync('$BUILD_INFO', 'utf8')).version || confV; } catch {}
|
|
||||||
console.log(cmp(biV, confV) > 0 ? biV : confV);
|
|
||||||
NODE
|
|
||||||
)"
|
|
||||||
fi
|
fi
|
||||||
# dmg/exe 설치 파일명 버전은 manifest에 반영하지 않음 (updater tar.gz/exe와 불일치 시 루프 유발)
|
# dmg/exe 설치 파일명 버전은 manifest에 반영하지 않음 (updater tar.gz/exe와 불일치 시 루프 유발)
|
||||||
NOTES="${DESKTOP_RELEASE_NOTES:-GoldenChart Desktop $VERSION}"
|
NOTES="${DESKTOP_RELEASE_NOTES:-GoldenChart Desktop $VERSION}"
|
||||||
|
|||||||
Reference in New Issue
Block a user