-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathJenkinsfile
76 lines (65 loc) · 1.71 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
pipeline {
agent any
stages {
stage('Install') {
steps {
sh '''cd ./WebApp
dotnet restore'''
sh '''cd ./WebApp/khaneliman
npm install
npm install -g @angular/cli'''
}
}
stage('Test') {
parallel {
stage('Static code analysis') {
steps {
sh '''cd ./WebApp/khaneliman
npm run-script lint'''
}
}
stage('Unit tests') {
steps {
sh '''cd ./WebApp/khaneliman
npm run-script test-coverage'''
}
}
}
}
stage('Build') {
steps {
sh 'dotnet build ./WebApp/WebApp.csproj'
sh '''cd ./WebApp/khaneliman/
npm run-script build'''
}
}
}
post {
always {
publishHTML (target : [allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: './WebApp/khaneliman/apps/austin-horstman/coverage/austin-horstman',
reportFiles: 'index.html',
reportName: 'Angular Code Coverage',
reportTitles: 'The Report'])
junit 'WebApp/khaneliman/apps/austin-horstman/coverage/junit/Chrome_Headless_93.0.4577.0_(Linux_x86_64)/junit.xml'
}
success {
archiveArtifacts artifacts: 'WebApp/khaneliman/apps/austin-horstman/dist/**', fingerprint: true
}
}
tools {
dockerTool 'Docker'
dotnetsdk 'dotnetsdk'
git 'Default'
nodejs 'nodejs'
}
environment {
imageName = 'khaneliman/webapp'
registryUri = 'registry.khaneliman.com'
}
options {
buildDiscarder(logRotator(numToKeepStr: '15', artifactNumToKeepStr: '15'))
}
}