12da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 22da489cd246702bee5938545b18a6f710ed214bcJamie Gennisprep: 32da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @echo 42da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Install needed packages 52da489cd246702bee5938545b18a6f710ed214bcJamie Gennis sudo apt-get install subversion fakeroot python-setuptools python-subversion 62da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 72da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @echo 82da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Check that the person has .pypirc 92da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @if [ ! -e ~/.pypirc ]; then \ 102da489cd246702bee5938545b18a6f710ed214bcJamie Gennis echo "Please create a ~/.pypirc with the following contents:"; \ 112da489cd246702bee5938545b18a6f710ed214bcJamie Gennis echo "[server-login]"; \ 122da489cd246702bee5938545b18a6f710ed214bcJamie Gennis echo "username:google_opensource"; \ 132da489cd246702bee5938545b18a6f710ed214bcJamie Gennis echo "password:<see valentine>"; \ 142da489cd246702bee5938545b18a6f710ed214bcJamie Gennis fi 152da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 162da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @echo 172da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # FIXME(tansell): Check that the person has .dputrc for PPA 182da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 192da489cd246702bee5938545b18a6f710ed214bcJamie Gennisclean: 202da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Clean up any build files. 212da489cd246702bee5938545b18a6f710ed214bcJamie Gennis python setup.py clean --all 222da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 232da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Clean up the debian stuff 242da489cd246702bee5938545b18a6f710ed214bcJamie Gennis fakeroot ./debian/rules clean 252da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 262da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Clean up everything else 272da489cd246702bee5938545b18a6f710ed214bcJamie Gennis rm MANIFEST || true 282da489cd246702bee5938545b18a6f710ed214bcJamie Gennis rm -rf build-* 292da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 302da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Clean up the egg files 312da489cd246702bee5938545b18a6f710ed214bcJamie Gennis rm -rf *egg* 322da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 332da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Remove dist 342da489cd246702bee5938545b18a6f710ed214bcJamie Gennis rm -rf dist 352da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 362da489cd246702bee5938545b18a6f710ed214bcJamie Gennisdist: 372da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Generate the tarball based on MANIFEST.in 382da489cd246702bee5938545b18a6f710ed214bcJamie Gennis python setup.py sdist 392da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 402da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Build the debian packages 412da489cd246702bee5938545b18a6f710ed214bcJamie Gennis fakeroot ./debian/rules binary 422da489cd246702bee5938545b18a6f710ed214bcJamie Gennis mv ../python-gflags*.deb ./dist/ 432da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 442da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Build the python Egg 452da489cd246702bee5938545b18a6f710ed214bcJamie Gennis python setup.py bdist_egg 462da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 472da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @echo 482da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @echo "Files to upload:" 492da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @echo "--------------------------" 502da489cd246702bee5938545b18a6f710ed214bcJamie Gennis @ls -l ./dist/ 512da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 522da489cd246702bee5938545b18a6f710ed214bcJamie Gennispush: 532da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Send the updates to svn 542da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Upload the source package to code.google.com 552da489cd246702bee5938545b18a6f710ed214bcJamie Gennis - /home/build/opensource/tools/googlecode_upload.py \ 562da489cd246702bee5938545b18a6f710ed214bcJamie Gennis -p python-gflags ./dist/* 572da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 582da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Upload the package to PyPi 592da489cd246702bee5938545b18a6f710ed214bcJamie Gennis - python setup.py sdist upload 602da489cd246702bee5938545b18a6f710ed214bcJamie Gennis - python setup.py bdist_egg upload 612da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # 622da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Upload the package to the ppa 632da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # FIXME(tansell): dput should run here 642da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 652da489cd246702bee5938545b18a6f710ed214bcJamie Gennischeck: 662da489cd246702bee5938545b18a6f710ed214bcJamie Gennis # Run all the tests. 672da489cd246702bee5938545b18a6f710ed214bcJamie Gennis for test in tests/*.py; do PYTHONPATH=. python $$test || exit 1; done 682da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 692da489cd246702bee5938545b18a6f710ed214bcJamie Gennis.PHONY: prep dist clean push check 70