Release: Merge develop to main

This commit is contained in:
Jenkins Bot
2026-01-05 21:31:46 +00:00

26
Jenkinsfile vendored
View File

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