자동빌드 배포 오류 수정
This commit is contained in:
Executable
+56
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
# main HEAD vs 마지막 성공 PC 빌드(build-info) 비교 → source-state.json (API·UI용)
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
WORK_TREE="${WORK_TREE:-$ROOT}"
|
||||
RELEASE_DIR="${GC_DESKTOP_APP_RELEASE_DIR:-$WORK_TREE/data/desktop-releases}"
|
||||
BUILD_INFO="$RELEASE_DIR/build-info.json"
|
||||
OUT="$RELEASE_DIR/source-state.json"
|
||||
|
||||
mkdir -p "$RELEASE_DIR"
|
||||
|
||||
HEAD_SHA="$(git -C "$WORK_TREE" rev-parse HEAD 2>/dev/null || echo '')"
|
||||
HEAD_SHORT="$(git -C "$WORK_TREE" rev-parse --short HEAD 2>/dev/null || echo '')"
|
||||
|
||||
LAST_SHA=""
|
||||
PUBLISHED_VER=""
|
||||
if [[ -f "$BUILD_INFO" ]]; then
|
||||
read -r LAST_SHA PUBLISHED_VER < <(node -e "
|
||||
const fs=require('fs');
|
||||
try {
|
||||
const j=JSON.parse(fs.readFileSync(process.argv[1],'utf8'));
|
||||
console.log((j.gitSha||'')+' '+(j.version||''));
|
||||
} catch { console.log(' '); }
|
||||
" "$BUILD_INFO")
|
||||
fi
|
||||
|
||||
PENDING=0
|
||||
AFFECTS=0
|
||||
if [[ -n "$HEAD_SHA" && -n "$LAST_SHA" && "$HEAD_SHA" != "$LAST_SHA" ]]; then
|
||||
PENDING="$(git -C "$WORK_TREE" rev-list --count "${LAST_SHA}..${HEAD_SHA}" 2>/dev/null || echo 0)"
|
||||
# shellcheck disable=SC1091
|
||||
source "$ROOT/scripts/desktop-version-scope.sh"
|
||||
if desktop_version_diff_affects_app "${LAST_SHA}..${HEAD_SHA}"; then
|
||||
AFFECTS=1
|
||||
fi
|
||||
elif [[ -n "$HEAD_SHA" && -z "$LAST_SHA" ]]; then
|
||||
PENDING=1
|
||||
AFFECTS=1
|
||||
fi
|
||||
|
||||
node -e "
|
||||
const fs=require('fs');
|
||||
const out=process.argv[1];
|
||||
const data={
|
||||
headSha: process.argv[2]||'',
|
||||
headShort: process.argv[3]||'',
|
||||
lastBuiltSha: process.argv[4]||'',
|
||||
publishedVersion: process.argv[5]||'',
|
||||
pendingCommitCount: parseInt(process.argv[6],10)||0,
|
||||
affectsDesktop: process.argv[7]==='1',
|
||||
updatedAt: new Date().toISOString(),
|
||||
};
|
||||
fs.writeFileSync(out, JSON.stringify(data,null,2)+'\n');
|
||||
console.log('[source-state]', data.headShort||'?','pending',data.pendingCommitCount,'affects',data.affectsDesktop);
|
||||
" "$OUT" "$HEAD_SHA" "$HEAD_SHORT" "$LAST_SHA" "$PUBLISHED_VER" "$PENDING" "$AFFECTS"
|
||||
Reference in New Issue
Block a user