app.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import sys
  2. import flask
  3. sys.path.append('./lib')
  4. sys.path.append('..')
  5. import brew
  6. import db
  7. import periodic
  8. import utils
  9. app = flask.Flask('stackbrew')
  10. data = db.DbManager(debug=True)
  11. @app.route('/')
  12. def home():
  13. return utils.resp(app, 'Hello World')
  14. @app.route('/summary')
  15. @app.route('/status')
  16. def latest_summary():
  17. result = data.latest_status()
  18. return utils.resp(app, result)
  19. @app.route('/summary/<int:id>')
  20. def get_summary(id):
  21. result = data.get_summary(id)
  22. return utils.resp(app, result)
  23. @app.route('/success/<repo_name>')
  24. def latest_success(repo_name):
  25. tag = flask.request.args.get('tag', None)
  26. result = data.get_latest_successful(repo_name, tag)
  27. return utils.resp(app, result)
  28. @app.route('/build/force', method=['POST'])
  29. def build_task():
  30. summary = brew.build_library(
  31. 'https://github.com/shin-/brew.git', namespace='stackbrew',
  32. debug=True, prefill=False, logger=app.logger
  33. )
  34. data.insert_summary(summary)
  35. try:
  36. periodic.init_task(build_task, 600, logger=app.logger)
  37. app.logger.info('Periodic build task initiated.')
  38. except RuntimeError:
  39. app.logger.info('Periodic build task already locked.')
  40. app.run(debug=True)