diff --git a/Jenkinsfile b/Jenkinsfile index c252fb0..d91e028 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -62,21 +62,13 @@ pipeline { script { 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() echo "Lokalna wersja w package.json: ${localVersion}" - // 2. Utwórz plik .npmrc lokalnie - 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 + // 2. Sprawdź wersję (tu używamy -w, ale bez tokenu, bo view jest publiczne) def versionExists = false 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" versionExists = true } catch (err) { @@ -87,17 +79,18 @@ pipeline { echo "❌ BŁĄD: Wersja ${localVersion} jest już opublikowana w NPM!" error("Przerwano publikację: Wersja ${localVersion} już istnieje.") } else { - echo "🚀 Wersja ${localVersion} jest nowa. Publikuję z kontenera..." + echo "🚀 Wersja ${localVersion} jest nowa. Publikuję..." - // NAPRAWA GŁÓWNA: - // -w /app/wc-timer : wchodzimy do folderu z plikiem package.json - // -v $(pwd)/.npmrc:/app/wc-timer/.npmrc : montujemy plik z tokenem + // 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 \ - -v \$(pwd)/.npmrc:/app/wc-timer/.npmrc \ + -e NPM_TOKEN=${NPM_TOKEN} \ 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." @@ -108,7 +101,6 @@ pipeline { post { always { echo '--- [MAIN] Sprzątanie ---' - sh 'rm -f .npmrc' sh 'docker compose -f docker-compose.test.yml down -v' } }