-
Notifications
You must be signed in to change notification settings - Fork 4
/
Jenkinsfile_nightly
128 lines (113 loc) · 3.81 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 Manage Organisations',
projectUrlStr: 'https://github.com/hmcts/rpx-xui-manage-organisations'
],
pipelineTriggers([
cron('H 07 * * 1-5')
])
])
@Library("Infrastructure")
def type = "nodejs"
def product = "xui"
def component = "mo-webapp"
def channel = '#xui-pipeline'
def secrets = [
'rpx-${env}': [
secret('test-email', 'TEST_EMAIL'),
secret('test-password', 'TEST_PASSWORD'),
secret('test-api-email', 'TEST_API_EMAIL'),
secret('test-api-password', 'TEST_API_PASSWORD'),
],
]
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)
// enableSecurityScan()
enableMutationTest()
enableCrossBrowserTest()
env.TEST_URL = 'https://manage-org.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 : 'API Functional Test'
])
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/functional/",
reportFiles : 'index.html',
reportName : 'XUI Manage Organisation Full functional Tests'
])
}
afterSuccess('mutationTest') {
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/mutation/node/",
reportFiles : 'index.html',
reportName : 'XUI Manage Organisation Mutation tests'
])
}
afterSuccess('securityScan') {
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/",
reportFiles : 'activescan.html',
reportName : 'XUI MO ZAP Security Scan Report'
])
}
afterSuccess('crossBrowserTest') {
publishHTML([
allowMissing : true,
alwaysLinkToLastBuild: true,
keepAll : true,
reportDir : "reports/tests/crossbrowser/",
reportFiles : 'index.html',
reportName : 'XUI Manage Organisation Cross Browser Tests'
])
}
}