From 5e1a62081a6464bfc5f82cf19d01d93a1d31ee35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96zt=C3=BCrk?= Date: Mon, 22 Sep 2025 21:53:03 +0300 Subject: [PATCH] =?UTF-8?q?docker=20versiyon=20d=C3=BCzenlemesi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/deployment/scripts/build/ui.sh | 28 ++++++++++------ ui/Kurs.Platform.Ui.Dockerfile | 1 - ui/package.json | 1 - ui/scripts/generate-version.sh | 33 ++++++++++++++++++ ui/scripts/write-version.js | 46 -------------------------- 5 files changed, 51 insertions(+), 58 deletions(-) create mode 100644 ui/scripts/generate-version.sh delete mode 100644 ui/scripts/write-version.js diff --git a/configs/deployment/scripts/build/ui.sh b/configs/deployment/scripts/build/ui.sh index e5e7d4f7..9058dcc1 100644 --- a/configs/deployment/scripts/build/ui.sh +++ b/configs/deployment/scripts/build/ui.sh @@ -1,3 +1,4 @@ +#!/bin/bash export ENV=${1:-dev} echo "Env değeri: ${ENV}" @@ -6,17 +7,24 @@ git checkout main git fetch && git pull cd ~/kurs-platform/ui -# VERSION=$(cat package.json \ -# | grep -o '"[^"]*"\s*:\s*"[^"]*"' \ -# | grep -E '^"(version)"' \ -# | sed 's/^.* //' \ -# | sed 's/"//g') -VERSION=$(git tag --sort=-creatordate | head -n1 | sed 's/^v//' || jq -r .version package.json) -echo "Build versiyonu: ${VERSION}" +# Git tag'den 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 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} . + -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} . + 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/Kurs.Platform.Ui.Dockerfile b/ui/Kurs.Platform.Ui.Dockerfile index e00ccf89..adf7ab15 100644 --- a/ui/Kurs.Platform.Ui.Dockerfile +++ b/ui/Kurs.Platform.Ui.Dockerfile @@ -12,6 +12,5 @@ RUN npm i && \ npm install @rollup/rollup-linux-x64-musl --save-dev && \ npm rebuild rollup COPY . . -RUN npm run prebuild -- --mode $ENV RUN npm run build -- --mode $ENV CMD ["npm", "run", "preview"] diff --git a/ui/package.json b/ui/package.json index fa58b228..aed52e8d 100644 --- a/ui/package.json +++ b/ui/package.json @@ -6,7 +6,6 @@ "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/scripts/generate-version.sh b/ui/scripts/generate-version.sh new file mode 100644 index 00000000..51dc1152 --- /dev/null +++ b/ui/scripts/generate-version.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +echo "> version.json oluşturuluyor..." + +cd ~/kurs-platform/ui + +VERSIONS=$(git tag --sort=creatordate) + +OUTPUT="{\"releases\":[" + +FIRST=true +for TAG in $VERSIONS; do + 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 | jq -R . | jq -s .) + + if [ "$FIRST" = true ]; then + FIRST=false + else + OUTPUT+="," + fi + + OUTPUT+="{\"version\":\"$VER\",\"buildDate\":\"$DATE\",\"commit\":\"$COMMIT\",\"changeLog\":$MESSAGE}" +done + +OUTPUT+="]}" + +echo "$OUTPUT" | jq . > public/version.json + +echo "> public/version.json güncellendi:" +cat public/version.json diff --git a/ui/scripts/write-version.js b/ui/scripts/write-version.js deleted file mode 100644 index b0e18c01..00000000 --- a/ui/scripts/write-version.js +++ /dev/null @@ -1,46 +0,0 @@ -import fs from "fs" -import { execSync } from "child_process" - -function safeExec(cmd) { - try { - return execSync(cmd, { stdio: ["pipe", "pipe", "ignore"] }).toString().trim() - } catch { - return null - } -} - -// Tüm tag isimlerini al -const rawTags = safeExec("git tag --list --sort=creatordate") - -if (!rawTags) { - console.log("> No git tags found, skipping version.json") - process.exit(0) -} - -const tags = rawTags - .split("\n") - .filter(Boolean) - .map((tag) => { - const date = safeExec(`git log -1 --format=%ad --date=short ${tag}`) - const messageRaw = safeExec(`git tag -l --format="%(contents)" ${tag}`) - - const changeLog = messageRaw - ? messageRaw.split("\n").map((s) => s.trim()).filter(Boolean) - : [] - - return { - version: tag.replace(/^v/, ""), // v1.0.5 → 1.0.5 - buildDate: date, - changeLog - } - }) - -const commit = safeExec("git rev-parse --short HEAD") - -const versionInfo = { - commit, - releases: tags.reverse() -} - -fs.writeFileSync("public/version.json", JSON.stringify(versionInfo, null, 2)) -console.log("> version.json yazıldı:", versionInfo) \ No newline at end of file