2024-09-01 07:56:05 +00:00
|
|
|
pipeline {
|
2024-09-01 08:00:53 +00:00
|
|
|
agent {
|
|
|
|
label 'agent1' // Określenie agenta o nazwie 'agent1'
|
|
|
|
}
|
2024-09-01 07:56:05 +00:00
|
|
|
environment {
|
|
|
|
// EXPECTED_REGISTRY = 'http://<artifactory-url>:<port>/artifactory/api/npm/<npm-repo-key>/'
|
|
|
|
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()
|
|
|
|
|
|
|
|
// 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 {
|
|
|
|
// sh 'npm install'
|
|
|
|
echo "Installing dependendencies..."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
stage('Build') {
|
|
|
|
steps {
|
|
|
|
// sh 'npm run build'
|
|
|
|
// echo "Building..."
|
|
|
|
|
|
|
|
// Zapisz logi builda do pliku
|
|
|
|
sh 'npm run build > build.log 2>&1'
|
|
|
|
echo "Building..."
|
|
|
|
}
|
|
|
|
}
|
2024-09-01 08:06:56 +00:00
|
|
|
//stage('Post-Build Check') {
|
|
|
|
// steps {
|
|
|
|
// script {
|
|
|
|
// // Przeczytaj logi z pliku build.log
|
|
|
|
// def logs = readFile('build.log')
|
|
|
|
// 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."
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|
2024-09-01 07:56:05 +00:00
|
|
|
stage('Post-Build Check') {
|
|
|
|
steps {
|
|
|
|
script {
|
2024-09-01 08:06:56 +00:00
|
|
|
// Połącz logi z instalacji i builda
|
|
|
|
sh 'cat npm_install.log build.log > full_build.log'
|
|
|
|
|
|
|
|
// Przeczytaj połączone logi
|
|
|
|
def logs = readFile('full_build.log')
|
|
|
|
|
|
|
|
// Sprawdź, czy logi zawierają niedozwolony adres URL
|
2024-09-01 07:56:05 +00:00
|
|
|
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."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|