docker versiyon düzenlemesi
This commit is contained in:
parent
4ee043abc9
commit
5e1a62081a
5 changed files with 51 additions and 58 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
33
ui/scripts/generate-version.sh
Normal file
33
ui/scripts/generate-version.sh
Normal 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
|
||||
|
|
@ -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)
|
||||
Loading…
Reference in a new issue