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}
|
export ENV=${1:-dev}
|
||||||
echo "Env değeri: ${ENV}"
|
echo "Env değeri: ${ENV}"
|
||||||
|
|
||||||
|
|
@ -6,17 +7,24 @@ git checkout main
|
||||||
git fetch && git pull
|
git fetch && git pull
|
||||||
|
|
||||||
cd ~/kurs-platform/ui
|
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 \
|
docker build \
|
||||||
-t devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-${VERSION} \
|
-t devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-${VERSION} \
|
||||||
-t devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-latest \
|
-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}-${VERSION}
|
||||||
docker push devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-latest
|
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 install @rollup/rollup-linux-x64-musl --save-dev && \
|
||||||
npm rebuild rollup
|
npm rebuild rollup
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN npm run prebuild -- --mode $ENV
|
|
||||||
RUN npm run build -- --mode $ENV
|
RUN npm run build -- --mode $ENV
|
||||||
CMD ["npm", "run", "preview"]
|
CMD ["npm", "run", "preview"]
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "vite",
|
"start": "vite",
|
||||||
"prebuild" : "node scripts/write-version.js",
|
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"lint": "eslint . --ext .js,.jsx,.ts,.tsx,.json",
|
"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