adding jenkinsfile
This commit is contained in:
parent
593a312745
commit
90cacb86c5
|
|
@ -4,51 +4,23 @@ pipeline {
|
||||||
environment {
|
environment {
|
||||||
REGISTRY_URL = 'git.winteraccess.id'
|
REGISTRY_URL = 'git.winteraccess.id'
|
||||||
IMAGE_NAME = 'winter-access/backend_nam'
|
IMAGE_NAME = 'winter-access/backend_nam'
|
||||||
KUBE_NAMESPACE = 'nam-backend-dev'
|
KUBE_CONFIG_ID = '8c2082d8-ab78-48b5-a27b-6717387a5ce6'
|
||||||
GIT_CREDENTIALS_ID = '8242519c-ed9e-447a-ad63-1f8d7368cf68'
|
CREDENTIALS_ID = '8242519c-ed9e-447a-ad63-1f8d7368cf68'
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
stage('Checkout') {
|
stage('Checkout Code') {
|
||||||
steps {
|
steps {
|
||||||
checkout([
|
git branch: 'dev', url: 'https://git.winteraccess.id/winter-access/backend_nam.git', credentialsId: "${CREDENTIALS_ID}"
|
||||||
$class: 'GitSCM',
|
|
||||||
branches: [[name: '*/dev']],
|
|
||||||
doGenerateSubmoduleConfigurations: false,
|
|
||||||
extensions: [],
|
|
||||||
userRemoteConfigs: [[
|
|
||||||
url: 'https://git.winteraccess.id/winter-access/backend_nam.git',
|
|
||||||
credentialsId: env.GIT_CREDENTIALS_ID
|
|
||||||
]]
|
|
||||||
])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Get Short SHA') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
env.SHORT_SHA = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Login to Registry') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
sh "echo ${env.REGISTRY_TOKEN} | docker login ${REGISTRY_URL} --username ${env.REGISTRY_USER} --password-stdin"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Build Docker Image') {
|
stage('Build Docker Image') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
sh """
|
def shortSha = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
||||||
docker build -t ${REGISTRY_URL}/${IMAGE_NAME}:dev-${SHORT_SHA} \
|
def imageTag = "dev-${shortSha}"
|
||||||
-t ${REGISTRY_URL}/${IMAGE_NAME}:dev \
|
sh "docker build -t ${REGISTRY_URL}/${IMAGE_NAME}:${imageTag} ."
|
||||||
-t ${REGISTRY_URL}/${IMAGE_NAME}:latest \
|
|
||||||
-f src/Dockerfile .
|
|
||||||
"""
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -56,41 +28,11 @@ pipeline {
|
||||||
stage('Push Docker Image') {
|
stage('Push Docker Image') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
sh """
|
def shortSha = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
||||||
docker push ${REGISTRY_URL}/${IMAGE_NAME}:dev-${SHORT_SHA}
|
def imageTag = "dev-${shortSha}"
|
||||||
docker push ${REGISTRY_URL}/${IMAGE_NAME}:dev
|
sh "docker push ${REGISTRY_URL}/${IMAGE_NAME}:${imageTag}"
|
||||||
docker push ${REGISTRY_URL}/${IMAGE_NAME}:latest
|
sh "docker push ${REGISTRY_URL}/${IMAGE_NAME}:dev"
|
||||||
"""
|
sh "docker push ${REGISTRY_URL}/${IMAGE_NAME}:latest"
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('SonarQube Analysis') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
withSonarQubeEnv('SonarQube') {
|
|
||||||
sh 'mvn sonar:sonar'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Setup Kubectl') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
sh 'kubectl version --client'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Create Kubeconfig') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
sh """
|
|
||||||
mkdir -p \$HOME/.kube
|
|
||||||
echo "${env.KUBECONFIG}" > \$HOME/.kube/config
|
|
||||||
chmod 600 \$HOME/.kube/config
|
|
||||||
"""
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -98,10 +40,10 @@ pipeline {
|
||||||
stage('Deploy to Kubernetes') {
|
stage('Deploy to Kubernetes') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
sh """
|
withCredentials([string(credentialsId: "${KUBE_CONFIG_ID}", variable: 'KUBE_CONFIG')]) {
|
||||||
kubectl apply -f deploy/kubernetes/dev.yaml
|
writeFile file: 'kubeconfig', text: KUBE_CONFIG
|
||||||
kubectl set image deployment/backend backend=${REGISTRY_URL}/${IMAGE_NAME}:dev-${SHORT_SHA} -n ${KUBE_NAMESPACE}
|
sh "kubectl apply -f deploy/kubernetes/dev.yaml --kubeconfig=kubeconfig"
|
||||||
"""
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -112,4 +54,4 @@ pipeline {
|
||||||
cleanWs()
|
cleanWs()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue