Mercurial > kallithea
annotate Jenkinsfile @ 6536:8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
This is the new way of how to build and run tests with jenkins.
It runs pylint and py.test with 4 different settings:
1. default
2. with German language settings
3. with MySQL DB
4. with PostgreSQL DB
A major advantage of this new Jenkinsfile approach is that Jenkins will be able
to automatically create new projects for each branch (or pull request) that
contains a jenkinsfile. There is thus no need for maintaining multiple jenkins
projects.
author | domruf <dominikruf@gmail.com> |
---|---|
date | Sun, 05 Mar 2017 17:06:48 +0100 |
parents | |
children | f65f8acaca84 |
rev | line source |
---|---|
6536
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
1 node { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
2 def activatevirtualenv = '' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
3 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
4 activatevirtualenv = '. venv/bin/activate' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
5 } else { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
6 activatevirtualenv = 'call venv\\Scripts\\activate.bat' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
7 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
8 |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
9 stage('checkout') { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
10 checkout scm |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
11 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
12 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
|
13 } else { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
14 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
|
15 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
16 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
17 stage('virtual env') { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
18 def virtualenvscript = """virtualenv venv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
19 $activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
20 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
|
21 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
|
22 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
|
23 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
|
24 """ |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
25 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
26 virtualenvscript += """ |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
27 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
|
28 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
|
29 """ |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
30 sh virtualenvscript |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
31 } else { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
32 bat virtualenvscript |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
33 } |
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 stage('setup') { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
36 def virtualenvscript = """$activatevirtualenv |
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 -e . |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
38 pip install -r dev_requirements.txt |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
39 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
|
40 """ |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
41 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
42 sh virtualenvscript |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
43 } else { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
44 bat virtualenvscript |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
45 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
46 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
|
47 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
48 stage('pylint') { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
49 sh script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
50 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
|
51 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
52 archiveArtifacts 'pylint.out' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
53 try { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
54 step([$class: 'WarningsPublisher', canComputeNew: false, canResolveRelativePaths: false, defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', messagesPattern: '', parserConfigurations: [[parserName: 'PyLint', pattern: 'pylint.out']], unHealthy: '']) |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
55 } catch (UnsupportedOperationException exc) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
56 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
|
57 currentBuild.result = 'UNSTABLE' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
58 echo "Caught: ${exc}" |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
59 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
60 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
61 def pytests = [:] |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
62 pytests['sqlite'] = { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
63 ws { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
64 unstash name: 'kallithea' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
65 sh 'hg revert kallithea/tests/test.ini' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
66 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
67 sh script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
68 hg revert kallithea/tests/test.ini |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
69 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_sqlite.xml --cov=kallithea --cov-report xml |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
70 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
71 } else { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
72 bat script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
73 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_sqlite.xml --cov=kallithea --cov-report xml |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
74 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
75 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
76 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
|
77 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
|
78 junit 'pytest_sqlite.xml' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
79 try { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
80 step([$class: 'CoberturaPublisher', autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: 'coverage.xml', failNoReports: false, failUnhealthy: false, failUnstable: false, maxNumberOfBuilds: 0, onlyStable: false, zoomCoverageChart: false]) |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
81 } catch (UnsupportedOperationException exc) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
82 echo "You need to install the pipeline compatible 'CoberturaPublisher Plug-in' to display the coverage report." |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
83 currentBuild.result = 'UNSTABLE' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
84 echo "Caught: ${exc}" |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
85 } |
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 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
88 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
89 pytests['de'] = { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
90 ws { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
91 unstash name: 'kallithea' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
92 sh 'hg revert kallithea/tests/test.ini' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
93 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
|
94 'LANGUAGE=de', |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
95 '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
|
96 '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
|
97 '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
|
98 '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
|
99 '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
|
100 '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
|
101 '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
|
102 '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
|
103 '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
|
104 ]) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
105 sh script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
106 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_de.xml --cov=kallithea --cov-report xml |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
107 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
108 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
109 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
|
110 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
|
111 junit 'pytest_de.xml' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
112 } |
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 pytests['mysql'] = { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
115 ws { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
116 unstash name: 'kallithea' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
117 sh 'hg revert kallithea/tests/test.ini' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
118 sh """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
119 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
|
120 """ |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
121 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
|
122 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
123 sh script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
124 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_mysql.xml --cov=kallithea --cov-report xml |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
125 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
126 } else { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
127 bat script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
128 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_mysql.xml --cov=kallithea --cov-report xml |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
129 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
130 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
131 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
132 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
|
133 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
|
134 junit 'pytest_mysql.xml' |
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 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
137 pytests['postgresql'] = { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
138 ws { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
139 unstash name: 'kallithea' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
140 sh 'hg revert kallithea/tests/test.ini' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
141 sh 'sed -i.bak s/^sqlalchemy\\.url.*$/sqlalchemy.url=postgresql:\\\\/\\\\/kallithea:kallithea@jenkins_postgresql\\\\/kallithea_test/g kallithea/tests/test.ini' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
142 sh """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
143 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
|
144 """ |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
145 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
|
146 if (isUnix()) { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
147 sh script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
148 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_postgresql.xml --cov=kallithea --cov-report xml |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
149 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
150 } else { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
151 bat script: """$activatevirtualenv |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
152 py.test -p no:sugar --cov-config .coveragerc --junit-xml=pytest_postgresql.xml --cov=kallithea --cov-report xml |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
153 """, returnStatus: true |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
154 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
155 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
156 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
|
157 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
|
158 junit 'pytest_postgresql.xml' |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
159 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
160 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
161 } |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
162 stage('Tests') { |
8d788789b38a
tests: add Jenkinsfile for automatic creation of Jenkins projects for testing Kallithea itself
domruf <dominikruf@gmail.com>
parents:
diff
changeset
|
163 parallel pytests |
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 } |