Skip to content
Snippets Groups Projects
Commit d5558807 authored by Deeksha M's avatar Deeksha M
Browse files

Initial

parent b08f2c21
Branches stage1-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('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 gradle --builder gcr.io/buildpacks/google-22/builder@sha256:ffa092c09ffb147b2ce9658eb6590aa9af2caffb2d513ab8546bb510b74e0225'
sh 'docker tag gradle us-central1-docker.pkg.dev/tech-rnd-project/test-node/gradle'
}
}
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/test-node/gradle'
// 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: "gradle-app"
spec:
replicas: 1
selector:
matchLabels:
app: "gradle-app"
template:
metadata:
labels:
app: "gradle-app"
spec:
containers:
- name: "gradle-app"
image: us-central1-docker.pkg.dev/tech-rnd-project/test-node/gradle
ports:
- containerPort: 8080
apiVersion: v1
kind: Service
metadata:
name: "gradle-app"
spec:
ports:
- port: 8080
targetPort: 8080
type: "LoadBalancer"
selector:
app: "gradle-app"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment