Skip to content

Commit

Permalink
add jenkins support
Browse files Browse the repository at this point in the history
  • Loading branch information
domenkozar committed Jun 5, 2011
1 parent 5faa8e3 commit a2f4bdf
Show file tree
Hide file tree
Showing 4 changed files with 288 additions and 0 deletions.
256 changes: 256 additions & 0 deletions jenkins.cfg
@@ -0,0 +1,256 @@
[buildout]
test-eggs =
plone.app.testing
unittest2
versions = versions
package-name = Products.TinyMCE
package-directories = ${buildout:directory}/Products/TinyMCE
test-packages = ${buildout:package-name}

parts +=
xmltest
coverage
coverage-test
report
pylint-bin
pylint
pyflakes-bin
pyflakes
pep8-bin
pep8
zptlint-bin
zptlint
xmllint
test-all

[coverage]
recipe = zc.recipe.egg
eggs = coverage

[xmltest]
recipe = collective.xmltestreport
eggs =
${test:eggs}
script = xmltest
defaults = ['--auto-color', '--auto-progress', '--xml']

[coverage-test]
recipe = collective.recipe.template
output = ${buildout:bin-directory}/coverage-test
mode = 755
input = inline:
#!/bin/bash
TEST_PACKAGES=$(echo "${buildout:test-packages}"|sed 's/^[ ]*//;s/[ ]*$//'|tr '\n' ','|sed 's/^,//;s/,$//')
TEST_PACKAGES_WITH_DASH_S=$(echo $TEST_PACKAGES|awk -F',' '{for (i=1;i<=NF;i++) print " -s " $i}'|tr -d '\n')
${buildout:bin-directory}/coverage run --source="$TEST_PACKAGES" ./bin/xmltest $TEST_PACKAGES_WITH_DASH_S
${buildout:bin-directory}/coverage html
${buildout:bin-directory}/coverage xml
echo "Coverate report is available in coverage-html/index.html"


[report]
recipe = zc.recipe.egg
eggs = coverage
scripts = coverage=report
initialization =
eggs = '${buildout:eggs-directory}'
bin = '${buildout:directory}/bin'
exclude = '--omit=' + ','.join([eggs, sys.prefix, bin])
sys.argv = sys.argv[:] + ['xml', '-i', exclude]

[coverage-report]
recipe = zc.recipe.egg
eggs = z3c.coverage
scripts = coveragereport
arguments = ('coverage', 'report')


[pylint-bin]
recipe = zc.recipe.egg
eggs = logilab.pylintinstaller
extra-paths = ${instance:location}/lib/python
entry-points = pylint-bin=pylint.lint:Run
arguments = sys.argv[1:]
arguments = [
'--output-format=parseable',
'--zope=y',
'--reports=y',
'--disable-msg=E0611,F0401,W0232,E1101,C0103,C0111,R0201,W0201,R0911,R0904,F0220,E1103,R0901,E0211,E0213,E1002,W0622',
'--generated-members=objects',
] + sys.argv[1:]

# Disable messages:
#
# E0611: No name %r in module %r. Used when a name cannot be found in a module.
# F0401: Unable to import %r (%s). Used when pylint has been unable to import a module.
# W0232: Class has no __init__ method. Used when a class has no __init__ method, neither its parent classes.
# C0103: Invalid name "%s" (should match %s). Used when the name doesn't match the regular expression associated to its type (constant, variable, class...).
# C0111: Message Missing docstring Description Used when a module, function, class or method has no docstring. Some special methods like init don't necessary require a docstring. Explanation…
# R0201: Method could be a function
# W0201: Attribute %r defined outside __init__
# R0911: Too many return statements (%s/%s)

# E0211: Method has no argument
# - Reason: raises an error on zope.interface definitions
# E0213 Method should have "self" as first argument
# - Reason: raises an error on zope.interface definitions
# E1121 Too many positional arguments for function call
# - Reason: ???
# E1002 Use super on an old style class
# - Reason: super(CommentsViewlet, self).update() raises an error
# W0622 total_comments: Redefining built-in 'object'
# - Reason: top level def function will not work (e.g. for catalog indexers)
# ...
# See http://pylint-messages.wikidot.com/all-messages for a full list.


[pylint]
recipe = collective.recipe.template
input = inline:
#!/bin/sh
if [ -s pylint.log ]; then
rm pylint.log
echo "Removing old pylint.log file"
fi
echo "Start pylint"
PACKAGES="${buildout:package-directories}"
for pkg in $PACKAGES
do
echo "Running pylint for $pkg"
find -L $pkg -regex ".*\.py" | xargs bin/pylint >> pylint.log
done
echo "finish"
output = ${buildout:directory}/bin/pylint
mode = 755


[pyflakes-bin]
recipe = zc.recipe.egg
eggs =
pyflakes
entry-points = pyflakes-bin=pyflakes.scripts.pyflakes:main


[pyflakes]
recipe = collective.recipe.template
input = inline:
#!/bin/sh
if [ -s pyflakes.log ]; then
rm pyflakes.log
echo "Removing old pyflakes.log file"
fi
if [ -s pyflakes.log.tmp ]; then
rm pyflakes.log.tmp
fi
echo "Start pyflakes"
PACKAGES="${buildout:package-directories}"
for pkg in $PACKAGES
do
echo "Running pyflakes for $pkg"
find -L $pkg -regex ".*\.py" | xargs -r bin/pyflakes-bin >> pyflakes.log.tmp
done
cat pyflakes.log.tmp|sed 's:${buildout:directory}/::' > pyflakes.log
echo "finish"
output = ${buildout:directory}/bin/pyflakes
mode = 755


[pep8-bin]
recipe = zc.recipe.egg
eggs =
pep8
entry-points = pep8-bin=pep8:_main


[pep8]
recipe = collective.recipe.template
input = inline:
#!/bin/sh
if [ -s pep8.log ]; then
rm pep8.log
echo "Removing old pep8.log file"
fi
if [ -s pep8.log.tmp ]; then
rm pep8.log.tmp
fi
echo "Start pep8"
PACKAGES="${buildout:package-directories}"
for pkg in $PACKAGES
do
echo "Running pep8 for $pkg"
find -L $pkg -regex ".*\.py" | xargs -r bin/pep8-bin >> pep8.log.tmp
done
cat pep8.log.tmp|sed 's:${buildout:directory}/::' > pep8.log
echo "finish"
output = ${buildout:directory}/bin/pep8
mode = 755


[zptlint-bin]
recipe = zc.recipe.egg
eggs =
zptlint
entry-points = zptlint-bin=zptlint:run

[zptlint]
recipe = collective.recipe.template
input = inline:
#!/bin/sh
if [ -e zptlint.log ]; then
echo "Old zptlint.log file removed"
rm zptlint.log
fi
echo "Start zptlint"
PACKAGES="${buildout:package-directories}"
for pkg in $PACKAGES
do
echo "Running zptlint for $pkg"
find -L $pkg -regex ".*\.[c|z]?pt" | xargs -r bin/zptlint-bin | perl -p -e 's/\s+$/ /g;s/\s+/ /g;s/\*{3}s?/\n/g' | grep $pkg | sed 's:${buildout:directory}/::' >> zptlint.log
done
echo "finish"
output = ${buildout:directory}/bin/zptlint
mode = 755


[xmllint]
recipe = collective.recipe.template
input = inline:
#!/bin/sh
if [ -e xmllint.log ]; then
echo "Removing existing xmllint.log file"
rm xmllint.log
fi
echo "Start xmllint"
for pkg in $PACKAGES
do
find -L $pkg ".*\.[c|z]?pt"| xargs xmllint --noout 2>&1| grep ${buildout:directory} | sed 's:${buildout:directory}/::' >> xmllint.log
done
if [ -s xmllint.log ]; then
echo "Errors were found:"
cat xmllint.log
echo "Errors were written to xmllint.log"
exit 1;
else
echo "No errors found"
fi
echo "finish"
output = ${buildout:directory}/bin/xmllint
mode = 755

[test-all]
recipe = collective.recipe.template
input = inline:
#!/bin/sh
bin/xmltest -s Products.TinyMCE
bin/coverage-test
bin/report
bin/xmllint
bin/zptlint
bin/pep8
bin/pyflakes
# bin/pylint
output = ${buildout:directory}/bin/test-all
mode = 755

[versions]
Products.TinyMCE =
4 changes: 4 additions & 0 deletions jenkins_plone3.cfg
@@ -0,0 +1,4 @@
[buildout]
extends =
http://svn.plone.org/svn/collective/buildout/plonetest/test-3.x.cfg
jenkins.cfg
4 changes: 4 additions & 0 deletions jenkins_plone4.cfg
@@ -0,0 +1,4 @@
[buildout]
extends =
http://svn.plone.org/svn/collective/buildout/plonetest/test-4.x.cfg
jenkins.cfg
24 changes: 24 additions & 0 deletions jenkins_plone41.cfg
@@ -0,0 +1,24 @@
[buildout]
extends =
http://svn.plone.org/svn/collective/buildout/plonetest/plone-4.1.x.cfg
jenkins.cfg
parts += test
package-extras =
develop = .

[versions]
zc.recipe.testrunner = 1.2.1
zope.testing = 3.9.4

[instance]
eggs += ${buildout:package-name}
zcml += ${buildout:package-name}

[test]
recipe = zc.recipe.testrunner
defaults = ['-v', '-s', '${buildout:package-name}']
eggs =
Plone
plone.app.upgrade
${buildout:package-name} ${buildout:package-extras}
${buildout:test-eggs}

0 comments on commit a2f4bdf

Please sign in to comment.