diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..37e844c --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,86 @@ +pipeline{ + agent any + tools{ + jdk 'jdk17' + nodejs 'node16' + } + environment { + SCANNER_HOME=tool 'sonar-scanner' + } + stages { + stage('clean workspace'){ + steps{ + cleanWs() + } + } + stage('Checkout from Git'){ + steps{ + git branch: 'main', url: 'https://github.com/RAMESHKUMARVERMAGITHUB/Jenkins-Sonarqube-Docker.git' + } + } + stage("Sonarqube Analysis "){ + steps{ + withSonarQubeEnv('sonar-server') { + sh ''' $SCANNER_HOME/bin/sonar-scanner -Dsonar.projectName=website \ + -Dsonar.projectKey=website''' + } + } + } + stage("quality gate"){ + steps { + script { + waitForQualityGate abortPipeline: false, credentialsId: 'sonar' + } + } + } + // stage('Install Dependencies') { + // steps { + // sh "npm install" + // } + // } + stage('OWASP FS SCAN') { + steps { + dependencyCheck additionalArguments: '--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation: 'DP-Check' + dependencyCheckPublisher pattern: '**/dependency-check-report.xml' + } + } + stage('TRIVY FS SCAN') { + steps { + sh "trivy fs . > trivyfs.txt" + } + } + stage("Docker Build & Push"){ + steps{ + script{ + withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ + sh "docker build -t rameshkumarverma/website:latest ." + // sh "docker tag uber rameshkumarverma/uber:latest " + sh "docker push rameshkumarverma/website:latest" + } + } + } + } + stage("TRIVY"){ + steps{ + sh "trivy image rameshkumarverma/website:latest > trivyimage.txt" + } + } + stage("deploy_docker"){ + steps{ + sh "docker run -d --name website -p 8085:80 rameshkumarverma/website:latest" + } + } + // stage('Deploy to kubernets'){ + // steps{ + // script{ + // // dir('K8S') { + // withKubeConfig(caCertificate: '', clusterName: '', contextName: '', credentialsId: 'k8s', namespace: '', restrictKubeConfigAccess: false, serverUrl: '') { + // sh 'kubectl apply -f deployment-service.yml' + // // sh 'kubectl apply -f service.yml' + // } + // // } + // } + // } + // } + } +}