docker versiyon düzenlemesi

This commit is contained in:
Sedat Öztürk 2025-09-22 21:53:03 +03:00
parent 4ee043abc9
commit 5e1a62081a
5 changed files with 51 additions and 58 deletions

View file

@ -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} .
-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

View file

@ -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"]

View file

@ -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",

View file

@ -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

View file

@ -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)