pipeline { agent { label 'agent1' // Określenie agenta o nazwie 'agent1' } 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') // 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' } } } }