From d314aab25d37b3dc25565f2f51c059e5a83c3058 Mon Sep 17 00:00:00 2001 From: David Ali Date: Mon, 5 Jan 2026 22:42:25 +0100 Subject: [PATCH] format Jenkinsfile --- Jenkinsfile | 100 ++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d91e028..70e009e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -51,59 +51,59 @@ pipeline { } // ========================================================= - // ETAP 2: MAIN (Weryfikacja wersji i Publikacja w Dockerze) - // ========================================================= - stage('CD: Publish to NPM (Main)') { - when { - branch 'main' + // ETAP 2: MAIN (Weryfikacja wersji i Publikacja w Dockerze) + // ========================================================= + stage('CD: Publish to NPM (Main)') { + when { + branch 'main' + } + steps { + withCredentials([string(credentialsId: 'npm-token', variable: 'NPM_TOKEN')]) { + script { + echo '--- [MAIN] Start procedury publikacji ---' + + // 1. Pobierz wersję + def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim() + echo "Lokalna wersja w package.json: ${localVersion}" + + // 2. Sprawdź wersję (tu używamy -w, ale bez tokenu, bo view jest publiczne) + def versionExists = false + try { + sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version" + versionExists = true + } catch (err) { + versionExists = false } - steps { - withCredentials([string(credentialsId: 'npm-token', variable: 'NPM_TOKEN')]) { - script { - echo '--- [MAIN] Start procedury publikacji ---' - - // 1. Pobierz wersję - def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim() - echo "Lokalna wersja w package.json: ${localVersion}" - - // 2. Sprawdź wersję (tu używamy -w, ale bez tokenu, bo view jest publiczne) - def versionExists = false - try { - sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version" - versionExists = true - } catch (err) { - versionExists = false - } - if (versionExists) { - echo "❌ BŁĄD: Wersja ${localVersion} jest już opublikowana w NPM!" - error("Przerwano publikację: Wersja ${localVersion} już istnieje.") - } else { - echo "🚀 Wersja ${localVersion} jest nowa. Publikuję..." - - // 3. PUBLIKACJA "INJECTION METHOD" - // Nie montujemy pliku (-v). - // Przekazujemy token przez zmienną (-e). - // Tworzymy plik wewnątrz kontenera i publikujemy w jednej komendzie (sh -c). - sh """ - docker compose -f docker-compose.test.yml run --rm \ - -w /app/wc-timer \ - -e NPM_TOKEN=${NPM_TOKEN} \ - app \ - sh -c "echo '//registry.npmjs.org/:_authToken=\${NPM_TOKEN}' > .npmrc && npm publish --access public" - """ - - echo "✅ SUKCES: Wersja ${localVersion} została opublikowana." - } - } - } - } - post { - always { - echo '--- [MAIN] Sprzątanie ---' - sh 'docker compose -f docker-compose.test.yml down -v' - } + if (versionExists) { + echo "❌ BŁĄD: Wersja ${localVersion} jest już opublikowana w NPM!" + error("Przerwano publikację: Wersja ${localVersion} już istnieje.") + } else { + echo "🚀 Wersja ${localVersion} jest nowa. Publikuję..." + + // 3. PUBLIKACJA "INJECTION METHOD" + // Nie montujemy pliku (-v). + // Przekazujemy token przez zmienną (-e). + // Tworzymy plik wewnątrz kontenera i publikujemy w jednej komendzie (sh -c). + sh """ + docker compose -f docker-compose.test.yml run --rm \ + -w /app/wc-timer \ + -e NPM_TOKEN=${NPM_TOKEN} \ + app \ + sh -c "echo '//registry.npmjs.org/:_authToken=\${NPM_TOKEN}' > .npmrc && npm publish --access public" + """ + + echo "✅ SUKCES: Wersja ${localVersion} została opublikowana." } + } } + } + post { + always { + echo '--- [MAIN] Sprzątanie ---' + sh 'docker compose -f docker-compose.test.yml down -v' + } + } + } } } \ No newline at end of file