mock build.Part 3

master
alexey 4 weeks ago
parent 6520ca97df
commit c9ac228ab6

@ -750,6 +750,7 @@ get "/gitbld/:id/:git_id" do
@proj_name = prj_info[:projname]
@proj_descr = prj_info[:descr]
@git_name = git_info[:reponame]
@proj_id = params["id"]
@build_id = prj.build_projects_git(prj_info[:id], git_info[:id], cfg.get_counter_path)
@ -786,6 +787,61 @@ get "/buildinfo/:build_id" do
end
end
get "/buildinforaw/:build_id" do
content_type "text/plain"
build_id = params["build_id"].to_i
if build_id > 0
info = db.get_build_task_process_log(build_id)
unless info.nil?
if File.exist?(info[:errlogpath])
output = ""
File.readlines(info[:errlogpath]).each do |line|
output << line
end
output
else
"Файла для чтения сборки уже не существует #{info[:errlogpath]}"
end
else
"Такого build id #{params["build_id"]} нет в базе"
end
else
"Ошибка чтения build id #{params["build_id"]}"
end
end
get "/rpms" do
@page_name = "Список доступных пакетов"
@gits_rpms_list = db.get_gits_rpms
erb :rpmlistglobal
end
get "/gitpackages/:git_id" do
repo = GitRepo.new(cfg.get_repo, db)
if repo.path.nil?
print_error_page(503, "Путь к репозиториям не существует")
else
git_info = repo.get_repo_short_info_by_id(params["git_id"].to_i)
if git_info.nil?
print_error_page(503, "Репозиторий исчез")
else
@page_name = "Список пакетов собранных из git репозитория #{git_info[:reponame]}"
rpms_lst = db.get_rpms_for_git(params["git_id"])
if params["p"].nil?
@page = 1
else
@page = params["p"].to_i
if @page < 1
@page = 1
end
end
items_per_page = cfg.get_items_per_page
@rpms_list = rpms_lst[(@page - 1) * items_per_page, items_per_page]
erb :rpmlistgit
end
end
end
not_found do
status 404
@page_name = "Кто-то потерялся"

@ -70,4 +70,16 @@ class IniConfig
"locks/counter"
end
end
def get_items_per_page()
unless @config["pages"]["items_per_page"].nil?
res = @config["pages"]["items_per_page"].to_i
if res < 1
res = 30
end
res
else
30
end
end
end

@ -1,7 +1,7 @@
require "sequel"
cfg_internal = IniConfig.new()
Sequel.connect(cfg_internal.get_db)
$DDB = Sequel.connect(cfg_internal.get_db)
class Repos < Sequel::Model(:repos)
end
@ -254,7 +254,7 @@ class DBase
end
def after_fork()
Sequel.connect(@cfg.get_db)
$DDB = Sequel.connect(@cfg.get_db)
end
def save_rpm(build_id, path_to_rpm, rpm_name, git_id)
@ -262,4 +262,12 @@ class DBase
@last_id = id
BuildRpms.insert(build_id: build_id.to_i, rpm_id: id)
end
def get_gits_rpms()
$DDB["select t1.id, t1.reponame, count(*) as packages from repos as t1 join rpms as t2 on t2.repo_id = t1.id group by t1.id, t1.reponame order by t1.id"].all
end
def get_rpms_for_git(git_id)
$DDB["select t2.id as rpmid, t2.rpmname, t1.reponame as repoid, t4.id as builid, t4.proj_id as prjid, t4.create_at from repos as t1 join rpms as t2 on t2.repo_id = t1.id join build_rpm as t3 on t3.rpm_id = t2.id join buildtask as t4 on t4.id = t3.build_id where t1.id = ? and t2.savepath not like '%.src.rpm' order by t4.create_at, t2.rpmname", git_id.to_i].all
end
end

@ -14,4 +14,7 @@ path = "locks/counter"
[configs]
hide=open,amazon,anolis,circle,custom,euro,fedora,mageia,navy,alma,rocky
selected=msvsphere
selected=msvsphere
[pages]
items_per_page = 30

@ -98,6 +98,14 @@
</div>
</div>
</div>
<div class="col-md-6" style="padding: 12px;">
<div class="card" style="background: rgb(227,227,227);border-radius: 15px;">
<div class="card-body">
<h4 class="card-title">Список сборок</h4>
<p class="card-text">Список всех сборок по всем проектам</p><a class="card-link" href="/builds">Перейти к списку сборок</a>
</div>
</div>
</div>
</div>
</div>
<%= erb :footer %>

@ -7,6 +7,10 @@
</h3>
<div class="pb-2"><%= @proj_descr %></div>
<div class="pb-2">git репозиторий <%= @git_name %></div>
<div class="list-group">
<a href="/buildinforaw/<%= ERB::Util.url_encode(@build_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-filetype-raw"></i><span class="ms-2">Посмотреть полный log файл процесса</span></a>
</div>
</div>
<div class="col-8">
<div class="hstack gap-3">

@ -35,6 +35,8 @@
<a href="/prjrpm/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-box"></i><span class="ms-2">Список всех
пакетов</span></a>
<a href="/prjbuilds/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-list"></i><span class="ms-2">Список сборок проекта</span></a>
<a href="/prjsign/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-pencil-square"></i><span class="ms-2">Подписать</span></a>
<a href="/prjpub/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
@ -67,9 +69,9 @@
<% @proj_repo.each do |item| %>
<div class="row justify-content-between border-bottom border-light-subtle m-2">
<% unless item[:is_repo_synced] %>
<div class="col-9">
<% else %>
<div class="col-8">
<% else %>
<div class="col-7">
<% end %>
<a href="/prjgitf/<%= ERB::Util.url_encode(@proj_id) %>/<%= ERB::Util.url_encode(item[:id]) %>" class="p-2"><%= item[:reponame] %></a>
</div>
@ -87,6 +89,9 @@
<div class="col-1">
<a href="/gitspec/<%= ERB::Util.url_encode(@proj_id) %>/<%= ERB::Util.url_encode(item[:id]) %>" class="p-2"><i class="bi bi-arrow-down-right-square"></i></a>
</div>
<div class="col-1">
<a href="/prjgitbld/<%= ERB::Util.url_encode(@proj_id) %>/<%= ERB::Util.url_encode(item[:id]) %>" class="p-2"><i class="bi bi-bricks"></i></a>
</div>
</div>
<% end %>
</div>

@ -0,0 +1,42 @@
<%= erb :header %>
<div class="container">
<a class="btn btn-primary mb-3" href="/rpms" role="button">К списку пакетов для всех репозиториев</a>
</div>
<div class="container">
<table class="table table-striped table-hover">
<thead>
<tr>
<th scope="col">Имя пакета</th>
<th scope="col" class="text-center">Дата создания</th>
<th scope="col" class="text-center">Git репозиторий</th>
<th scope="col" class="text-center">Номер сборки</th>
<th scope="col" class="text-center">Проект</th>
<th scope="col" class="text-center">Информация о пакете</th>
</tr>
</thead>
<tbody>
<% @rpms_list.each do |item| %>
<tr>
<td scope="row"><%= item[:rpmname] %></td>
<td><%= item[:create_at] %></td>
<td class="text-center"><a href="/repos/<%= ERB::Util.url_encode(item[:repoid]) %>"><%= item[:repoid] %></a></td>
<td class="text-center"><a href="/buildinfo/<%= ERB::Util.url_encode(item[:builid]) %>">build#<%= item[:builid] %></a></td>
<td class="text-center"><a href="/prjedit/<%= ERB::Util.url_encode(item[:prjid]) %>">Перейти к проекту</a></td>
<td class="text-center"><a href="/rpminfo/<%= ERB::Util.url_encode(item[:rpmid]) %>">Информация о пакете</a></td>
</tr>
<% end %>
</tbody>
</table>
</div>
<div class="container">
<nav aria-label="Навигация по доступным пакетам">
<ul class="pagination pagination-sm justify-content-center">
<li class="page-item active" aria-current="page">
<span class="page-link">1</span>
</li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
</nav>
</div>
<%= erb :footer %>

@ -0,0 +1,22 @@
<%= erb :header %>
<div class="container">
<table class="table table-striped table-hover">
<thead>
<tr>
<th scope="col">Имя git репозитория</th>
<th scope="col" class="text-center">Число пакетов rpm пакетов</th>
<th scope="col" class="text-center">Перейти к списку rpm пакетов</th>
</tr>
</thead>
<tbody>
<% @gits_rpms_list.each do |item| %>
<tr>
<th scope="row"><%= item[:reponame] %></th>
<td class="text-center"><%= item[:packages] %></td>
<td class="text-center"><a href="/gitpackages/<%= ERB::Util.url_encode(item[:id]) %>"><i class="bi bi-arrow-right-square"></i></a></td>
</tr>
<% end %>
</tbody>
</table>
</div>
<%= erb :footer %>
Loading…
Cancel
Save