TT#4671 release_dashboard: add trunk builds

Change-Id: I5b40f1323b7288b9a0710b91f1bd7b483fd181a5
changes/02/8902/2
Victor Seva 9 years ago
parent 34018bb4d1
commit ecba3fa88c

@ -17,6 +17,11 @@ from django import forms
from django.conf import settings
rd_settings = settings.RELEASE_DASHBOARD_SETTINGS
trunk_projects = sorted(set(rd_settings['projects']) -
set(rd_settings['abandoned']) -
set(rd_settings['build_deps']))
trunk_build_deps = sorted(set(rd_settings['build_deps']) -
set(rd_settings['abandoned']))
class BuildForm(forms.Form):
@ -43,3 +48,23 @@ class BuildReleaseForm(BuildForm):
for project in rd_settings['projects']:
self.fields['version_%s' %
project] = forms.CharField(max_length=15)
class BuildTrunkDepForm(BuildForm):
def __init__(self, *args, **kwargs):
super(BuildTrunkDepForm, self).__init__(*args, **kwargs)
for project in trunk_build_deps:
self.fields['version_%s' %
project] = forms.CharField(max_length=15)
class BuildTrunkReleaseForm(BuildForm):
def __init__(self, *args, **kwargs):
super(BuildTrunkReleaseForm, self).__init__(*args, **kwargs)
for project in trunk_projects:
self.fields['version_%s' %
project] = forms.CharField(max_length=15)

@ -6,10 +6,18 @@ $('select#common_select').change(function() {
var ignored = $('.version option[value="ignore"]' );
var version = "";
if(selected_version.match(/^branch/)) {
version = selected_version.replace(
/^branch\/(mr[0-9]+\.[0-9]+(\.[0-9]+)?)$/g, "$1");
if(selected_version.match(/^branch\/master/)) {
var distribution = $('select#distribution option:selected').val();
if(!distribution.match(/^auto/)) {
version = 'trunk' + '-' + distribution;
}
}
else {
version = selected_version.replace(
/^branch\/(mr[0-9]+\.[0-9]+(\.[0-9]+)?)$/g, "$1");
}
}
else {
else if(selected_version.match(/^tag/)) {
version = selected_version.replace(
/^tag\/(mr[0-9]+\.[0-9]+\.[0-9]+)(\.[0-9]+)?$/g, "$1");
}
@ -23,7 +31,11 @@ $('select#common_select').change(function() {
$('tr.repo option[value="'+ selected_version + '"]').closest('tr').children('td,th').css('background-color','white');
var text = "Selected " + selected.length + " of " + ignored.length;
$('#select_text_info').html(text);
$('input#version_release').val("release-" + version);
if(version.length > 0) {
$('input#version_release').val("release-" + version);
} else {
$('input#version_release').val('');
}
});
$('#main').click(function(e){

@ -5,6 +5,7 @@
<h3 class="panel-title">Actions</h3>
</div>
<div class="panel-body">
{% if common_versions %}
<div class="form-group">
<label for="common_select">Common selection</label>
<select class="form-control" id="common_select"
@ -18,6 +19,7 @@
{% endfor %}
</select>
</div>
{% endif %}
<div class="form-group">
<label for="version_release">Release version</label>
<input class="form-control" id="version_release"

@ -0,0 +1,13 @@
{% extends "release_dashboard/base.html" %}
{% load staticfiles %}
{% block title %}Build release{% endblock %}
{% block navlist %}
<li><a href="{% url 'release_dashboard:index'%}">Release Dashboard</a></li>
<li><a href="{% url 'release_dashboard:build_trunk_release'%}">Build Trunk Release</a></li>
{% endblock %}
{% block content %}
{% include "release_dashboard/build_content.html" %}
{% endblock %}
{% block extrajs %}
<script src="{% static "release_dashboard/js/build.js" %}"></script>
{% endblock %}

@ -0,0 +1,13 @@
{% extends "release_dashboard/base.html" %}
{% load staticfiles %}
{% block title %}Build dependences{% endblock %}
{% block navlist %}
<li><a href="{% url 'release_dashboard:index'%}">Release Dashboard</a></li>
<li><a href="{% url 'release_dashboard:build_trunk_deps'%}">Build Trunk dependences</a></li>
{% endblock %}
{% block content %}
{% include "release_dashboard/build_content.html" %}
{% endblock %}
{% block extrajs %}
<script src="{% static "release_dashboard/js/build.js" %}"></script>
{% endblock %}

@ -23,6 +23,14 @@
<a href="{% url 'release_dashboard:build_release_tag'%}">
Build release by tag</a>
</li>
<li class="list-group-item">
<a href="{% url 'release_dashboard:build_trunk_deps'%}">
Build Trunk release dependences</a>
</li>
<li class="list-group-item">
<a href="{% url 'release_dashboard:build_trunk_release'%}">
Build Trunk release</a>
</li>
<li class="list-group-item">
<a href="{% url 'release_dashboard:hotfix'%}">
Hotfixes</a>

@ -20,6 +20,10 @@ urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^build_deps/$', views.build_deps, name='build_deps'),
url(r'^build/$', views.build_release, name='build_release'),
url(r'^build_trunk_deps/$', views.build_trunk_deps,
name='build_trunk_deps'),
url(r'^build_trunk/$', views.build_trunk_release,
name='build_trunk_release'),
url(r'^build_tag/$', views.build_release,
{'tag_only': True}, name='build_release_tag'),
url(r'^hotfix/$', views.hotfix, name='hotfix'),

@ -25,11 +25,14 @@ from release_dashboard.models import Project
from .utils import get_tags, get_branches, trigger_hotfix, trigger_build
from .tasks import gerrit_fetch_info, gerrit_fetch_all
from .forms import BuildDepForm, BuildReleaseForm
from .forms import BuildTrunkDepForm, BuildTrunkReleaseForm
from .forms import trunk_projects, trunk_build_deps
rd_settings = settings.RELEASE_DASHBOARD_SETTINGS
logger = logging.getLogger(__name__)
regex_hotfix = re.compile(r'^mr[0-9]+\.[0-9]+\.[0-9]+$')
regex_mr = re.compile(r'^mr.+$')
regex_master = re.compile(r'^master$')
def index(request):
@ -197,3 +200,50 @@ def refresh_all(request):
def refresh(request, project):
res = gerrit_fetch_info.delay(project)
return JsonResponse({'url': '/flower/task/%s' % res.id})
def build_trunk_deps(request):
if request.method == "POST":
form = BuildTrunkDepForm(request.POST)
if form.is_valid():
context = _build_logic(form, trunk_build_deps)
else:
context = {'error': 'form validation error'}
return render(request, 'release_dashboard/build_result.html', context)
else:
context = {
'projects': _projects_versions(
trunk_build_deps,
regex_master,
),
'common_versions': {
'tags': [],
'branches': ['master', ]
},
'debian': rd_settings['debian_supported'],
}
return render(request,
'release_dashboard/build_trunk_deps.html', context)
def build_trunk_release(request):
if request.method == "POST":
form = BuildTrunkReleaseForm(request.POST)
if form.is_valid():
context = _build_logic(form, trunk_projects)
else:
context = {'error': 'form validation error'}
return render(request, 'release_dashboard/build_result.html', context)
else:
context = {
'projects': _projects_versions(
trunk_projects,
regex_master,
),
'common_versions': {
'tags': [],
'branches': ['master', ]
},
'debian': rd_settings['debian_supported'],
}
return render(request, 'release_dashboard/build_trunk.html', context)

@ -242,4 +242,24 @@ RELEASE_DASHBOARD_SETTINGS = {
"www_admin",
"www_csc"
),
'abandoned': (
"asterisk",
"asterisk-sounds",
"cloudpbx-devices",
"collectd-mod-redis",
"comx",
"comx-sip",
"comx-xmpp",
"diva-drivers",
"hylafaxplus",
"iaxmodem",
"mediaproxy-ng",
"mediaproxy-redis",
"rtpengine-redis",
"ossbss",
"sems-prompts",
"sipsak",
"www_admin",
"www_csc",
),
}

Loading…
Cancel
Save