Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
43397c0
Update pom.xml
Jay2925 Jun 14, 2024
f9f5e95
Update pom.xml
Jay2925 Jul 18, 2024
ff7af41
Create Jenkinsfile
Jay2925 Dec 22, 2024
f75c37e
Merge pull request #1 from Jay2925/Jay2925-patch-1
Jay2925 Dec 22, 2024
3e42e6e
Update Jenkinsfile
Jay2925 Dec 22, 2024
4f5f745
Update Jenkinsfile
Jay2925 Dec 22, 2024
69d9e04
Update Jenkinsfile
Jay2925 Dec 22, 2024
a477c91
Update Jenkinsfile
Jay2925 Dec 22, 2024
3b5f4ec
Update Jenkinsfile
Jay2925 Dec 22, 2024
6874050
Update Jenkinsfile
Jay2925 Dec 22, 2024
37ea8e1
Update Jenkinsfile
Jay2925 Dec 22, 2024
c357e50
Update Jenkinsfile
Jay2925 Dec 22, 2024
6ef43a1
Update Jenkinsfile
Jay2925 Dec 22, 2024
0901a13
Update Jenkinsfile
Jay2925 Dec 22, 2024
9f345e1
Update Jenkinsfile
Jay2925 Dec 22, 2024
ef0bc04
Update Jenkinsfile
Jay2925 Dec 22, 2024
8321c72
Update Jenkinsfile
Jay2925 Dec 22, 2024
3357d03
Update Jenkinsfile
Jay2925 Dec 22, 2024
d798a96
Update Jenkinsfile
Jay2925 Dec 22, 2024
984c5b3
Update Jenkinsfile
Jay2925 Dec 22, 2024
f259963
Update Jenkinsfile
Jay2925 Dec 23, 2024
1e5b5ce
Update Jenkinsfile
Jay2925 Dec 23, 2024
7bfb898
Update Jenkinsfile
Jay2925 Dec 23, 2024
6e86df6
Update Jenkinsfile
Jay2925 Dec 23, 2024
90d3577
Update Jenkinsfile
Jay2925 Dec 23, 2024
b8f58bc
Update Jenkinsfile
Jay2925 Dec 23, 2024
a165989
Update Jenkinsfile
Jay2925 Dec 23, 2024
6620016
Update Jenkinsfile
Jay2925 Dec 23, 2024
9d9f2f5
Update Jenkinsfile
Jay2925 Dec 23, 2024
cad2833
Update Jenkinsfile
Jay2925 Dec 23, 2024
d5f6695
Update Jenkinsfile
Jay2925 Dec 23, 2024
2426c3b
Update Jenkinsfile
Jay2925 Dec 23, 2024
a3100f9
Update Jenkinsfile
Jay2925 Dec 23, 2024
60542ce
Update Jenkinsfile
Jay2925 Dec 23, 2024
0af33f5
Update Jenkinsfile
Jay2925 Dec 23, 2024
cfcd458
Update Jenkinsfile
Jay2925 Dec 23, 2024
d243475
Update Jenkinsfile
Jay2925 Dec 23, 2024
2f12d61
Update Jenkinsfile
Jay2925 Dec 23, 2024
6619d33
Update Jenkinsfile
Jay2925 Dec 23, 2024
3cb9323
Merge pull request #3 from Jay2925/Jay2925-patch-3
Jay2925 Dec 23, 2024
154e0fa
Update Jenkinsfile
Jay2925 Dec 23, 2024
93998ea
Update Jenkinsfile
Jay2925 Dec 23, 2024
108fb67
Update Jenkinsfile
Jay2925 Dec 23, 2024
f88b55a
Update Jenkinsfile
Jay2925 Dec 23, 2024
16093ad
Update Jenkinsfile
Jay2925 Dec 23, 2024
c6e62f7
Update Jenkinsfile
Jay2925 Dec 23, 2024
1e18ab7
Update Jenkinsfile
Jay2925 Dec 23, 2024
ee49f48
Update Jenkinsfile
Jay2925 Dec 23, 2024
965b429
Update Jenkinsfile
Jay2925 Dec 23, 2024
23a8ed0
Update Jenkinsfile
Jay2925 Dec 23, 2024
e829958
Update Jenkinsfile
Jay2925 Dec 23, 2024
e354b12
Update Jenkinsfile
Jay2925 Dec 23, 2024
82a1472
Update Jenkinsfile
Jay2925 Dec 23, 2024
24f3693
Update Jenkinsfile
Jay2925 Dec 23, 2024
65a45f8
Update Jenkinsfile
Jay2925 Dec 23, 2024
4e7bc8d
Update Jenkinsfile
Jay2925 Dec 23, 2024
794b51c
Update Jenkinsfile
Jay2925 Dec 23, 2024
63797f0
Update Jenkinsfile
Jay2925 Dec 23, 2024
7b0858f
Update Jenkinsfile
Jay2925 Dec 28, 2024
42c079b
Update Jenkinsfile
Jay2925 Dec 28, 2024
441bde6
Update Jenkinsfile
Jay2925 Dec 28, 2024
89cec86
Update Jenkinsfile
Jay2925 Dec 28, 2024
0531cb3
Update Jenkinsfile
Jay2925 Dec 28, 2024
2857cd1
Update Jenkinsfile
Jay2925 Dec 28, 2024
267b01f
Update Jenkinsfile
Jay2925 Dec 29, 2024
143c5fe
Update Jenkinsfile
Jay2925 Dec 29, 2024
8cc2ed7
Update Jenkinsfile
Jay2925 Dec 29, 2024
19c638c
Update Jenkinsfile
Jay2925 Dec 29, 2024
d4f9382
Update Jenkinsfile
Jay2925 Dec 29, 2024
e73ffdb
Update Jenkinsfile
Jay2925 Dec 29, 2024
61de27c
Update Jenkinsfile
Jay2925 Dec 29, 2024
b0438bf
Update Jenkinsfile
Jay2925 Dec 30, 2024
fa33085
Update Jenkinsfile
Jay2925 Dec 30, 2024
bdf7a18
Update Jenkinsfile
Jay2925 Dec 30, 2024
f358764
Update Jenkinsfile
Jay2925 Dec 30, 2024
a9a1c51
Update Jenkinsfile
Jay2925 Dec 30, 2024
32746c5
Update Jenkinsfile
Jay2925 Dec 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
pipeline {
agent { label 'Slave1' }

tools {
maven 'maven3'
}

environment {
ECR_REPO = '866934333672.dkr.ecr.us-east-1.amazonaws.com/jay-repo'
IMAGE_NAME = 'app-image'
TAG = "${env.BRANCH_NAME}-${env.BUILD_ID}"
}

stages {
stage('Checkout') {
steps {
git branch: "${env.BRANCH_NAME}", url: 'https://github.com/your-org/your-repo.git'
}
}

stage('Build Application') {
steps {
sh 'mvn clean package -Dmaven.test.skip=true'
}
}

stage('Build Docker Image') {
steps {
script {
// Specify the Dockerfile location using the -f option
docker.build("${env.ECR_REPO}:${env.TAG}", "-f docker/Dockerfile .")
}
}
}

stage('Push to ECR') {
steps {
withCredentials([usernamePassword(credentialsId: 'aws-ecr', usernameVariable: 'AWS_ACCESS_KEY_ID', passwordVariable: 'AWS_SECRET_ACCESS_KEY')]) {
sh "aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin ${env.ECR_REPO}"
sh "docker push ${env.ECR_REPO}:${env.TAG}"
}
}
post {
success {
// Send email notification after successful image push to ECR
emailext(
subject: "Jenkins Job - Docker Image Pushed to ECR Successfully",
body: "Hello,\n\nThe Docker image '${env.IMAGE_NAME}:${env.TAG}' has been successfully pushed to ECR.\n\nBest regards,\nJenkins",
recipientProviders: [[$class: 'DevelopersRecipientProvider']],
to: "[email protected]"
)
}
}
}

stage('Container Security Scan - Trivy') {
steps {
script {
sh 'aws ecr get-login-password --region us-east-1 | sudo docker login --username AWS --password-stdin 866934333672.dkr.ecr.us-east-1.amazonaws.com'
sh 'sudo usermod -aG docker root'
sh "trivy image 866934333672.dkr.ecr.us-east-1.amazonaws.com/jay-repo:main-9"
}
}
}

stage('Static Code Analysis - SonarQube') {
steps {
script {
withSonarQubeEnv('SonarQubeServer') {
sh 'mvn sonar:sonar'
}
}
}
}

stage('Deploy to Environment') {
steps {
script {
// Check the branch name and set the appropriate target
def targetHost = ''
if (env.BRANCH_NAME == 'dev') {
targetHost = 'dev-server' // Define the name or address for the dev server if needed
} else if (env.BRANCH_NAME == 'staging') {
targetHost = 'staging-server' // Define the name or address for staging
} else if (env.BRANCH_NAME == 'main') {
targetHost = 'production-server' // Define the production server address
}

// Run deployment commands directly on the same agent (slave) server
echo "Deploying to $targetHost"
sh """
echo "Pulling Docker image..."
docker pull ${ECR_REPO}:${TAG}
echo "Stopping existing container..."
docker stop ${IMAGE_NAME} || true
docker rm ${IMAGE_NAME} || true
echo "Running new container..."
docker run -d --name ${IMAGE_NAME} -p 80:80 ${ECR_REPO}:${TAG}
echo "Deployment completed"
"""
}
}
}
}

post {
always {
cleanWs() // Clean up workspace after the build
}
}
}
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -152,12 +152,12 @@
<repository>
<id>maven-releases</id>
<name>maven-releases</name>
<url>http://3.108.254.192:8081/repository/maven-releases/</url>
<url>http://3.101.25.107:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>maven-snapshots</name>
<url>http://3.108.254.192:8081/repository/maven-snapshots/</url>
<url>http://3.101.25.107:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>

Expand Down