From 0767ebb60e06a07bc41670d337f8d6f615cbaa92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Tue, 23 Sep 2025 09:10:03 +0300 Subject: [PATCH] =?UTF-8?q?Versiyon=20g=C3=BCncellemesi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/deployment/scripts/build/ui.sh | 17 ++-- ui/package.json | 1 + ui/public/version.json | 131 +++++++++++++++++++++++++ ui/scripts/write-version.js | 67 +++++++++++++ 4 files changed, 205 insertions(+), 11 deletions(-) create mode 100644 ui/public/version.json create mode 100644 ui/scripts/write-version.js diff --git a/configs/deployment/scripts/build/ui.sh b/configs/deployment/scripts/build/ui.sh index 9058dcc1..08684917 100644 --- a/configs/deployment/scripts/build/ui.sh +++ b/configs/deployment/scripts/build/ui.sh @@ -8,23 +8,18 @@ git fetch && git pull cd ~/kurs-platform/ui -# Git tag'den versiyonu al (örn: v1.0.11 -> 1.0.11), yoksa package.json'daki versiyon +# Git tag'den son versiyonu al (örn: v1.0.11 -> 1.0.11), yoksa package.json'daki versiyon VERSION=$(git tag --sort=-creatordate | head -n1 | sed 's/^v//' || jq -r .version package.json) - -# Commit hash -COMMIT=$(git rev-parse --short HEAD) - echo "Build versiyonu: ${VERSION}" -echo "Commit: ${COMMIT}" -./scripts/generate-version.sh +# Deploy öncesi git üzerindeki tüm versiyon bilgilerini güncelle +#./scripts/generate-version.sh +./scripts/write-version.js + docker build \ -t devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-${VERSION} \ -t devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-latest \ - -f Kurs.Platform.Ui.Dockerfile \ - --build-arg ENV=${ENV} \ - --build-arg APP_VERSION=${VERSION} \ - --build-arg GIT_COMMIT=${COMMIT} . + -f Kurs.Platform.Ui.Dockerfile --build-arg ENV=${ENV} . docker push devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-${VERSION} docker push devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-latest diff --git a/ui/package.json b/ui/package.json index aed52e8d..8d46a76f 100644 --- a/ui/package.json +++ b/ui/package.json @@ -6,6 +6,7 @@ "type": "module", "scripts": { "start": "vite", + "prebuild": "node scripts/write-version.js", "build": "vite build", "preview": "vite preview", "lint": "eslint . --ext .js,.jsx,.ts,.tsx,.json", diff --git a/ui/public/version.json b/ui/public/version.json new file mode 100644 index 00000000..b367163e --- /dev/null +++ b/ui/public/version.json @@ -0,0 +1,131 @@ +{ + "commit": "a8dbf4c", + "releases": [ + { + "version": "1.0.16", + "buildDate": "2025-09-23", + "commit": "08799590e2e3dcee039e88370540c9224420d17f", + "changeLog": [ + "Genel versiyon düzeltmesi" + ] + }, + { + "version": "1.0.15", + "buildDate": "2025-09-23", + "commit": "08799590e2e3dcee039e88370540c9224420d17f", + "changeLog": [ + "Genel versiyon güncelleme hataları", + "- UI versiyon gösterilecek", + "- Deploy edilince otomatik sayfa tazelenecek" + ] + }, + { + "version": "1.0.14", + "buildDate": "2025-09-22", + "commit": "1c4ab4f8232b4cd2a39fa66f8101664840113ce5", + "changeLog": [ + "Yeni versiyon çıktı uyarı gelecek şekilde düzenlendi.", + "Sağ alt kısımda mesaj çıkacak ve yenile butonu ile uygulama yeni versiyona geçecektir." + ] + }, + { + "version": "1.0.13", + "buildDate": "2025-09-22", + "commit": "c5f3a65304bc3c04d89ddf2f01d02563c656b911", + "changeLog": [ + "nginx ayarları ve versiyon yenileme hakkında düzeltme" + ] + }, + { + "version": "1.0.12", + "buildDate": "2025-09-22", + "commit": "f55b777a171ec2072999e204b8e1e818fd91d8a3", + "changeLog": [ + "Versiyon yenileme sistemi güncellemesi" + ] + }, + { + "version": "1.0.11", + "buildDate": "2025-09-22", + "commit": "b2e489d7051ca47a82561cbf2674ec49dc30ed92", + "changeLog": [ + "Liste formlarda Layout görünümü düzenlemesi" + ] + }, + { + "version": "1.0.10", + "buildDate": "2025-09-22", + "commit": "b75158bc018b4d5076e0208796d68f16975e77d8", + "changeLog": [ + "EditorOptions içerisine DataSource özelliği eklendi" + ] + }, + { + "version": "1.0.9", + "buildDate": "2025-09-21", + "commit": "e14d6930c21d2b1c108f16ce675dd05474a95d9e", + "changeLog": [ + "Form komponentinin SelectBox -> lookup bilgisi varsa verileri dolduruyor" + ] + }, + { + "version": "1.0.8", + "buildDate": "2025-09-21", + "commit": "3f69cc54e94cf40db87fb23ba4cf7b311cc1f77c", + "changeLog": [ + "Listelere Grid ve Card görünümleri eklendi." + ] + }, + { + "version": "1.0.7", + "buildDate": "2025-09-20", + "commit": "a01422ca600fbcbdf3f51bb9c91ad7dba46c98a2", + "changeLog": [ + "Versiyon güncellemesi için geçiş uyarı sistemi" + ] + }, + { + "version": "1.0.6", + "buildDate": "2025-09-19", + "commit": "9e85780623d940f43155474b66f2820d997abe3a", + "changeLog": [ + "Versiyon güncelleme sistemi", + "Vite.Config dosyasında hızlandırma adına güncellemeler" + ] + }, + { + "version": "1.0.5", + "buildDate": "2025-09-19", + "commit": "c947fb2a1c0979df3d7fd4dab47af7a2d370f622", + "changeLog": [ + "Form ekranındaki Butonlar güncellemeleri yapıldı", + "Edit Form ekranındaki Info butonu eklendi.", + "New Form ekranındaki Geri butonu eklendi." + ] + }, + { + "version": "1.0.4", + "buildDate": "2025-09-19", + "commit": "6766d1129d345e165282fc3ec198a168f188ab00", + "changeLog": [ + "Subformlar üzerinde extra filters ve Widget çalışmaları yapıldı." + ] + }, + { + "version": "1.0.3", + "buildDate": "2025-09-19", + "commit": "656d1626179733f8da56aa2268b852a79efe26d8", + "changeLog": [ + "Manage Grid üzerinde Extra filtre tanımlaması yapıldı." + ] + }, + { + "version": "1.0.2", + "buildDate": "2025-09-16", + "commit": "c6d2fbf30acae9c96502dfdd3846cbfbaf8af614", + "changeLog": [ + "Genel Static olan Url bilgileri kaldırıldı." + ] + } + ] +} \ No newline at end of file diff --git a/ui/scripts/write-version.js b/ui/scripts/write-version.js new file mode 100644 index 00000000..fcd15376 --- /dev/null +++ b/ui/scripts/write-version.js @@ -0,0 +1,67 @@ +// scripts/write-version.js +import fs from 'fs' +import { execSync } from 'child_process' + +function safeExec(cmd) { + try { + return execSync(cmd, { stdio: ['pipe', 'pipe', 'ignore'], shell: true }) + .toString() + .trim() + } catch { + return null + } +} + +let releases = [] +let commit = null + +if (fs.existsSync('.git') || fs.existsSync('../.git')) { + // Git varsa: tag’lerden oku + const rawTags = safeExec('git tag --list --sort=creatordate') + if (rawTags) { + const tags = rawTags.split('\n').filter(Boolean) + releases = tags.map((tag) => { + const version = tag.replace(/^v/, '') + const date = safeExec(`git log -1 --format=%ad --date=short ${tag}`) + const commitId = safeExec(`git rev-list -n 1 ${tag}`) + const messageRaw = safeExec(`git tag -l --format="%(contents)" ${tag}`) + + const changeLog = messageRaw + ? messageRaw + .split('\n') + .map((s) => s.trim()) + .filter(Boolean) + : ['No changelog for this tag'] + + return { + version, + buildDate: date, + commit: commitId, + changeLog, + } + }) + } + commit = safeExec('git rev-parse --short HEAD') +} else { + // Git yoksa (ör. dev build) + const pkg = JSON.parse(fs.readFileSync('package.json')) + const version = pkg.version || '0.0.0' + commit = process.env.GIT_COMMIT || 'dev-local' + + releases = [ + { + version, + buildDate: new Date().toISOString().slice(0, 10), + commit, + changeLog: [ + 'Local development build', + 'Git bilgisi mevcut değil, package.json versiyonu kullanıldı', + ], + }, + ] +} + +const versionInfo = { commit, releases: releases.reverse() } + +fs.writeFileSync('public/version.json', JSON.stringify(versionInfo, null, 2)) +console.log('> version.json güncellendi:', versionInfo)