checksum_verification_and_s.../Jenkinsfile

59 lines
1.9 KiB
Plaintext
Raw Normal View History

2024-09-01 19:48:30 +00:00
pipeline {
2024-09-01 19:58:13 +00:00
agent {
label 'agent1' // Określenie agenta o nazwie 'agent1'
}
2024-09-01 19:48:30 +00:00
stages {
stage('Install Dependencies') {
steps {
script {
// Pobierz dependencies z package.json
def dependencies = sh(script: "jq -r '.dependencies | keys[]' package.json", returnStdout: true).split('\n')
2024-09-01 20:03:24 +00:00
echo "Zależności: ${dependencies}"
2024-09-01 19:48:30 +00:00
// Weryfikacja sumy kontrolnej dla każdego pakietu
for (dep in dependencies) {
2024-09-01 19:50:11 +00:00
sh "npm pack ${dep}@\$(jq -r '.dependencies[\"${dep}\"]' package.json)"
2024-09-01 20:15:22 +00:00
sh """
FILENAME=\$(ls ${dep}-*.tgz)
SHA256_SUM=\$(sha256sum \$FILENAME | awk '{ print \$1 }')
echo \"\${SHA256_SUM} \$FILENAME\" > ${dep}.sha256
sha256sum -c ${dep}.sha256
"""
2024-09-01 19:48:30 +00:00
}
// Instalacja dependencies
sh 'npm install'
}
}
}
stage('Verify GPG Signatures') {
steps {
script {
// Weryfikacja podpisów cyfrowych
def dependencies = sh(script: "jq -r '.dependencies | keys[]' package.json", returnStdout: true).split('\n')
for (dep in dependencies) {
2024-09-01 19:51:17 +00:00
sh "wget https://registry.npmjs.org/${dep}/-/\$(jq -r '.dependencies[\"${dep}\"]' package.json)/${dep}.tgz.asc"
2024-09-01 19:48:30 +00:00
sh "gpg --verify ${dep}.tgz.asc ${dep}-*.tgz"
}
}
}
}
stage('Test') {
steps {
sh 'npm test'
}
}
stage('Build') {
steps {
sh 'npm run build'
}
}
}
}