from types import ModuleType
def import_any(path, name=None):
module = ModuleType(name or "dummy")
execfile(path, globals(), module.__dict__)
return module
If it won't be simple, it simply won't be. [Hire me, source code] by Miki Tebeka, CEO, 353Solutions
Friday, June 11, 2010
import_any
Import any file as a Python module. This is a nice big security risk, so beware ...
Wednesday, June 09, 2010
Thursday, June 03, 2010
Tagging last good build in git
git (and mercurial) has a nice feature that you can "move" tags (using -f). At Sauce Labs we use that to have a track of our last good build and the last deployed revision.
In our continuous integration system, we mark the last good build in the last step which is executed only if the test suite passed.
To deploy, we use the following script who also tags the last deployed version.
In our continuous integration system, we mark the last good build in the last step which is executed only if the test suite passed.
tag-ok-build.sh
#!/bin/bash
# Error on 1'st failure
set -e
tag=last-green-build
revision=$(git rev-parse HEAD)
echo "Tagging $commit as $tag"
git tag -f $tag $commit
git pull origin master
git push --tags origin master
To deploy, we use the following script who also tags the last deployed version.
deploy.sh
#!/bin/bash
# Deploy, meaning sync from last successful build
tag=last-green-build
# Fetch get the latest changes from remote but does not update working
# directory, just the index
git fetch --tags
# Merge to the last successful bulid
git merge ${tag}
# Tag currently deployed revision
git tag -f deployed ${tag}
git push --tags
Subscribe to:
Posts (Atom)