Skip to content

Instantly share code, notes, and snippets.

@tobi
Created August 5, 2009 20:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tobi/162911 to your computer and use it in GitHub Desktop.
Save tobi/162911 to your computer and use it in GitHub Desktop.
{
version:343adbc323,
setup: '.................',
setup_errorcode: 0,
test: '.................',
test_errorcode: 0,
}
{
project: shopify,
version: 58dsag131,
setup: '.................',
setup_errorcode: 0,
test: '.................',
test_errorcode: 0,
}
output_directory = ARGV[1]
class TestRunner
class Result < Struct.new(:setup, :test_output, :setup_errorcode, :test_errorcode)
end
def initialize(dir)
@dir = dir
end
def valid?
if File.stat(@dir, '.ci', 'setup').executable?
fail "#{name} .ci directory setup script missing or not executable"
end
if File.stat(@dir, '.ci', 'version').executable?
fail "#{name} .ci directory version script missing or not executable"
end
if File.stat(@dir, '.ci', 'run-tests').executable?
fail "#{name} .ci directory run-tests script missing or not executable"
end
end
def run_script
popen(...)
return output, $?
end
def invoke
if valid?
Dir.chdir(dir) do
results = Result.new
results.version = run_script('version')
results.setup, results.setup_errorcode = run_script('setup')
if results.setup_errorcode.zero?
results.output, results.test_errorcode = run_script('run-tests')
end
end
end
end
end
Dir['*'].each do |dir|
report = ReportAssembler.new
if File.directory?(dir)
report.tests.push TestRunner.new(dir).invoke
end
report.generate
end
{
project: shopify,
version:343adbc323,
setup: '.................',
setup_errorcode: 0,
test: '.................',
test_errorcode: 0,
}
use http://json-template.googlecode.com/svn/trunk/doc/Introducing-JSON-Template.html
new Ajax('projects.json', onSuccess: function(t){
var projects = eval(t.responseText)
projects.each(function(proj) {
$('projects').insert( new Element('div', proj, id: "project-" + proj));
new Ajax(proj + '/current.json', onSuccess: function(t){
var projects = eval(t.responseText)
})
})
})
<div id="projects">
</div>
['58dsag131', '343adbc323']
rake cruise
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment