Browse Source

Updated travis scripts in order to auto-release new version is all tests went OK.

main
Sorin Sbarnea 9 years ago
parent
commit
e8fca42845
6 changed files with 83 additions and 39 deletions
  1. +1
    -0
      .gitignore
  2. +55
    -7
      .travis.yml
  3. +20
    -23
      release.sh
  4. +1
    -0
      setup.cfg
  5. +5
    -6
      setup.py
  6. +1
    -3
      tox.ini

+ 1
- 0
.gitignore View File

@@ -4,3 +4,4 @@ dist
*.egg *.egg
.tox .tox
~*.* ~*.*
build/

+ 55
- 7
.travis.yml View File

@@ -1,11 +1,59 @@
language: python language: python
sudo: false sudo: false
env:
- TOX_ENV=py26
- TOX_ENV=py27
- TOX_ENV=py33
- TOX_ENV=py34
os:
- linux
python:
- '2.7'
- '3.3'
- '3.4'
install: install:
- pip install tox
- pip -q install coveralls six autopep8
script: script:
- tox -e $TOX_ENV
- curl --silent -Lo travis_after_all.py https://raw.github.com/pycontribs/travis_after_all/master/travis_after_all.py && travis_wait python setup.py prerelease test
- export PACKAGE_VERSION=$(python -c "from wstools.version import __version__; print(__version__)")
after_success:
- python travis_after_all.py
- export $(cat .to_export_back)
- |
if [ "$BUILD_LEADER" = "YES" ]; then
if [ "$BUILD_AGGREGATE_STATUS" = "others_succeeded" ]; then
echo "All jobs succeeded! PUBLISHING..."
else
echo "Some jobs failed"
fi
fi
- coveralls
- python setup.py sdist bdist_wheel
after_failure:
- python travis_after_all.py
- export $(cat .to_export_back)
- |
if [ "$BUILD_LEADER" = "YES" ]; then
if [ "$BUILD_AGGREGATE_STATUS" = "others_failed" ]; then
echo "All jobs failed"
else
echo "Some jobs failed"
fi
fi
after_script:
- echo leader=$BUILD_LEADER status=$BUILD_AGGREGATE_STATUS
branches:
only:
- master
before_deploy:
- echo "before deploy..."
deploy:
- provider: releases
api_key:
- secure: "gr9iOcQjdoAyUAim6FWKzJI9MBaJo9XKfGQGu7wdPXUFhg80Rp6GLJsowP+aU94NjXM1UQlVHDAy627WtjBlLH2SvmVEIIr7+UKBopBYuXG5jJ1m3wOZE+4f1Pqe9bqFc1DxgucqE8qF0sC24fIbNM2ToeyYrxrS6RoL2gRrX2I="
file: "dist/jira-$PACKAGE_VERSION.tar.gz"
skip_cleanup: true
on:
condition: "$BUILD_LEADER = YES"
- provider: pypi
user: sorin
password:
secure: "E0cjANF7SLBdYrsnWLK8X/xWznqkF0JrP/DVfDazPzUYH6ynFeneyofzNJQPLTLsqe1eKXhuUJ/Sbl+RHFB0ySo/j/7NfYd/9pm8hpUkGCvR09IwtvMLgWKp3k10NWab03o2GOkSJSrLvZofyZBGR40wwu2O9uXPCb2rvucCGbw="
distributions: "sdist bdist_wheel"
on:
condition: "$BUILD_LEADER = YES"

+ 20
- 23
release.sh View File

@@ -1,20 +1,9 @@
#!/bin/bash #!/bin/bash
set -ex set -ex


VERSION=$(python -c "from src.wstools.version import __version__ ; print __version__")
VERSION=$(python -c "from wstools.version import __version__ ; print __version__")
echo Preparing to release version $VERSION echo Preparing to release version $VERSION



#source tox

#pip install --upgrade pep8 autopep8 docutils

echo === Testings ===
if ! python setup.py test; then
echo "The test suite failed. Fix it!"
exit 1
fi

echo === Chechink that all changes are commited and pushed === echo === Chechink that all changes are commited and pushed ===
git pull -u git pull -u


@@ -34,23 +23,31 @@ git diff
exit 1 exit 1
fi fi


git log --date=short --pretty=format:"%cd %s" > CHANGELOG
git diff


echo "Please don't run this as a user. This generates a new release for PyPI. Press ^C to exit or Enter to continue."
read
if [ -v PS1 ] ; then
echo "Automatic deployment"
else
echo "Please don't run this as a user. This generates a new release for PyPI. Press ^C to exit or Enter to continue."
read
fi


git add CHANGELOG
git commit -a "Auto-generating release notes."


# Clear old distutils stuff
rm -rf build dist MANIFEST &> /dev/null
git tag -f -a $VERSION -m "Version $VERSION"
git tag -f -a RELEASE -m "Current RELEASE"


# Build installers, etc. and upload to PyPI
# python setup.py register sdist bdist_wininst upload
NEW_VERSION="${VERSION%.*}.$((${VERSION##*.}+1))"
set -ex
sed -i ~ "s/${VERSION}/${NEW_VERSION}/" wstools/version.py


#python setup.py register sdist build_sphinx upload upload_sphinx
python setup.py register sdist upload
git commit -a "Auto-increasing the version number after a release."


git tag -f -a $VERSION -m "Version $VERSION"
git tag -f -a RELEASE -m "Current RELEASE"
# disables because this is done only by Travis CI from now, which calls this script after that.
#python setup.py register sdist bdist_wheel build_sphinx upload_docs upload --sign


git push origin --tags
git push --force origin --tags


echo "done." echo "done."

+ 1
- 0
setup.cfg View File

@@ -16,6 +16,7 @@ upload-dir = docs/build/html
norecursedirs = . .svn jira _build tmp* lib/third lib *.egg bin distutils build docs demo norecursedirs = . .svn jira _build tmp* lib/third lib *.egg bin distutils build docs demo
python_files = *.py python_files = *.py
addopts = -p no:xdist --ignore=setup.py --tb=long -rsxX -v --maxfail=10 --pep8 tests addopts = -p no:xdist --ignore=setup.py --tb=long -rsxX -v --maxfail=10 --pep8 tests
timeout=60
# --maxfail=2 -n4 # --maxfail=2 -n4
# -n4 runs up to 4 parallel procs # -n4 runs up to 4 parallel procs
# --maxfail=2 fail fast, dude # --maxfail=2 fail fast, dude


+ 5
- 6
setup.py View File

@@ -129,6 +129,7 @@ class PreRelease(Command):
raise RuntimeError( raise RuntimeError(
"Current version of the package is equal or lower than the already published ones (PyPi). Increse version to be able to pass prerelease stage.") "Current version of the package is equal or lower than the already published ones (PyPi). Increse version to be able to pass prerelease stage.")


requires = ['autopep8', 'six', 'pep8', 'pytest-cov', 'pytest-pep8', 'setuptools', 'pytest', 'pytest-timeout']


setup( setup(
name=NAME, name=NAME,
@@ -136,7 +137,9 @@ setup(
cmdclass={'test': PyTest, 'release': Release, 'prerelease': PreRelease}, cmdclass={'test': PyTest, 'release': Release, 'prerelease': PreRelease},
packages=find_packages(exclude=['tests']), packages=find_packages(exclude=['tests']),
include_package_data=True, include_package_data=True,
install_requires=['docutils','six'],
tests_require=requires,
setup_requires=requires,
install_requires=requires,


license='BSD', license='BSD',
description="WSDL parsing services package for Web Services for Python. see" + url, description="WSDL parsing services package for Web Services for Python. see" + url,
@@ -152,18 +155,14 @@ setup(
keywords='api wstools wdsl web', keywords='api wstools wdsl web',
classifiers=[ classifiers=[
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 2.5',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Development Status :: 4 - Beta',
'Development Status :: 5 - Production/Stable',
'Environment :: Other Environment', 'Environment :: Other Environment',
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License', 'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent', 'Operating System :: OS Independent',
'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Software Development :: Libraries :: Python Modules',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.4',
'Topic :: Internet :: WWW/HTTP', 'Topic :: Internet :: WWW/HTTP',


+ 1
- 3
tox.ini View File

@@ -1,6 +1,6 @@
[tox] [tox]
minversion = 1.3 minversion = 1.3
envlist = py26,py27,py34,flake8
envlist = py27,py34,flake8


[testenv] [testenv]
deps= deps=
@@ -12,8 +12,6 @@ commands=
bash -c "coveralls || true" bash -c "coveralls || true"
whitelist_externals=bash whitelist_externals=bash


[testenv:py26]

[testenv:py27] [testenv:py27]


[testenv:py33] [testenv:py33]


Loading…
Cancel
Save