forked from linagora/Gitlab_Monitor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
95 lines (95 loc) · 3.11 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
pipeline {
agent {
docker {
image "${env.HARBOR_REGISTRY}/${env.PROJECT_NAME}/${env.IMAGE_CACHE}:${env.CACHE_TAG}"
args "--env DOCKER_TLS_CERTDIR=${env.DOCKER_TLS_CERTDIR}"
}
}
environment {
PROJECT_PATH = './gitlab_monitor'
PROJECT_NAME = 'gitlab-monitor'
HARBOR_REGISTRY = 'docker-registry.linagora.com'
IMAGE_CACHE = 'gitlab-monitor-dev'
DOCKER_TLS_CERTDIR = '/certs'
CACHE_TAG = '1.0.0-dev'
CODE_SOURCE = './gitlab_monitor/'
IMAGE_CACHE_DEPLOY = 'gitlab-monitor-deploy-cache'
}
stages {
stage('Lint') {
parallel {
stage('Pylint') {
steps {
script {
sh '''
pylint --version
pylint --output-format=colorized ${CODE_SOURCE}/*
'''
}
}
}
stage('Black') {
steps {
script {
sh '''
black --version
black ${CODE_SOURCE}/* --check --diff
'''
}
}
}
stage('Isort') {
steps {
script {
sh '''
isort --version
isort ${CODE_SOURCE}/* --check-only
'''
}
}
}
stage('Pycln') {
steps {
script {
sh '''
pycln --version
pycln --check ${CODE_SOURCE}/*
'''
}
}
}
stage('Mypy') {
steps {
script {
sh '''
mypy --version
mypy ${CODE_SOURCE} --junit-xml report_mypy.xml
'''
}
}
post {
always {
junit 'report_mypy.xml'
}
}
}
}
}
stage('Test') {
steps {
script {
sh '''
export PYTHONPATH=$PYTHONPATH:$(pwd)
pytest --cov=gitlab_monitor --cov-report=html --cov-report=xml --junitxml=pytest_results.xml tests/unit/*
'''
}
}
post {
always {
junit 'pytest_results.xml'
archiveArtifacts artifacts: 'coverage.xml, pytest_results.xml, htmlcov/**', allowEmptyArchive: true
}
}
}
}
}