Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
ab57ba7
jenkinsfile update
Savirean07 Aug 1, 2025
c0d0356
Jenkinsfile
Savirean07 Aug 1, 2025
c4226d9
Jenkins file update
Savirean07 Aug 1, 2025
5ec6f89
Jenkins file update
Savirean07 Aug 1, 2025
91b63be
Jenkins file update
Savirean07 Aug 1, 2025
9fa7dcc
Jenkins file update
Savirean07 Aug 1, 2025
5e70649
Jenkins file update
Savirean07 Aug 1, 2025
890c87a
Jenkins file update
Savirean07 Aug 1, 2025
422eeae
Jenkins file update
Savirean07 Aug 1, 2025
5b9bd3f
Trivy scan stage
Savirean07 Aug 2, 2025
4624f5b
Sonar Analysis stage added
Savirean07 Aug 2, 2025
3bb0170
Sonar Analysis stage added
Savirean07 Aug 2, 2025
c965e24
Sonar Analysis stage added
Savirean07 Aug 2, 2025
19b45e4
Sonar Analysis stage added
Savirean07 Aug 2, 2025
f67048c
Sonar Analysis stage added
Savirean07 Aug 2, 2025
0fa79fe
Sonar Analysis stage added
Savirean07 Aug 2, 2025
800d99d
Sonar Analysis stage added
Savirean07 Aug 2, 2025
019efd3
Sonar Analysis stage added
Savirean07 Aug 2, 2025
deca5f3
Sonar Analysis stage added
Savirean07 Aug 2, 2025
4e0957c
Sonar Analysis stage added
Savirean07 Aug 2, 2025
9355a64
Sonar Analysis stage added
Savirean07 Aug 3, 2025
138b44a
Sonar Analysis stage added
Savirean07 Aug 3, 2025
fbcea7a
Sonar Analysis stage added
Savirean07 Aug 3, 2025
9781d08
Sonar Analysis stage added
Savirean07 Aug 3, 2025
d3a4238
Sonar Analysis stage added
Savirean07 Aug 3, 2025
7e18b3e
Sonar Analysis stage added
Savirean07 Aug 3, 2025
cb88eb2
Sonar Analysis stage added
Savirean07 Aug 3, 2025
9edce11
Sonar Analysis stage added
Savirean07 Aug 3, 2025
218ab85
Quality gate stage added
Savirean07 Aug 3, 2025
181466e
Sonar Analysis stage added
Savirean07 Aug 3, 2025
c06de4f
Maven Package stage added
Savirean07 Aug 3, 2025
74768aa
Jar publish stage
Savirean07 Aug 3, 2025
9c3730e
Jar publish stage
Savirean07 Aug 3, 2025
1905d93
Jar publish stage
Savirean07 Aug 3, 2025
ca1ff17
Jenkinsfile updated with stages
Savirean07 Aug 4, 2025
56e722f
Jenkinsfile updated with stages
Savirean07 Aug 4, 2025
688b39a
Jenkinsfile updated with stages
Savirean07 Aug 4, 2025
148b619
Jenkinsfile updated with stages
Savirean07 Aug 4, 2025
40231a4
Jenkinsfile updated with stages
Savirean07 Aug 4, 2025
f3c2ca8
Update Jenkinsfile
Savirean07 Aug 6, 2025
798dd43
Update deployment-service.yml
Savirean07 Aug 6, 2025
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
169 changes: 158 additions & 11 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,31 +1,178 @@
pipeline {
agent any

tools {
maven 'maven3.6'
jdk 'jdk17'
maven 'Maven3' // Ensure this matches Jenkins config
jdk 'Java 8' // Ensure this is defined in Jenkins
}

environment {
registry = "https://jfrog.io" // Replace with your actual JFrog base URL (without /artifactory)
IMAGE_NAME = "Image Name" // replace with your Docker image name
IMAGE_TAG = "latest"
PATH = "/opt/sonar-scanner/bin:$PATH" // Replace with your Image path
}

stages {

stage('Checkout Code') {
steps {
echo 'Cloning repository...'
git url: 'https://github.com.git', branch: 'main' // Replace with your git repo URl
}
}

stage('Compile') {
steps {
sh 'mvn compile'
echo 'Compiling the application...'
sh 'mvn compile'
}
}

stage('File scan by Trivy') {
steps {
echo 'Running Trivy scan...'
sh 'trivy fs --format table --output trivy-filescanproject-output.txt .'
}
}

stage('Check Scanner') {
steps {
echo 'Checking sonar-scanner path and version...'
sh 'echo $PATH'
sh 'which sonar-scanner || echo "sonar-scanner not found!"' // jenkins Sonar scanner Creds
sh 'sonar-scanner --version || echo "Version check failed!"'
}
}
stage('test') {

stage('Sonar Analysis') {
steps {
sh 'mvn test'
echo 'Running SonarQube analysis...'
withSonarQubeEnv('sonarqube') { // Replace with your Jenkins sonarqube creds name
sh '''
sonar-scanner \
-Dsonar.projectKey=Boardgame \
-Dsonar.java.binaries=. \
-Dsonar.exclusions=**/trivy-filescanproject-output.txt
'''
}
}
}
stage('Package') {

stage('Quality Gate') {
steps {
sh 'mvn package'
echo 'Waiting for SonarQube Quality Gate...'
timeout(time: 1, unit: 'MINUTES') {
waitForQualityGate abortPipeline: true
}
}
}
stage('Hello') {

stage('Maven Package') {
steps {
echo 'Hello World'
echo 'Maven packaging started...'
sh 'mvn package'
}
}

stage('Jar Publish') {
steps {
script {
echo '<-------------- Jar Publish Started -------------->'

def server = Artifactory.newServer(
url: "${registry}/artifactory",
credentialsId: "jfrogaccess"
)

def properties = "buildid=${env.BUILD_ID},commitid=${env.GIT_COMMIT}"

def uploadSpec = """{
"files": [
{
"pattern": "target/database_service_project.jar",
"target": "boardgame-libs-release/",
"flat": false,
"props": "${properties}",
"exclusions": ["*.sha1", "*.md5"]
}
]
}"""

def buildInfo = server.upload(uploadSpec)
buildInfo.env.collect()
server.publishBuildInfo(buildInfo)

echo '<-------------- Jar Publish Ended -------------->'
}
}
}

stage('Docker Build and Tag') {
steps {
script {
echo 'Docker Build and Tag started'
echo "Building Docker image ${IMAGE_NAME}:${IMAGE_TAG}"
sh "docker build -t ${IMAGE_NAME}:${IMAGE_TAG} ."
}
}
}

stage('Trivy Docker Image Scan') {
steps {
echo 'Trivy Docker image scan started'
sh "trivy image --format table --output trivy-image-scan.txt ${IMAGE_NAME}:${IMAGE_TAG}"
}
}

stage('Image Push to Docker Hub') {
steps {
script {
echo 'Docker Push to Docker Hub started'
withCredentials([usernamePassword(credentialsId: 'docker-hub-credentials', usernameVariable: 'DOCKER_USERNAME', passwordVariable: 'DOCKER_PASSWORD')]) {
sh '''
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push ${IMAGE_NAME}:${IMAGE_TAG}
docker logout
'''
}
}
}
}

stage('Image Push to Azure Container Registry') {
steps {
script {
echo 'Docker Push to Azure Container Registry started'

def acrRegistry = '' // Place your registry name here
def acrImage = "${acrRegistry}/to-do-app:${IMAGE_TAG}"

sh "docker tag ${IMAGE_NAME}:${IMAGE_TAG} ${acrImage}"

withCredentials([usernamePassword(credentialsId: 'acr-cred', usernameVariable: 'ACR_USERNAME', passwordVariable: 'ACR_PASSWORD')]) {
sh """
echo "$ACR_PASSWORD" | docker login ${acrRegistry} -u "$ACR_USERNAME" --password-stdin
docker push ${acrImage}
docker logout ${acrRegistry}
"""
}
}
}
}

stage('Deploy to Kubernetes') {
steps {
script {
echo 'Deploying to Kubernetes cluster'

withCredentials([file(credentialsId: 'K8-cred', variable: 'KUBECONFIG_FILE')]) {
sh '''
export KUBECONFIG=$KUBECONFIG_FILE
kubectl apply -f deployment-service.yml
kubectl rollout status deployment/to-do-app
'''
}
}
}
}
}
Expand Down
36 changes: 0 additions & 36 deletions Jenkinsfile_aditya

This file was deleted.

36 changes: 0 additions & 36 deletions deployment-service.yaml

This file was deleted.

19 changes: 19 additions & 0 deletions deployment-service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: to-do-app
spec:
replicas: 1
selector:
matchLabels:
app: to-do-app
template:
metadata:
labels:
app: to-do-app
spec:
containers:
- name: to-do-app
image: himanshujangid/boardgame-app:latest
ports:
- containerPort: 8080