-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
50 lines (40 loc) · 1.9 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
pipeline {
agent any // Выбираем Jenkins агента, на котором будет происходить сборка: нам нужен любой
triggers {
pollSCM('H/5 * * * *') // Запускать будем автоматически по крону примерно раз в 5 минут
}
tools {
maven 'maven-3.8.1' // Для сборки бэкенда нужен Maven
jdk 'jdk16' // И Java Developer Kit нужной версии
nodejs 'node-16' // А NodeJS нужен для фронта
}
stages {
stage('Build & Test backend') {
steps {
dir("backend") { // Переходим в папку backend
sh 'mvn package' // Собираем мавеном бэкенд
}
}
post {
success {
junit 'backend/target/surefire-reports/**/*.xml' // Передадим результаты тестов в Jenkins
}
}
}
stage('Build frontend') {
steps {
dir("frontend") {
sh 'npm install' // Для фронта сначала загрузим все сторонние зависимости
sh 'npm run build' // Запустим сборку
}
}
}
stage('Save artifacts') {
steps {
archiveArtifacts(artifacts: 'backend/target/sausage-store-0.0.1-SNAPSHOT.jar')
archiveArtifacts(artifacts: 'frontend/dist/frontend/*')
sh "curl -X POST -H \'Content-type: application/json\' --data \"{\'text':\'**Артамохин Александр** собрал приложение.\'}\" https://hooks.slack.com/services/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"
}
}
}
}