Skip to content
Snippets Groups Projects
Commit 4ff15a70 authored by Prajwal Amin's avatar Prajwal Amin
Browse files

Initial commit by containerization

parent e5e17dfe
Branches devops
No related tags found
No related merge requests found
pipeline {
agent any
tools {
gradle 'Gradle'
}
environment {
PROJECT_ID = "tech-rnd-project"
CLUSTER_NAME = "cluster"
LOCATION = "us-central1-a"
CREDENTIALS_ID = "kubernetes"
}
stages {
stage('Scm Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh 'chmod u+x gradlew'
sh './gradlew'
sh './gradlew build'
}
}
stage('Test') {
steps {
sh './gradlew test'
}
}
stage('SonarQube analysis') {
steps {
withSonarQubeEnv('java-sonarqube-server') {
sh "./gradlew sonarqube"
}
}
}
stage('Build Docker Image') {
steps {
sh 'whoami'
sh 'sudo chmod 777 /var/run/docker.sock'
sh 'sudo apt update'
sh 'sudo apt install software-properties-common'
sh 'sudo add-apt-repository ppa:cncf-buildpacks/pack-cli'
sh 'sudo apt-get update'
sh 'sudo apt-get install pack-cli'
sh 'pack build java-postgress --builder gcr.io/buildpacks/google-22/builder@sha256:ffa092c09ffb147b2ce9658eb6590aa9af2caffb2d513ab8546bb510b74e0225'
}
}
// stage('Image Scan') {
// steps {
// //add steps here
// echo 'image scanning'
// sh 'trivy image --no-progress --exit-code 1 --severity CRITICAL java-postgress'
// }
// }
stage('Push Docker Image') {
steps {
script {
echo 'Push Docker Image'
sh 'docker tag java-postgress us-central1-docker.pkg.dev/tech-rnd-project/container-node/nodejs'
sh 'gcloud auth configure-docker us-central1-docker.pkg.dev'
sh 'docker push us-central1-docker.pkg.dev/tech-rnd-project/container-node/nodejs'
// sh 'curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl'
// sh 'chmod +x kubectl'
// sh "sudo mv kubectl \$(which kubectl)"
}
}
}
stage('Deploy to K8s') {
steps {
echo 'Deployment started ...'
sh 'ls -ltr'
sh 'pwd'
echo 'Start deployment of deployment.yaml'
step([$class: 'KubernetesEngineBuilder', projectId: env.PROJECT_ID, clusterName: env.CLUSTER_NAME, location: env.LOCATION, manifestPattern: 'k8', credentialsId: env.CREDENTIALS_ID, verifyDeployments: true])
echo 'Deployment Finished ...'
sh '''
'''
}
}
}
post {
always {
emailext to: 'prajwal.amin@niveussolutions.com',
subject: "jenkins build:${currentBuild.currentResult}: ${env.JOB_NAME}",
body: "${currentBuild.currentResult}: Job ${env.JOB_NAME}\nMore Info can be found in the attached log",
attachLog: true
}
}
}
plugins { plugins {
id "org.sonarqube" version "4.4.1.3373"
id 'java' id 'java'
id 'org.springframework.boot' version '3.1.5' id 'org.springframework.boot' version '3.1.5'
id 'io.spring.dependency-management' version '1.1.3' id 'io.spring.dependency-management' version '1.1.3'
......
apiVersion: apps/v1
kind: Deployment
metadata:
name: java-gradle-app
spec:
replicas: 1
selector:
matchLabels:
app: java-gradle-app
template:
metadata:
labels:
app: java-gradle-app
spec:
containers:
- name: java-gradle-app
image: us-central1-docker.pkg.dev/tech-rnd-project/container-node/nodejs
ports:
- containerPort: 8080
apiVersion: v1
kind: Service
metadata:
name: java-gradle-app
spec:
ports:
- port: 8080
targetPort: 8080
type: LoadBalancer
selector:
app: java-gradle-app
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment