def api_build(request, hash): project = models.Project.objects.get(idhash=hash) if project: if request.method == 'POST': if request.POST.get('payload'): r = json.loads(request.POST['payload']) else: r = json.loads(request.body) ref = r.get('ref', '') branch = ref.split('/',2)[-1] if branch != project.branch: return HttpResponse('{"result": "Request ignored"}', content_type='application/json') current_builds = models.Build.objects.filter(project=project, state=0) if not current_builds: build = models.Build.objects.create(project=project, state=0) build.save() taskid = RhumbaClient().queue('sideloader', 'build', { 'build_id': build.id }) build.task_id = taskid build.save() return HttpResponse('{"result": "Building"}', content_type='application/json') return HttpResponse('{"result": "Already building"}', content_type='application/json') return redirect('home')
def workflow_schedule(request, flow, build): flow = models.ReleaseFlow.objects.get(id=flow) build = models.Build.objects.get(id=build) if request.method == "POST": form = forms.ReleasePushForm(request.POST) if form.is_valid(): release = form.cleaned_data schedule = release['scheduled'] + timedelta(hours=int(release['tz'])) RhumbaClient().queue('sideloader', 'doRelease', { 'build_id': build.id, 'flow_id': flow.id, 'schedule': schedule }) return redirect('projects_view', id=flow.project.id) else: form = forms.ReleasePushForm() return render(request, 'flows/schedule.html', { 'projects': getProjects(request), 'project': flow.project, 'form': form, 'flow': flow, 'build': build })
def api_sign(request, hash): signoff = models.ReleaseSignoff.objects.get(idhash=hash) signoff.signed = True signoff.save() if signoff.release.waiting: if signoff.release.check_signoff(): taskid = RhumbaClient().queue('sideloader', 'runrelease', { 'release_id': signoff.release.id }) return render(request, "sign.html", { 'signoff': signoff })
def workflow_push(request, flow, build): flow = models.ReleaseFlow.objects.get(id=flow) project = flow.project build = models.Build.objects.get(id=build) if (request.user.is_superuser) or ( project in request.user.project_set.all()): RhumbaClient().queue('sideloader', 'release', { 'build_id': build.id, 'flow_id': flow.id }) return redirect('projects_view', id=project.id)
def projects_build(request, id): project = models.Project.objects.get(id=id) if project and (request.user.is_superuser or ( project in request.user.project_set.all())): current_builds = models.Build.objects.filter(project=project, state=0) if current_builds: return redirect('build_view', id=current_builds[0].id) else: build = models.Build.objects.create(project=project, state=0) build.save() taskid = RhumbaClient().queue('sideloader', 'build', { 'build_id': build.id }) build.task_id = taskid build.save() return redirect('build_view', id=build.id) return redirect('home')
def build(build): c = RhumbaClient() print build return c.queue('sideloader', 'build', {})
import sys sys.path.append('..') from rhumba.client import RhumbaClient rc = RhumbaClient() for i in range(int(sys.argv[1])): rc.queue('testqueue', 'test', {'count': i})