pipeline { agent { label 'agent1' // Określenie agenta o nazwie 'agent1' } environment { EXPECTED_REGISTRY = 'https://registry.npmjs.org/' } stages { stage('Pre-Build Check') { steps { script { // Pobierz aktualne ustawienia rejestru npm i wyświetl je w logach def registry = sh(script: 'npm config get registry', returnStdout: true).trim() echo "Aktualnie ustawiony rejestr npm: ${registry}" // 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' } } stage('Build') { steps { // Zapisz logi builda do pliku sh 'npm run build > build.log 2>&1' echo "Building..." } } stage('Post-Build Check') { steps { script { // Przeczytaj logi z pliku build.log def logs = readFile('build.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." } } } } } }