add branch validation to queue

This commit is contained in:
2025-12-22 15:09:37 +01:00
parent a4205f513d
commit 53aa6469ba
3 changed files with 60 additions and 5 deletions

View File

@@ -252,6 +252,29 @@ def submit_step1():
'output': f'Exception: {str(e)}'
})
@jobs_bp.route('/submit/step2', methods=['POST'])
@login_required
def submit_step2():
branch_name = request.form.get('branch_name')
scenario_map_json = request.form.get('scenario_map')
selected_scenarios_json = request.form.get('selected_scenarios')
try:
scenario_map = json.loads(scenario_map_json) if scenario_map_json else {}
selected_scenarios = json.loads(selected_scenarios_json) if selected_scenarios_json else []
except json.JSONDecodeError:
flash('Invalid scenario data', 'error')
return redirect(url_for('jobs.submit'))
if not selected_scenarios:
flash('Please select at least one scenario', 'error')
return redirect(url_for('jobs.submit'))
return render_template('jobs/submit_step3.html',
branch_name=branch_name,
scenarios=selected_scenarios,
scenario_map=scenario_map)
@jobs_bp.route('/submit/step2-validated', methods=['POST'])
@login_required
def submit_step2_validated():
@@ -312,28 +335,45 @@ def submit_step2():
@login_required
def submit_step3():
branch_name = request.form.get('branch_name')
scenarios = request.form.get('scenarios')
scenarios_json = request.form.get('scenarios')
scenario_map_json = request.form.get('scenario_map')
environment = request.form.get('environment')
try:
scenarios = json.loads(scenarios_json) if scenarios_json else []
scenario_map = json.loads(scenario_map_json) if scenario_map_json else {}
except json.JSONDecodeError:
flash('Invalid scenario data', 'error')
return redirect(url_for('jobs.submit'))
return render_template('jobs/submit_step4.html',
branch_name=branch_name,
scenarios=scenarios,
scenario_map=scenario_map,
environment=environment)
@jobs_bp.route('/submit/final', methods=['POST'])
@login_required
def submit_final():
branch_name = request.form.get('branch_name')
scenarios = request.form.get('scenarios')
scenarios_json = request.form.get('scenarios')
scenario_map_json = request.form.get('scenario_map')
environment = request.form.get('environment')
test_mode = request.form.get('test_mode')
keep_devbenches = request.form.get('keep_devbenches') == 'on'
reuse_results = request.form.get('reuse_results') == 'on'
try:
scenarios = json.loads(scenarios_json) if scenarios_json else []
scenario_map = json.loads(scenario_map_json) if scenario_map_json else {}
except json.JSONDecodeError:
flash('Invalid scenario data', 'error')
return redirect(url_for('jobs.submit'))
job = Job(
user_id=current_user.id,
branch_name=branch_name,
scenarios=scenarios,
scenarios=json.dumps(scenarios), # Store as JSON string
environment=environment,
test_mode=test_mode,
keep_devbenches=keep_devbenches,
@@ -344,7 +384,7 @@ def submit_final():
db.session.add(job)
db.session.commit()
# TODO: Start test execution in background
# TODO: Start test execution in background using scenario_map
flash('Test job submitted successfully', 'success')
return redirect(url_for('dashboard.index'))