Skip to content
Jenkinsfile 4.08 KiB
Newer Older
Luca Verardo's avatar
Luca Verardo committed
pipeline {
Luca Verardo's avatar
Luca Verardo committed
    agent {
        docker {
            image 'docker:dind'
Luca Verardo's avatar
Luca Verardo committed
            args '-v /var/run/docker.sock:/var/run/docker.sock'
Luca Verardo's avatar
Luca Verardo committed
        }
    }
Luca Verardo's avatar
Luca Verardo committed
    stages {
Luca Verardo's avatar
Luca Verardo committed
        stage('Build') { 
            steps {
                script {
                    docker.image('maven:3-alpine').inside { c ->
                        checkout scm
Luca Verardo's avatar
Luca Verardo committed
						sh 'rm src/main/resources/application.properties'
Luca Verardo's avatar
Luca Verardo committed
                        sh 'mv src/main/resources/application.properties.production src/main/resources/application.properties'
Luca Verardo's avatar
Luca Verardo committed
                        sh 'mvn -B -DskipTests clean package'
Luca Verardo's avatar
Luca Verardo committed
						stash name: 'mentorarc', includes: '**'
                    }
                }
            }
        }
Luca Verardo's avatar
Luca Verardo committed
        // stage('Test') {
        //     steps{
        //         script {
        //             docker.image('mysql').withRun('-e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=mentorarc -e MYSQL_USER=mentorarc -e MYSQL_PASSWORD=mentorarc') { c ->
        //                 docker.image('mysql').inside("--link ${c.id}:db") {
        //                     /* Wait until mysql service is up */
        //                     sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
        //                 }
Luca Verardo's avatar
Luca Verardo committed

Luca Verardo's avatar
Luca Verardo committed
        //                 docker.image('maven:3-alpine').inside("--link ${c.id}:db") {
        //                     unstash 'mentorarc'
        //                     sh 'mvn test'
        //                 }
        //             }
        //         }
        //     }
Luca Verardo's avatar
Luca Verardo committed
            
Luca Verardo's avatar
Luca Verardo committed
        //     post {
        //         always {
        //             junit 'target/surefire-reports/*.xml'
        //         }
        //     }
        // }
        // stage('Quality'){
        //     steps{
        //         script{
        //             withCredentials([usernamePassword(credentialsId: 'SonarCloud_Zegorax_Token', passwordVariable: 'SONARCLOUD_API_TOKEN', usernameVariable: 'SONARCLOUD_API_USER')]) {
        //                 docker.image('mysql').withRun('-e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=mentorarc -e MYSQL_USER=mentorarc -e MYSQL_PASSWORD=mentorarc') { c ->
        //                     docker.image('mysql').inside("--link ${c.id}:db") {
        //                         /* Wait until mysql service is up */
        //                         sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
        //                     }
        //                     docker.image('maven:3-alpine').inside("--link ${c.id}:db") {
        //                             unstash 'mentorarc'
        //                             sh 'mvn verify sonar:sonar'
        //                     }
        //                 }
        //             }
        //         }
        //     }
        // }
Luca Verardo's avatar
Luca Verardo committed
		stage('IntegrationTests') {
            steps{
                script {
Luca Verardo's avatar
Luca Verardo committed
                    docker.image('mysql').withRun('-e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=mentorarc -e MYSQL_USER=mentorarc -e MYSQL_PASSWORD=mentorarc') { c ->
Luca Verardo's avatar
Luca Verardo committed
                        docker.image('mysql').inside("--link ${c.id}:db") {
                            /* Wait until mysql service is up */
                            sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
                        }
Luca Verardo's avatar
Luca Verardo committed

Luca Verardo's avatar
Luca Verardo committed
						docker.image('lucienmoor/katalon-for-jenkins:latest').inside("--link ${c.id}:db") {
							unstash "mentorarc"
							sh 'java -jar target/MentorArc-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &'
							sh 'sleep 30'
Luca Verardo's avatar
Luca Verardo committed

Luca Verardo's avatar
Luca Verardo committed
							sh 'Xvfb :99 &'
							sh '/Katalon_Studio_Linux_64-5.7.1/katalon -noSplash  -runMode=console -projectPath="$(pwd)/Katalon/Mentorarc-Katalon.prj" -retry=1 -testSuitePath="Test Suites/Test Suite" -executionProfile="default" -browserType="Chrome (headless)" -Djava.awt.headless'

Luca Verardo's avatar
Luca Verardo committed
							cleanWs()
Luca Verardo's avatar
Luca Verardo committed
						}
                    }
                }
            }
Luca Verardo's avatar
Luca Verardo committed
        // stage ('Performance') {
        // octoPerfTest credentialsId: 'XXXXXX-XXX-XXX-XXXX', scenarioId: 'XXXXXXX'
        // }
Luca Verardo's avatar
Luca Verardo committed
        // stage ('JunitReport') {
        //     junit 'junit-report.xml'
        // }
Luca Verardo's avatar
Luca Verardo committed
        // stage ('PerfReport') {
        //     perfReport modeThroughput: true, sourceDataFiles: '**/*.jtl'
        // }
Zegorax's avatar
Zegorax committed
    }
Luca Verardo's avatar
Luca Verardo committed
}