Release: Merge develop to main
This commit is contained in:
26
Jenkinsfile
vendored
26
Jenkinsfile
vendored
@@ -62,21 +62,13 @@ pipeline {
|
|||||||
script {
|
script {
|
||||||
echo '--- [MAIN] Start procedury publikacji ---'
|
echo '--- [MAIN] Start procedury publikacji ---'
|
||||||
|
|
||||||
// 1. Pobierz wersję (bez zmian)
|
// 1. Pobierz wersję
|
||||||
def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim()
|
def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim()
|
||||||
echo "Lokalna wersja w package.json: ${localVersion}"
|
echo "Lokalna wersja w package.json: ${localVersion}"
|
||||||
|
|
||||||
// 2. Utwórz plik .npmrc lokalnie
|
// 2. Sprawdź wersję (tu używamy -w, ale bez tokenu, bo view jest publiczne)
|
||||||
sh 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc'
|
|
||||||
|
|
||||||
// UWAGA: Nie musimy robić 'docker compose build', bo używamy obrazu z testów
|
|
||||||
// Jeśli chcesz mieć pewność, że obraz jest świeży, możesz zostawić build,
|
|
||||||
// ale kluczowe jest mapowanie w następnych krokach.
|
|
||||||
|
|
||||||
// 3. Sprawdź wersję w NPM
|
|
||||||
def versionExists = false
|
def versionExists = false
|
||||||
try {
|
try {
|
||||||
// Dodajemy flagę -w (workdir) aby npm widział package.json
|
|
||||||
sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version"
|
sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version"
|
||||||
versionExists = true
|
versionExists = true
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -87,17 +79,18 @@ pipeline {
|
|||||||
echo "❌ BŁĄD: Wersja ${localVersion} jest już opublikowana w NPM!"
|
echo "❌ BŁĄD: Wersja ${localVersion} jest już opublikowana w NPM!"
|
||||||
error("Przerwano publikację: Wersja ${localVersion} już istnieje.")
|
error("Przerwano publikację: Wersja ${localVersion} już istnieje.")
|
||||||
} else {
|
} else {
|
||||||
echo "🚀 Wersja ${localVersion} jest nowa. Publikuję z kontenera..."
|
echo "🚀 Wersja ${localVersion} jest nowa. Publikuję..."
|
||||||
|
|
||||||
// NAPRAWA GŁÓWNA:
|
// 3. PUBLIKACJA "INJECTION METHOD"
|
||||||
// -w /app/wc-timer : wchodzimy do folderu z plikiem package.json
|
// Nie montujemy pliku (-v).
|
||||||
// -v $(pwd)/.npmrc:/app/wc-timer/.npmrc : montujemy plik z tokenem
|
// Przekazujemy token przez zmienną (-e).
|
||||||
|
// Tworzymy plik wewnątrz kontenera i publikujemy w jednej komendzie (sh -c).
|
||||||
sh """
|
sh """
|
||||||
docker compose -f docker-compose.test.yml run --rm \
|
docker compose -f docker-compose.test.yml run --rm \
|
||||||
-w /app/wc-timer \
|
-w /app/wc-timer \
|
||||||
-v \$(pwd)/.npmrc:/app/wc-timer/.npmrc \
|
-e NPM_TOKEN=${NPM_TOKEN} \
|
||||||
app \
|
app \
|
||||||
npm publish --access public
|
sh -c "echo '//registry.npmjs.org/:_authToken=\${NPM_TOKEN}' > .npmrc && npm publish --access public"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
echo "✅ SUKCES: Wersja ${localVersion} została opublikowana."
|
echo "✅ SUKCES: Wersja ${localVersion} została opublikowana."
|
||||||
@@ -108,7 +101,6 @@ pipeline {
|
|||||||
post {
|
post {
|
||||||
always {
|
always {
|
||||||
echo '--- [MAIN] Sprzątanie ---'
|
echo '--- [MAIN] Sprzątanie ---'
|
||||||
sh 'rm -f .npmrc'
|
|
||||||
sh 'docker compose -f docker-compose.test.yml down -v'
|
sh 'docker compose -f docker-compose.test.yml down -v'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user