2026-02-24 20:44:16 +00:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
# public/version.json üretir (deploy öncesi, HOST üzerinde).
|
|
|
|
|
|
#
|
|
|
|
|
|
# Asıl uygulama scripts/generate-version.js dosyasıdır; node varsa o çalışır.
|
|
|
|
|
|
# Aşağıdaki bash karşılığı yalnızca node bulunmayan sunucular içindir ve
|
|
|
|
|
|
# js sürümüyle aynı çıktıyı üretmelidir.
|
|
|
|
|
|
|
|
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
|
|
|
2026-02-24 20:44:16 +00:00
|
|
|
|
echo "> version.json oluşturuluyor..."
|
|
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
if command -v node >/dev/null 2>&1; then
|
|
|
|
|
|
node scripts/generate-version.js
|
|
|
|
|
|
exit 0
|
|
|
|
|
|
fi
|
2026-02-24 20:44:16 +00:00
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
# origin'de olmayan yerel tag'ler sürüm numarasını bozar; temizle.
|
|
|
|
|
|
git fetch --prune --prune-tags --tags origin >/dev/null 2>&1 || true
|
2026-02-24 20:44:16 +00:00
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
# Sürüm sırası tag adına göre (creatordate değil); 1.1.10 > 1.1.09.
|
|
|
|
|
|
VERSIONS=$(git tag --sort=-v:refname)
|
|
|
|
|
|
ROOT_COMMIT=$(git rev-parse --short HEAD)
|
|
|
|
|
|
BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
|
|
|
|
BUILD_DATE=$(date -u +%Y-%m-%d)
|
|
|
|
|
|
# Her deploy'da değişir; uygulamanın yeni sürüm algılaması buna bakar.
|
|
|
|
|
|
BUILD_ID="${ROOT_COMMIT}.$(date -u +%s)"
|
|
|
|
|
|
|
|
|
|
|
|
RELEASES=""
|
2026-02-24 20:44:16 +00:00
|
|
|
|
FIRST=true
|
|
|
|
|
|
for TAG in $VERSIONS; do
|
2026-08-12 19:08:14 +00:00
|
|
|
|
VER=$(echo "$TAG" | sed 's/^v//')
|
|
|
|
|
|
DATE=$(git log -1 --format=%ad --date=short "$TAG")
|
|
|
|
|
|
COMMIT=$(git rev-list -n 1 "$TAG")
|
|
|
|
|
|
MESSAGE=$(git tag -l --format="%(contents)" "$TAG" | grep -v '^$' | sed 's/^[[:space:]]*-[[:space:]]*//' | jq -R . | jq -s .)
|
2026-02-24 20:44:16 +00:00
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
if [ "$FIRST" = true ]; then FIRST=false; else RELEASES+=","; fi
|
|
|
|
|
|
RELEASES+="{\"version\":\"$VER\",\"buildDate\":\"$DATE\",\"commit\":\"$COMMIT\",\"changeLog\":$MESSAGE}"
|
2026-02-24 20:44:16 +00:00
|
|
|
|
done
|
|
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
# Sürüm = en son tag. Tag'siz commit'ler için sahte sürüm üretilmez; deploy
|
|
|
|
|
|
# algılaması sürüm numarasına değil, her derlemede değişen buildId'ye bakar.
|
|
|
|
|
|
LAST_TAG=$(echo "$VERSIONS" | head -n1 | sed 's/^v//')
|
|
|
|
|
|
VERSION=${LAST_TAG:-$(jq -r .version package.json)}
|
2026-02-24 20:44:16 +00:00
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
printf '{"buildId":"%s","buildTime":"%s","buildDate":"%s","commit":"%s","version":"%s","releases":[%s]}' \
|
|
|
|
|
|
"$BUILD_ID" "$BUILD_TIME" "$BUILD_DATE" "$ROOT_COMMIT" "$VERSION" "$RELEASES" | jq . > public/version.json
|
2026-02-24 20:44:16 +00:00
|
|
|
|
|
2026-08-12 19:08:14 +00:00
|
|
|
|
echo "> version.json: v${VERSION} (${BUILD_ID})"
|