diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..b6dd2c5 --- /dev/null +++ b/Jenkinsfile @@ -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' + } + } + } +}