def add_build(): pool_id = request.get_json().get('pool') cards = request.get_json().get('cards') pool = Pool.query.filter_by(id=pool_id).first() build = Build(cards, pool) db.session.add(build) db.session.commit() return 'Build Added %s' % (build)
def _create_build(branch, platform, builder, key_name='some-build'): build_key = Build(key_name=key_name, branch=branch, platform=platform, builder=builder, buildNumber=1, revision=100, timestamp=datetime.now()).put() return Build.get(build_key)
def get_all_builds(subpath): path = "../h5ai/" + subpath build_list = [] i = 0 # Iterate through all builds & generate model list for filename in os.listdir(path): # Filter only APks, least like any other file type will appear, but still if filename.endswith(".apk"): relative_path = os.path.join(path, filename) timestamp = os.path.getmtime(relative_path) size = os.path.getsize(relative_path) # Remove letter chars for tag names if path.endswith("Nightly"): tag = re.sub("[^0-9]", "", filename) elif filename.startswith("AppWarden"): tag = re.search("_v(.*).apk", filename)[1] else: tag = re.search("_(.*).apk", filename)[1] # Calculate hashes md5 = hasher("md5", filename, path) sha256 = hasher("sha256", filename, path) # Get Gitlab releases url if filename.startswith("AuroraStore"): gitlab = constants.RELEASES_URL.format("AuroraStore", tag) if filename.startswith("AuroraDroid"): gitlab = constants.RELEASES_URL.format("AuroraDroid", tag) if filename.startswith("AppWarden"): gitlab = constants.RELEASES_URL.format("AppWarden", tag) if filename.startswith("AuroraWalls"): gitlab = constants.RELEASES_URL.format("AuroraWallpapers", tag) # Parse file as build build = Build( id=i, name=filename, tag_name=tag, timestamp=timestamp, size=size, md5_hash=md5, sha256_hash=sha256, download_url="{}/{}/{}".format(constants.DL_URL, subpath, filename), gitlab_url=gitlab, ) i = i + 1 # Add build to available build list build_list.append(build) if not build_list: return jsonify("List is empty!") else: return build_list
def create_build(build_number, revision): timestamp = datetime.now().replace(microsecond=0) build = Build(branch=branch, platform=platform, builder=builder, buildNumber=build_number, revision=revision, timestamp=timestamp) build.put() return build
def _create_results(self, branch, platform, builder, test_name, values, timestamps=None, starting_revision=100): builds = [] results = [] for i, value in enumerate(values): build = Build(branch=branch, platform=platform, builder=builder, buildNumber=i, revision=starting_revision + i, timestamp=timestamps[i] if timestamps else datetime.now()) build.put() result = TestResult(name=test_name, build=build, value=value) result.put() builds.append(build) results.append(result) return builds, results
def test_release_builder_hiding(client): session = test_context._app.db.session(DB_DECLARATIVE_BASE) buildername = BUILDER_REL_PREFIX + 'test' release_build = Build(branch='branch', builddir='test', buildername=buildername) session.add(release_build) session.commit() rv = client.get('/clobberer/lastclobber/branch/by-builder/branch') eq_(rv.status_code, 200) clobbertimes = json.loads(rv.data)["result"] eq_(clobbertimes.get(buildername), None)
def test_release_branch_hiding(client): session = test_context._app.db.session(DB_DECLARATIVE_BASE) # clear all the old branches session.query(Build).delete() session.commit() # users should not see this branch because it's associated with a release # builddir release_builddir = '{}builddir'.format(BUILDDIR_REL_PREFIX) session.add(Build(branch='see-no-evil', builddir=release_builddir)) session.commit() rv = client.get('/clobberer/branches') eq_(json.loads(rv.data)['result'], [])
def _create_results(branch, platform, builder, test_name, values): results = [] for i, value in enumerate(values): build = Build(branch=branch, platform=platform, builder=builder, buildNumber=i, revision=100 + i, timestamp=datetime.now()) build.put() result = TestResult(name=test_name, build=build, value=value) result.put() Test.update_or_insert(test_name, branch, platform) results.append(result) return results
def add_build(request, p_id): project = Project.objects.get(id=p_id) if request.POST: version = request.POST['version'] description = request.POST['description'] new_build = Build(version=version, description=description, project=project) new_build.save() return HttpResponseRedirect('/project/get/' + str(project.id) + '/') else: raise PermissionDenied
def init_build(): if request.method == 'POST': path = request.form['path'] Logger.get().info("Pedido de testeo: %s" % (path, )) build = Build(path, g.user) build.save() datosjson = {"id": build.id, "path": build.path} Logger.get().info("Agregando pedido a cola de mensajes") beanstalk.put(json.dumps(datosjson)) else: Logger.get().info("Pedido de builds por el usuario %s" % (g.user.name, )) orderby = request.args.get('order', 'date') orderformat = request.args.get('list', 'desc') filterpath = request.args.get('path', None) filterfinished = request.args.get('finished', None) orderby = order_translate.get(orderby, Build.date) if orderformat == 'desc': orderby = orderby.desc() builds = Build.query.filter_by(user_id=g.user.id) if filterpath: builds = builds.filter_by(path=filterpath) if filterfinished: builds = builds.filter_by(finished=filterfinished) builds = builds.order_by(orderby).all() results = [] for bid in builds: results.append(bid.jsonrep(True)) return Response(json.dumps(results), status=200, mimetype="application/json") return jsonify(build.id)
def parse_build(xml_root): xml_build = xml_root.find('Build') xml_items = xml_root.find('Items') xml_skills = xml_root.find('Skills') xml_tree = xml_root.find('Tree') selected_tree = Parser.get_tree_link(xml_tree) # parse items item_slots = Parser.parse_item_slots(xml_items) skills = Parser.parse_skills(xml_skills) active_skill = xml_build.attrib['mainSocketGroup'] build = Build(xml_build.attrib['level'], xml_build.attrib['targetVersion'], Parser.get_attrib_if_exists(xml_build, 'bandit'), xml_build.attrib['className'], xml_build.attrib['ascendClassName'], selected_tree, skills, active_skill, item_slots) for player_stat in xml_build: if 'stat' in player_stat.attrib and 'value' in player_stat.attrib: build.append_stat(player_stat.attrib['stat'], player_stat.attrib['value'], player_stat.tag) else: log.info( "Encountered unsupported player stat: k={}, v={}".format( player_stat.tag, player_stat.attrib)) # parse config for input in xml_root.find('Config'): if input.tag == "Input": extracted = [val for (key, val) in input.attrib.items()] if len(extracted) < 1: continue build.append_conf(extracted[0], extracted[1]) return build
# given the build text, expect parsed items from models import Build trigger_details = """myusername 2016-09-13 10:43:13 CDT DETAIL: STACK: api """ execution_summary = """Status: SUCCEEDED Duration: 11:13 """ build = Build(trigger_details, execution_summary) assert build.username == "myusername" assert build.status == "SUCCEEDED" assert build.status_is_valid() assert build.duration == "11:13" assert str(build.datetime_started) == "2016-09-13 10:43:13"