63 lines
1.4 KiB
Groovy
63 lines
1.4 KiB
Groovy
#!groovy
|
|
def MAVEN_IMAGE = 'maven:3.8.2-openjdk-11-slim'
|
|
|
|
pipeline {
|
|
// agent any
|
|
|
|
agent {
|
|
docker {
|
|
image "${MAVEN_IMAGE}"
|
|
}
|
|
}
|
|
|
|
environment {
|
|
BRANCH_NAME = env.GIT_BRANCH.replace('master/', '')
|
|
}
|
|
|
|
stages {
|
|
stage('Build') {
|
|
steps {
|
|
// dir('messaging-app') {
|
|
sh 'mvn clean verify'
|
|
// }
|
|
}
|
|
}
|
|
|
|
stage('Static Code Analysis') {
|
|
steps {
|
|
withSonarQubeEnv('cicd') {
|
|
sh 'mvn sonar:sonar'
|
|
}
|
|
}
|
|
|
|
// maven:end
|
|
}
|
|
stage('Publish Pacts') {
|
|
steps {
|
|
sh 'mvn pact:publish -Dpact.consumer.version=${GIT_COMMIT} -Dpact.tag=${BRANCH_NAME}'
|
|
}
|
|
}
|
|
stage('Check Pact Verifications') {
|
|
steps {
|
|
sh 'cp files/cacert.pem /tmp'
|
|
withEnv(['SSL_CERT_FILE=/tmp/cacert.pem']) {
|
|
sh 'curl -LO https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.88.3/pact-1.88.3-linux-x86_64.tar.gz'
|
|
sh 'tar xzf pact-1.88.3-linux-x86_64.tar.gz'
|
|
dir('pact/bin') {
|
|
sh "./pact-broker can-i-deploy --retry-while-unknown=12 --retry-interval=10\
|
|
-a messaging-app -b https://pact.bayhan.ca -e ${GIT_COMMIT}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Deploy') {
|
|
when {
|
|
branch 'junit5'
|
|
}
|
|
steps {
|
|
echo 'Deploying to prod now...'
|
|
}
|
|
}
|
|
}
|
|
}
|