-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
93 lines (87 loc) · 3.24 KB
/
build.gradle
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
plugins {
id 'base'
id "org.sonarqube" version "3.4.0.2513"
}
// Provide tasks to running commands on multi-platform
// ./gradlew build
// ./gradlew clean
// ./gradlew tfinit --info
// ./gradlew fmt --info
task build(overwrite: true, dependsOn:['tfinit'])
clean.doLast {
delete "${rootDir}/05-k8s-redis-cli/redis-stack.yaml"
def dirs = new File(".").listFiles().each {
if (it.directory && new File(it, 'main.tf').exists()) {
println "clean terraform: ${it}/.terraform"
delete "${it}/.terraform"
delete "${it}/.terraform.lock.hcl"
}
}
}
task tfinit {
doLast {
def dirs = new File(".").listFiles().each {
if (!(it.directory && new File(it, 'main.tf').exists())) {
return;
}
def workDir = it
println "clean terraform: ${workDir}"
exec {
def cmd = "terraform -chdir='${workDir}' workspace select stg || terraform -chdir='${workDir}' workspace new stg"
println "Create or select 'stg' workspace: ${cmd}"
executable "sh"
args "-c", cmd
}
exec {
def cmd = "terraform -chdir='${workDir}' workspace select dev || terraform -chdir='${workDir}' workspace new dev"
println "Create or select 'dev' workspace: ${cmd}"
executable "sh"
args "-c", cmd
}
exec {
def cmd = "terraform -chdir='${workDir}' workspace list"
println "Workspace list: ${cmd}"
executable "sh"
args "-c", cmd
}
exec {
println "terraform init: ${workDir}"
executable "sh"
args "-c", "terraform -chdir='${workDir}' init"
}
exec {
println "terraform validate: ${workDir}"
executable "sh"
args "-c", "terraform -chdir='${workDir}' validate"
}
}
}
}
task fmt {
doLast {
exec {
println "terraform format: ./*"
executable "sh"
args "-c", "terraform fmt -recursive ."
}
}
}
sonarqube {
properties {
property "sonar.projectName", "gcp-private-services-access"
property "sonar.projectKey", "DevSecOpsSamples_gcp-private-services-access"
property "sonar.organization", "devsecopssamples"
// property "sonar.host.url", "http://127.0.0.1:9000"
property "sonar.host.url", "https://sonarcloud.io"
property "sonar.sourceEncoding", "UTF-8"
property "sonar.sources", "."
property "sonar.python.version", "3.9"
property "sonar.coverage.jacoco.xmlReportPaths", "build/test-result.xml"
property "sonar.python.coverage.reportPaths", "build/test-coverage.xml"
property "sonar.exclusions", "build/**, gha-creds-*.json, .*sa"
property "sonar.issue.ignore.multicriteria", "e1"
property "sonar.issue.ignore.multicriteria.e1.ruleKey", "terraform:S6404"
property "sonar.issue.ignore.multicriteria.e1.resourceKey", "**/*.tf"
property "sonar.links.ci", "https://github.com/DevSecOpsSamples/gcp-private-services-access/actions"
}
}