-
Notifications
You must be signed in to change notification settings - Fork 8
/
Jenkinsfile_nightly
128 lines (115 loc) · 4.03 KB
/
Jenkinsfile_nightly
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!groovy
properties([
[
$class : 'GithubProjectProperty',
displayName : 'Expert UI Approve Organisations',
projectUrlStr: 'https://github.com/hmcts/rpx-xui-approve-org'
],
pipelineTriggers([
cron('H 07 * * 1-5')
])
])
@Library("Infrastructure")
def type = "nodejs"
def product = "xui"
def component = "webapp"
def channel = '#xui-pipeline'
def vault = "rpx"
def secrets = [
'rpx-${env}': [
secret('ao-test-email', 'TEST_EMAIL'),
secret('ao-test-password', 'TEST_PASSWORD'),
secret('test-api-email-adminuser', 'TEST_API_EMAIL_ADMIN'),
secret('test-api-password-adminuser', 'TEST_API_PASSWORD_ADMIN'),
secret('appinsights-instrumentationkey-ao', 'APPINSIGHTS_INSTRUMENTATIONKEY'),
secret('launch-darkly-client-id', 'LAUNCH_DARKLY_CLIENT_ID')
]
]
static LinkedHashMap<String, Object> secret(String secretName, String envVar) {
[ $class: 'AzureKeyVaultSecret',
secretType: 'Secret',
name: secretName,
version: '',
envVariable: envVar
]
}
withNightlyPipeline(type, product, component) {
enableSlackNotifications(channel)
loadVaultSecrets(secrets)
// enableFortifyScan('rpx-aat')
// enableFullFunctionalTest(60)
enableMutationTest()
enableCrossBrowserTest()
env.TEST_URL = 'https://administer-orgs.aat.platform.hmcts.net'
afterSuccess('checkout') {sh 'yarn cache clean'}
afterSuccess('build') {
sh 'npm run build'
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "test/reports/lint/node/",
reportFiles : 'index.html',
reportName : 'node lint Report'
])
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "test/reports/lint/ng/",
reportFiles : 'index.html',
reportName : 'ng lint Report'
])
}
afterSuccess('fortify-scan') {
steps.archiveArtifacts allowEmptyArchive: true, artifacts: '**/Fortify Scan/**/*'
}
afterSuccess('fullFunctionalTest') {
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/api_functional/",
reportFiles : 'mochawesome.html',
reportName : 'AAT API Functional Test'
])
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/functional/",
reportFiles : 'index.html',
reportName : 'XUI Approve Organisation Full functional Tests'
])
}
afterSuccess('mutationTest') {
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/mutation/node/",
reportFiles : 'index.html',
reportName : 'XUI Approve Organisation Mutation tests'
])
}
afterSuccess('crossBrowserTest') {
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/crossbrowser/",
reportFiles : 'index.html',
reportName : 'XUI Approve Organisation Cross Browser Tests'
])
}
afterSuccess('securityScan') {
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/",
reportFiles : 'activescan.html',
reportName : 'XUIAO ZAP Security Scan Report'
])
}
}