pipeline{ agent any tools{ jdk 'jdk17' nodejs 'node16' terraform 'terraform' } environment { SCANNER_HOME= tool 'sonar-scanner' GIT_REPO_NAME = "Tetris-manifest" GIT_USER_NAME = "AbdulAziz-uk" } stages{ stage('clean Workspace'){ steps{ cleanWs() } } stage('checkout from Git'){ steps{ git branch:'main', url:'https://github.com/AbdulAziz-uk/Tetris-V1.git' } } stage("Sonarqube Analysis "){ steps{ withSonarQubeEnv('sonar') { sh ''' $SCANNER_HOME/bin/sonar-scanner -Dsonar.projectName=tetrisv1 \ -Dsonar.projectKey=tetrisv1 ''' } } } stage("quality gate"){ steps { script { waitForQualityGate abortPipeline:false, credentialsId: 'sonar-token' } } } stage("NPM") { steps { sh "npm install" } } stage('OWASP FS SCAN') { steps { dependencyCheck additionalArguments:'--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation:'DC' dependencyCheckPublisher pattern:'**/dependency-check-report.xml' } } stage('Docker Build & Push Image') { steps { script { withDockerRegistry(credentialsId:'docker-cred', toolName:'docker'){ sh "docker build -t tetrisv1 ." sh "docker tag tetrisv1 aziz27uk/tetrisv1:latest" sh"docker push aziz27uk/tetrisv1:latest" } } } } stage('TRIVY Image SCAN') { steps { sh "trivy image aziz27uk/tetrisv1:latest > trivyimage.txt" } } stage ("Execute manifest_update pipeline") { steps { build job:'manifest_update', wait:true } } } }