annotate Jenkinsfile @ 7915:d59026c90f22

i18n: drop translations of push-to-lock strings, removed in 99edd97366e3 A few of the dropped strings had meanwhile been translated. That gave conflicts when rebasing the po update from 99edd97366e3 and to branch head. That was resolved by dropping these conflicts.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 03 Nov 2019 15:23:31 +0100
parents d9e37f7fd35b
children 89e9aef9b983
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6583
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
1 def createvirtualenv = ''
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
2 def activatevirtualenv = ''
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
3
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
4 node {
6925
58713c2ebfff jenkinsfile: only keep the artifacts (test result xml files) of the last 10 builds
domruf <dominikruf@gmail.com>
parents: 6924
diff changeset
5 properties([[$class: 'BuildDiscarderProperty',
58713c2ebfff jenkinsfile: only keep the artifacts (test result xml files) of the last 10 builds
domruf <dominikruf@gmail.com>
parents: 6924
diff changeset
6 strategy: [$class: 'LogRotator',
58713c2ebfff jenkinsfile: only keep the artifacts (test result xml files) of the last 10 builds
domruf <dominikruf@gmail.com>
parents: 6924
diff changeset
7 artifactDaysToKeepStr: '',
58713c2ebfff jenkinsfile: only keep the artifacts (test result xml files) of the last 10 builds
domruf <dominikruf@gmail.com>
parents: 6924
diff changeset
8 artifactNumToKeepStr: '10',
58713c2ebfff jenkinsfile: only keep the artifacts (test result xml files) of the last 10 builds
domruf <dominikruf@gmail.com>
parents: 6924
diff changeset
9 daysToKeepStr: '',
58713c2ebfff jenkinsfile: only keep the artifacts (test result xml files) of the last 10 builds
domruf <dominikruf@gmail.com>
parents: 6924
diff changeset
10 numToKeepStr: '']]]);
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
11 if (isUnix()) {
6550
ad275fcc5a90 jenkinsfile: create venv in special folder instead of jenkins workspace
domruf <dominikruf@gmail.com>
parents: 6549
diff changeset
12 createvirtualenv = 'rm -r $JENKINS_HOME/venv/$JOB_NAME || true && virtualenv $JENKINS_HOME/venv/$JOB_NAME'
ad275fcc5a90 jenkinsfile: create venv in special folder instead of jenkins workspace
domruf <dominikruf@gmail.com>
parents: 6549
diff changeset
13 activatevirtualenv = '. $JENKINS_HOME/venv/$JOB_NAME/bin/activate'
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
14 } else {
6550
ad275fcc5a90 jenkinsfile: create venv in special folder instead of jenkins workspace
domruf <dominikruf@gmail.com>
parents: 6549
diff changeset
15 createvirtualenv = 'rmdir /s /q %JENKINS_HOME%\\venv\\%JOB_NAME% || true && virtualenv %JENKINS_HOME%\\venv\\%JOB_NAME%'
ad275fcc5a90 jenkinsfile: create venv in special folder instead of jenkins workspace
domruf <dominikruf@gmail.com>
parents: 6549
diff changeset
16 activatevirtualenv = 'call %JENKINS_HOME%\\venv\\%JOB_NAME%\\Scripts\\activate.bat'
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
17 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
18
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
19 stage('checkout') {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
20 checkout scm
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
21 if (isUnix()) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
22 sh 'hg --config extensions.purge= purge --all'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
23 } else {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
24 bat 'hg --config extensions.purge= purge --all'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
25 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
26 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
27 stage('virtual env') {
6550
ad275fcc5a90 jenkinsfile: create venv in special folder instead of jenkins workspace
domruf <dominikruf@gmail.com>
parents: 6549
diff changeset
28 def virtualenvscript = """$createvirtualenv
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
29 $activatevirtualenv
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
30 python -m pip install --upgrade pip
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
31 pip install --upgrade setuptools
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
32 pip install --upgrade pylint
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
33 pip install --upgrade pytest-cov
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
34 """
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
35 if (isUnix()) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
36 virtualenvscript += """
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
37 pip install --upgrade python-ldap
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
38 pip install --upgrade python-pam
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
39 """
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
40 sh virtualenvscript
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
41 } else {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
42 bat virtualenvscript
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
43 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
44 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
45 stage('setup') {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
46 def virtualenvscript = """$activatevirtualenv
7841
d9e37f7fd35b docs: always use dev_requirements.txt together with main version constraints in setup.py
Mads Kiilerich <mads@kiilerich.com>
parents: 6925
diff changeset
47 pip install --upgrade -e . -r dev_requirements.txt
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
48 python setup.py compile_catalog
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
49 """
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
50 if (isUnix()) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
51 sh virtualenvscript
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
52 } else {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
53 bat virtualenvscript
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
54 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
55 stash name: 'kallithea', useDefaultExcludes: false
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
56 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
57 stage('pylint') {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
58 sh script: """$activatevirtualenv
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
59 pylint -j 0 --disable=C -f parseable kallithea > pylint.out
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
60 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
61 archiveArtifacts 'pylint.out'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
62 try {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
63 step([$class: 'WarningsPublisher', canComputeNew: false, canResolveRelativePaths: false, defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', messagesPattern: '', parserConfigurations: [[parserName: 'PyLint', pattern: 'pylint.out']], unHealthy: ''])
6551
bc1b11a5d548 jenkinsfile: catch the correct exception if jenkins plugin is not available
domruf <dominikruf@gmail.com>
parents: 6550
diff changeset
64 } catch (java.lang.IllegalArgumentException exc) {
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
65 echo "You need to install the 'Warnings Plug-in' to display the pylint report."
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
66 currentBuild.result = 'UNSTABLE'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
67 echo "Caught: ${exc}"
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
68 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
69 }
6583
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
70 }
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
71
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
72 def pytests = [:]
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
73 pytests['sqlite'] = {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
74 node {
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
75 ws {
6552
15a12f2a47b4 jenkinsfile: delete all old files in the workspace
domruf <dominikruf@gmail.com>
parents: 6551
diff changeset
76 deleteDir()
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
77 unstash name: 'kallithea'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
78 if (isUnix()) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
79 sh script: """$activatevirtualenv
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
80 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_sqlite.xml --cov=kallithea
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
81 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
82 } else {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
83 bat script: """$activatevirtualenv
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
84 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_sqlite.xml --cov=kallithea
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
85 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
86 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
87 sh 'sed --in-place "s/\\(classname=[\'\\"]\\)/\\1SQLITE./g" pytest_sqlite.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
88 archiveArtifacts 'pytest_sqlite.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
89 junit 'pytest_sqlite.xml'
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
90 writeFile(file: '.coverage.sqlite', text: readFile('.coverage'))
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
91 stash name: 'coverage.sqlite', includes: '.coverage.sqlite'
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
92 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
93 }
6583
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
94 }
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
95
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
96 pytests['de'] = {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
97 node {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
98 if (isUnix()) {
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
99 ws {
6552
15a12f2a47b4 jenkinsfile: delete all old files in the workspace
domruf <dominikruf@gmail.com>
parents: 6551
diff changeset
100 deleteDir()
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
101 unstash name: 'kallithea'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
102 withEnv(['LANG=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
103 'LANGUAGE=de',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
104 'LC_ADDRESS=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
105 'LC_IDENTIFICATION=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
106 'LC_MEASUREMENT=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
107 'LC_MONETARY=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
108 'LC_NAME=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
109 'LC_NUMERIC=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
110 'LC_PAPER=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
111 'LC_TELEPHONE=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
112 'LC_TIME=de_DE.UTF-8',
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
113 ]) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
114 sh script: """$activatevirtualenv
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
115 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_de.xml --cov=kallithea
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
116 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
117 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
118 sh 'sed --in-place "s/\\(classname=[\'\\"]\\)/\\1DE./g" pytest_de.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
119 archiveArtifacts 'pytest_de.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
120 junit 'pytest_de.xml'
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
121 writeFile(file: '.coverage.de', text: readFile('.coverage'))
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
122 stash name: 'coverage.de', includes: '.coverage.de'
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
123 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
124 }
6583
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
125 }
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
126 }
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
127 pytests['mysql'] = {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
128 node {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
129 if (isUnix()) {
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
130 ws {
6552
15a12f2a47b4 jenkinsfile: delete all old files in the workspace
domruf <dominikruf@gmail.com>
parents: 6551
diff changeset
131 deleteDir()
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
132 unstash name: 'kallithea'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
133 sh """$activatevirtualenv
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
134 pip install --upgrade MySQL-python
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
135 """
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
136 withEnv(['TEST_DB=mysql://kallithea:kallithea@jenkins_mysql/kallithea_test?charset=utf8']) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
137 if (isUnix()) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
138 sh script: """$activatevirtualenv
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
139 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_mysql.xml --cov=kallithea
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
140 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
141 } else {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
142 bat script: """$activatevirtualenv
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
143 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_mysql.xml --cov=kallithea
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
144 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
145 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
146 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
147 sh 'sed --in-place "s/\\(classname=[\'\\"]\\)/\\1MYSQL./g" pytest_mysql.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
148 archiveArtifacts 'pytest_mysql.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
149 junit 'pytest_mysql.xml'
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
150 writeFile(file: '.coverage.mysql', text: readFile('.coverage'))
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
151 stash name: 'coverage.mysql', includes: '.coverage.mysql'
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
152 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
153 }
6583
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
154 }
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
155 }
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
156 pytests['postgresql'] = {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
157 node {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
158 if (isUnix()) {
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
159 ws {
6552
15a12f2a47b4 jenkinsfile: delete all old files in the workspace
domruf <dominikruf@gmail.com>
parents: 6551
diff changeset
160 deleteDir()
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
161 unstash name: 'kallithea'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
162 sh """$activatevirtualenv
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
163 pip install --upgrade psycopg2
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
164 """
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
165 withEnv(['TEST_DB=postgresql://kallithea:kallithea@jenkins_postgresql/kallithea_test']) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
166 if (isUnix()) {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
167 sh script: """$activatevirtualenv
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
168 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_postgresql.xml --cov=kallithea
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
169 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
170 } else {
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
171 bat script: """$activatevirtualenv
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
172 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_postgresql.xml --cov=kallithea
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
173 """, returnStatus: true
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
174 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
175 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
176 sh 'sed --in-place "s/\\(classname=[\'\\"]\\)/\\1POSTGRES./g" pytest_postgresql.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
177 archiveArtifacts 'pytest_postgresql.xml'
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
178 junit 'pytest_postgresql.xml'
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
179 writeFile(file: '.coverage.postgresql', text: readFile('.coverage'))
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
180 stash name: 'coverage.postgresql', includes: '.coverage.postgresql'
6536
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
181 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
182 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
183 }
8d788789b38a tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff changeset
184 }
6583
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
185 stage('Tests') {
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
186 parallel pytests
6924
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
187 node {
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
188 unstash 'coverage.sqlite'
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
189 unstash 'coverage.de'
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
190 unstash 'coverage.mysql'
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
191 unstash 'coverage.postgresql'
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
192 if (isUnix()) {
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
193 sh script: """$activatevirtualenv
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
194 coverage combine .coverage.sqlite .coverage.de .coverage.mysql .coverage.postgresql
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
195 coverage xml
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
196 """, returnStatus: true
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
197 } else {
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
198 bat script: """$activatevirtualenv
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
199 coverage combine .coverage.sqlite .coverage.de .coverage.mysql .coverage.postgresql
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
200 coverage xml
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
201 """, returnStatus: true
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
202 }
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
203 try {
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
204 step([$class: 'CoberturaPublisher', autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: 'coverage.xml', failNoReports: false, failUnhealthy: false, failUnstable: false, maxNumberOfBuilds: 0, onlyStable: false, zoomCoverageChart: false])
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
205 } catch (java.lang.IllegalArgumentException exc) {
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
206 echo "You need to install the pipeline compatible 'CoberturaPublisher Plug-in' to display the coverage report."
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
207 currentBuild.result = 'UNSTABLE'
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
208 echo "Caught: ${exc}"
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
209 }
0acb46763886 jenkinsfile: combine coverage files from different DB runs
domruf <dominikruf@gmail.com>
parents: 6583
diff changeset
210 }
6583
8a60eb2b7603 Jenkinsfile: run each py.test on a separate executor
domruf <dominikruf@gmail.com>
parents: 6552
diff changeset
211 }