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

Initial

parent e5e17dfe
No related branches found
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('SonarQube') {
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'
sh 'docker tag java-postgress us-central1-docker.pkg.dev/tech-rnd-project/container-java/javaagradle'
}
}
stage('Push Docker Image') {
steps {
script {
echo 'Push Docker Image'
sh 'gcloud auth configure-docker us-central1-docker.pkg.dev'
sh 'docker push us-central1-docker.pkg.dev/tech-rnd-project/container-java/javaagradle'
// 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: 'admin@gmail.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
}
}
}
apiVersion: apps/v1
kind: Deployment
metadata:
name: "java-app"
spec:
replicas: 1
selector:
matchLabels:
app: "java-app"
template:
metadata:
labels:
app: "java-app"
spec:
containers:
- name: "java-app"
image: us-central1-docker.pkg.dev/tech-rnd-project/container-java/javaagradle
ports:
- containerPort: 8080
apiVersion: v1
kind: Service
metadata:
name: "java-app"
spec:
ports:
- port: 8080
targetPort: 8080
type: "LoadBalancer"
selector:
app: "java-app"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment