pipeline { agent { label 'agent1' // Określenie agenta o nazwie 'agent1' } environment { EXPECTED_REGISTRY = 'http://:/artifactory/api/npm//' EXPECTED_REGISTRY = 'https://registry.npmjs.org/'// } stages { stage('Pre-Build Check') { steps { script { // Pobierz aktualne ustawienia rejestru npm def registry = sh(script: 'npm config get registry', returnStdout: true).trim() // Zapisz ustawiony rejestr do pliku logu sh "echo 'Aktualnie ustawiony rejestr npm: ${registry}' > registry.log" // Sprawdź, czy ustawione jest właściwe wewnętrzne repozytorium if (registry != EXPECTED_REGISTRY) { error("Błąd: Rejestr npm jest ustawiony na '${registry}', a powinien być '${EXPECTED_REGISTRY}'.") } else { echo "Rejestr npm jest poprawnie ustawiony na '${registry}'." } } } } stage('Install Dependencies') { steps { echo "Installing dependencies..." // Zainstaluj zależności npm sh 'npm install >> registry.log 2>&1' // Dodanie do logu } } stage('Build') { steps { // Zapisz logi builda do pliku sh 'npm run build >> registry.log 2>&1' // Dodanie do logu echo "Building..." } } stage('Post-Build Check') { steps { script { // Przeczytaj logi z połączonego pliku logów def logs = readFile('registry.log') // Wydrukuj logi dla debugowania (opcjonalnie) echo "---- POCZĄTEK LOGÓW ----" echo logs echo "---- KONIEC LOGÓW ----" // Sprawdź, czy logi zawierają niedozwolony adres URL if (logs.contains('https://registry.npmjs.org')) { error("Błąd: W logach builda wykryto dostęp do zewnętrznego repozytorium npm!") } else { echo "W logach builda nie wykryto żadnych nieautoryzowanych repozytoriów." } } } } } }