From fdf75b3114e3ea34c36d9ad6247e48f7d754e43a Mon Sep 17 00:00:00 2001 From: matthewpdias Date: Tue, 6 Mar 2018 15:16:52 -0800 Subject: [PATCH] adding resources for interview box --- jenkinsfiles/example | 92 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 jenkinsfiles/example diff --git a/jenkinsfiles/example b/jenkinsfiles/example new file mode 100644 index 000000000..3c673dbe5 --- /dev/null +++ b/jenkinsfiles/example @@ -0,0 +1,92 @@ +#!/bin/env groovy + +@Library('ldop-shared-library@fd16602cad0f97ca1b04090f93a0540ddc871b45') _ + +pipeline { + agent none + + environment { + IMAGE = "liatrio/petclinic-tomcat" + } + + stages { + + stage('Build') { + agent { + docker { + image 'maven:3.5.0' + } + } + steps { + configFileProvider([configFile(fileId: 'nexus', variable: 'MAVEN_SETTINGS')]) { + sh 'mvn -s $MAVEN_SETTINGS clean deploy -DskipTests=true -B' + } + } + } + stage('Sonar') { + agent { + docker { + image 'sebp/sonar-runner' + args '-e SONAR_ACCOUNT_LOGIN -e SONAR_ACCOUNT_PASSWORD -e SONAR_DB_URL -e SONAR_DB_LOGIN -e SONAR_DB_PASSWORD --network=${LDOP_NETWORK_NAME}' + } + } + steps { + sh '/opt/sonar-runner-2.4/bin/sonar-runner -e -D sonar.login=${SONAR_ACCOUNT_LOGIN} -D sonar.password=${SONAR_ACCOUNT_PASSWORD} -D sonar.jdbc.url=${SONAR_DB_URL} -D sonar.jdbc.username=${SONAR_DB_LOGIN} -D sonar.jdbc.password=${SONAR_DB_PASSWORD}' + } + } + stage('Get Artifact') { + agent { + docker { + image 'maven:3.5.0' + args '-e INITIAL_ADMIN_USER -e INITIAL_ADMIN_PASSWORD --network=${LDOP_NETWORK_NAME}' + } + } + steps { + sh 'mvn clean' + script { + pom = readMavenPom file: 'pom.xml' + getArtifact(pom.groupId, pom.artifactId, pom.version, 'petclinic') + } + } + } + + stage('Build container') { + agent any + steps { + script { + if ( env.BRANCH_NAME == 'master' ) { + pom = readMavenPom file: 'pom.xml' + TAG = pom.version + } else { + TAG = env.BRANCH_NAME + } + sh "docker build -t ${env.IMAGE}:${TAG} ." + } + } + } + + stage('Run local container') { + agent any + steps { + sh 'docker rm -f petclinic-tomcat-temp || true' + sh "docker run -d --network=${LDOP_NETWORK_NAME} --name petclinic-tomcat-temp ${env.IMAGE}:${TAG}" + } + } + + stage('Smoke-Test & OWASP Security Scan') { + agent { + docker { + image 'maven:3.5.0' + args '--network=${LDOP_NETWORK_NAME}' + } + } + steps { + sh "cd regression-suite && mvn clean -B test -DPETCLINIC_URL=http://petclinic-tomcat-temp:8080/petclinic/" + } + } + stage('Stop local container') { + agent any + steps { + sh 'docker rm -f petclinic-tomcat-temp || true' + } + } \ No newline at end of file