2024-09-01 19:48:30 +00:00
|
|
|
pipeline {
|
|
|
|
agent any
|
|
|
|
|
|
|
|
stages {
|
|
|
|
stage('Checkout') {
|
|
|
|
steps {
|
|
|
|
git 'https://github.com/your-repo/your-project.git'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Install Dependencies') {
|
|
|
|
steps {
|
|
|
|
script {
|
|
|
|
// Pobierz dependencies z package.json
|
|
|
|
def dependencies = sh(script: "jq -r '.dependencies | keys[]' package.json", returnStdout: true).split('\n')
|
|
|
|
|
|
|
|
// 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 19:48:30 +00:00
|
|
|
sh "sha256sum ${dep}-*.tgz > ${dep}.sha256"
|
|
|
|
// Weryfikacja sumy kontrolnej (przykład: zakładając, że masz zapisany poprawny checksum)
|
|
|
|
sh "echo 'expected-sha256-value ${dep}-*.tgz' | sha256sum -c -"
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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) {
|
|
|
|
sh "wget https://registry.npmjs.org/${dep}/-/$(jq -r '.dependencies[\"'${dep}'\"]' package.json)/${dep}.tgz.asc"
|
|
|
|
sh "gpg --verify ${dep}.tgz.asc ${dep}-*.tgz"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Test') {
|
|
|
|
steps {
|
|
|
|
sh 'npm test'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Build') {
|
|
|
|
steps {
|
|
|
|
sh 'npm run build'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|