Created an attachable network which was needed for maven in petclinic repo to connect to ci services internally

This commit is contained in:
Shahzad A. Chaudhry 2017-09-23 03:10:35 +01:00
parent c60e13f45d
commit beada8ac6a
No known key found for this signature in database
GPG key ID: C834FD3A4FD56333

137
Jenkinsfile vendored
View file

@ -1,67 +1,72 @@
pipeline { pipeline {
agent { docker 'maven:alpine' } agent {
options { docker{
gitLabConnection('gitlab') image 'maven:alpine'
buildDiscarder(logRotator(numToKeepStr: '5')) args '--network=ci_attachable'
timestamps() }
} }
triggers { options {
gitlab(triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All') gitLabConnection('gitlab')
pollSCM '@hourly' buildDiscarder(logRotator(numToKeepStr: '5'))
} timestamps()
stages { }
stage("build") { triggers {
steps { gitlab(triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All')
sh 'mvn -Dmaven.test.failure.ignore=true --settings /var/jenkins_home/settings-docker.xml clean package' pollSCM '@hourly'
} }
} stages {
stage('Quality Gates') { stage("build") {
steps { steps {
sh 'mvn --settings /var/jenkins_home/settings-docker.xml sonar:sonar' sh 'mvn -Dmaven.test.failure.ignore=true --settings /var/jenkins_home/settings-docker.xml clean package'
} }
} }
stage('Deploy - Dev') { stage('Quality Gates') {
steps { steps {
sh 'echo deploying to dev...' sh 'mvn --settings /var/jenkins_home/settings-docker.xml sonar:sonar'
} }
} }
stage('Selenium Test') { stage('Deploy - Dev') {
steps { steps {
parallel ( sh 'echo deploying to dev...'
"Firefox" : { }
sh "echo testing FFX" }
sh "echo more steps" stage('Selenium Test') {
}, steps {
"Chrome" : { parallel (
sh "echo testing Chrome" "Firefox" : {
sh "echo more steps" sh "echo testing FFX"
} sh "echo more steps"
) },
} "Chrome" : {
} sh "echo testing Chrome"
stage('Deploy - Staging') { sh "echo more steps"
steps { }
sh 'echo deploying to staging...' )
sh 'echo smoke tests...' }
} }
} stage('Deploy - Staging') {
stage('Deploy - Production') { steps {
steps { sh 'echo deploying to staging...'
sh 'echo deploying to production...' sh 'echo smoke tests...'
} }
} }
} stage('Deploy - Production') {
post { steps {
failure { sh 'echo deploying to production...'
updateGitlabCommitStatus name: 'build', state: 'failed' }
} }
success { }
updateGitlabCommitStatus name: 'build', state: 'success' post {
} failure {
always { updateGitlabCommitStatus name: 'build', state: 'failed'
archive "target/**/*" }
success {
updateGitlabCommitStatus name: 'build', state: 'success'
}
always {
archive "target/**/*"
junit(allowEmptyResults: true, testResults: 'target/surefire-reports/*.xml') junit(allowEmptyResults: true, testResults: 'target/surefire-reports/*.xml')
archiveArtifacts(artifacts: 'target/*.jar', fingerprint: true, onlyIfSuccessful: true, defaultExcludes: true) archiveArtifacts(artifacts: 'target/*.jar', fingerprint: true, onlyIfSuccessful: true, defaultExcludes: true)
} }
} }
} }