Add Jenkinsfile
Some checks failed
jenkins_organization/checksum_verification_and_signature_verification/pipeline/head There was a failure building this commit

This commit is contained in:
first_admin 2024-09-01 19:48:30 +00:00
parent dbfd5890cd
commit c5b232b0b1

57
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,57 @@
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) {
sh "npm pack ${dep}@$(jq -r '.dependencies[\"'${dep}'\"]' package.json)"
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'
}
}
}
}