diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..8e1685763 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM schoolofdevops/carts-maven + + +WORKDIR /opt/carts + +COPY . . + +RUN mvn package \ + && mv target/carts.jar /run \ + && rm -rf * + +EXPOSE 80 + +CMD java -jar /run/carts.jar --port=80 + diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..c77050cfc --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,68 @@ +pipeline { + agent none + stages { + stage('build') { + agent { + docker { + image 'schoolofdevops/carts-maven' + } + + } + steps { + echo 'this is the build job' + sh 'mvn compile' + } + } + + stage('test') { + agent { + docker { + image 'schoolofdevops/carts-maven' + } + + } + steps { + echo 'this is the test job' + sh 'mvn clean test' + } + } + + stage('package') { + agent { + docker { + image 'schoolofdevops/carts-maven' + } + + } + steps { + echo 'this is the package job' + sh 'mvn package -DskipTests' + archiveArtifacts '**/target/*.jar' + } + } + + stage('docker build and publish') { + agent any + steps { + script { + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin') { + def dockerImage = docker.build("prat91/carts:v${env.BUILD_ID}", "./") + dockerImage.push() + dockerImage.push("latest") + } + } + + } + } + + } + tools { + maven 'Maven 3.6.3' + } + post { + always { + echo 'this pipeline has completed...' + } + + } +} diff --git a/pom.xml b/pom.xml index eac7c9695..1b42b0351 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.19.1 + 2.20 **/Unit*.java