-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathJenkinsfile_parameterized
62 lines (52 loc) · 1.96 KB
/
Jenkinsfile_parameterized
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
#!groovy
@Library(value="Infrastructure", changelog=false)
def channel = '#bsp-build-notices'
env.TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX = 'hmctspublic.azurecr.io/imported/'
def combinedSecrets = [
'bulk-scan-${env}': [
secret('storage-account-primary-key', 'TEST_STORAGE_ACCOUNT_KEY'),
secret('launch-darkly-sdk-key', 'LAUNCH_DARKLY_SDK_KEY'),
secret('launch-darkly-offline-mode', 'LAUNCH_DARKLY_OFFLINE_MODE')
],
's2s-${env}': [
// to be removed later
secret('microservicekey-bulk-scan-processor-tests', 'TEST_S2S_SECRET'),
secret('microservicekey-bulk-scan-processor-tests', 'S2S_SECRET')
]
]
def commonSecrets = [
's2s-${env}': [
// to be removed later
secret('microservicekey-bulk-scan-processor-tests', 'TEST_S2S_SECRET'),
secret('microservicekey-bulk-scan-processor-tests', 'S2S_SECRET')
]
]
static LinkedHashMap<String, Object> secret(String secretName, String envVar) {
[ $class: 'AzureKeyVaultSecret',
secretType: 'Secret',
name: secretName,
version: '',
envVariable: envVar
]
}
properties([
parameters([
string(name: 'PRODUCT_NAME', defaultValue: 'bulk-scan', description: ''),
string(name: 'APP', defaultValue: 'processor', description: ''),
string(name: 'TYPE', defaultValue: 'java', description: ''),
string(name: 'ENVIRONMENT', defaultValue: 'sandbox', description: 'Environment where code should be built and deployed'),
choice(name: 'SUBSCRIPTION', choices: 'sandbox\nnonprod\nprod', description: 'Azure subscriptions available to build in')
]),
[$class: 'GithubProjectProperty', projectUrlStr: 'github.com/hmcts/bulk-scan-processor'],
pipelineTriggers([[$class: 'GitHubPushTrigger']])
])
withParameterizedPipeline(params.TYPE, params.PRODUCT_NAME, params.APP, params.ENVIRONMENT, params.SUBSCRIPTION) {
enableDbMigration('bulk-scan')
enableSlackNotifications(channel)
onPR() {
loadVaultSecrets(commonSecrets)
}
onNonPR() {
loadVaultSecrets(combinedSecrets)
}
}