-
Notifications
You must be signed in to change notification settings - Fork 23
/
jenkinsfilw-ansible
56 lines (47 loc) · 1.69 KB
/
jenkinsfilw-ansible
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
pipeline {
agent any
environment {
// Define environment variables
IMAGE_NAME = 'cloudsihmar/pettt'
PORT_MAPPING = '9090:8080'
CONTAINER_NAME = 'pett'
TAG = "${BUILD_NUMBER}"
}
stages {
stage('wp') {
steps {
cleanWs()
}
}
stage('git clone') {
steps {
git 'https://github.com/CloudSihmar/pet.git'
}
}
stage('build') {
steps {
sh 'mvn clean package'
}
}
stage('Image') {
steps {
withCredentials([usernamePassword(credentialsId: 'dockerhub', passwordVariable: 'docker_password', usernameVariable: 'docker_username')]) {
sh "docker login -u ${docker_username} -p ${docker_password}"
// Build and push Docker image
sh "docker build -t $IMAGE_NAME:${BUILD_NUMBER} -f Dockerfile.v3 ."
sh "docker push $IMAGE_NAME:${BUILD_NUMBER}"
}
}
}
stage('deploy') {
steps {
ansiblePlaybook credentialsId: 'docker-server', disableHostKeyChecking: true, installation: 'ansible', inventory: 'dev.inv', playbook: 'deploy-docker2.yml', extras: "-e VERSION=${BUILD_NUMBER} -e IMAGE=$IMAGE_NAME", vaultTmpPath: ''
}
}
stage('security-check') {
steps {
ansiblePlaybook credentialsId: 'docker-server', disableHostKeyChecking: true, installation: 'ansible', inventory: 'dev.inv', playbook: 'security-check.yml', vaultTmpPath: ''
}
}
}
}