-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathJenkinsfile
96 lines (80 loc) · 2.77 KB
/
Jenkinsfile
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
pipeline{
agent any
environment {
AWS_ACCESS_KEY_ID = credentials('jenkins-aws-secret-key-id')
AWS_SECRET_ACCESS_KEY = credentials('jenkins-aws-secret-access-key')
AWS_DEFAULT_REGION = credentials('AWS_DEFAULT_REGION')
}
parameters{
choice(
choices:['plan','apply','destroy'],
name:'Actions',
description: 'Describes the Actions')
booleanParam(
defaultValue: false,
description: 'network',
name: 'Networking'
)
booleanParam(
defaultValue: false,
description: 'compute',
name: 'Compute')
booleanParam(
defaultValue: false,
description: 'Notify',
name: 'Notification')
}
stages{
stage('build'){
steps{
checkout([$class: 'GitSCM', branches: [[name: 'main']], extensions: [], userRemoteConfigs: [[url: 'https://github.com/krishnaduttPanchagnula/Multifunctional-terraform-Jenkins-pipeline']]])
}
}
stage('init'){
steps{
sh"terraform init"
}
}
stage('Validate'){
steps{
sh"terraform validate"
}
}
stage('action'){
stages{
stage('Networking'){
when {
expression{params.Networking == true
}
}
steps{
sh"terraform ${params.Actions} -target=module.Netwoking"
}
}
stage('Compute'){
when {
expression{params.Compute == true
}
}
steps{
sh"terraform ${params.Actions} -target=module.Compute"
}
}
stage('Notification'){
when {
expression{params.Notification == true
}
}
steps{
sh"terraform ${params.Actions} -target=module.Notification"
}
}
}
}
stage('Terraform Completed'){
steps{
echo "Terraform Done..!"
}
}
}
}