mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-04-24 11:22:49 +00:00
Compare commits
12 commits
2f3a85b3a3
...
f23aa04562
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f23aa04562 | ||
![]() |
15b228d198 | ||
![]() |
fd0e30c72f | ||
![]() |
29b73475db | ||
![]() |
61a75b5570 | ||
![]() |
0dce1f7d2b | ||
![]() |
684e04e703 | ||
![]() |
ba9fd2a991 | ||
![]() |
a2848f9132 | ||
![]() |
ceb2bc79db | ||
![]() |
89511d3b42 | ||
![]() |
f32d17fd42 |
4 changed files with 123 additions and 8 deletions
83
Jenkinsfile
vendored
83
Jenkinsfile
vendored
|
@ -4,7 +4,9 @@ pipeline {
|
|||
environment {
|
||||
// Define environment variables
|
||||
DOCKER_REGISTRY = "docker.io"
|
||||
DOCKER_IMAGE = "mmarcetic/main"
|
||||
DOCKER_IMAGE_MAIN = 'mmarcetic/main'
|
||||
DOCKER_IMAGE_MR = 'mmarcetic/mr'
|
||||
GIT_COMMIT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
||||
}
|
||||
|
||||
stages {
|
||||
|
@ -15,23 +17,88 @@ pipeline {
|
|||
}
|
||||
}
|
||||
|
||||
stage('Build Docker Image') {
|
||||
stage('Set Docker Image') {
|
||||
steps {
|
||||
script {
|
||||
// Build the Docker image
|
||||
def gitCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
||||
sh "docker build -t ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${gitCommit} ."
|
||||
// Set Docker image based on the branch name
|
||||
if (env.BRANCH_NAME == 'main') {
|
||||
env.DOCKER_IMAGE = DOCKER_IMAGE_MAIN
|
||||
} else {
|
||||
env.DOCKER_IMAGE = DOCKER_IMAGE_MR
|
||||
}
|
||||
|
||||
echo "Using Docker image: ${env.DOCKER_IMAGE}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push Docker Image') {
|
||||
stage('Checkstyle Report') {
|
||||
when {
|
||||
changeRequest()
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
// Checkstyle with Gradle
|
||||
sh './gradlew checkstyleMain'
|
||||
archiveArtifacts artifacts: 'build/reports/checkstyle/*.xml', allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Test') {
|
||||
when {
|
||||
changeRequest()
|
||||
}
|
||||
steps {
|
||||
// Test using Gradle
|
||||
sh './gradlew clean test'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Without Tests') {
|
||||
when {
|
||||
changeRequest()
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
// Build without tests using Gradle
|
||||
sh './gradlew build -x test'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Docker Image') {
|
||||
steps {
|
||||
script {
|
||||
// Build the Docker image
|
||||
sh "docker build -t ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${GIT_COMMIT} ."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push Docker Image for Change Request') {
|
||||
when {
|
||||
changeRequest()
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
def gitCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
||||
withCredentials([usernamePassword(credentialsId: "docker-login", usernameVariable: "DOCKER_USER", passwordVariable: "DOCKER_PASSWORD")]) {
|
||||
sh "docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD}"
|
||||
sh "docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${gitCommit}"
|
||||
sh "docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${GIT_COMMIT}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push Docker Image for Main') {
|
||||
when {
|
||||
branch "main"
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
withCredentials([usernamePassword(credentialsId: "docker-login", usernameVariable: "DOCKER_USER", passwordVariable: "DOCKER_PASSWORD")]) {
|
||||
sh "docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD}"
|
||||
sh "docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${GIT_COMMIT}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
11
config.yaml
Normal file
11
config.yaml
Normal file
|
@ -0,0 +1,11 @@
|
|||
kind: Cluster
|
||||
apiVersion: kind.x-k8s.io/v1alpha4
|
||||
nodes:
|
||||
- role: control-plane
|
||||
extraPortMappings:
|
||||
- containerPort: 30950
|
||||
hostPort: 30950
|
||||
listenAddress: "127.0.0.1"
|
||||
protocol: TCP
|
||||
|
||||
|
22
deployment.yaml
Normal file
22
deployment.yaml
Normal file
|
@ -0,0 +1,22 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: spring-boot-app
|
||||
namespace: petclinic
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: spring-boot-app
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: spring-boot-app
|
||||
spec:
|
||||
containers:
|
||||
- name: spring-boot-app
|
||||
image: docker.io/mmarcetic/main:2.0
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
|
15
service.yaml
Normal file
15
service.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: spring-boot-app-service
|
||||
namespace: petclinic
|
||||
spec:
|
||||
selector:
|
||||
app: spring-boot-app
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
nodePort: 30950
|
||||
type: NodePort
|
||||
|
Loading…
Reference in a new issue