mock build.Part 3
This commit is contained in:
56
app.rb
56
app.rb
@@ -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>
|
||||
|
||||
42
views/rpmlistgit.erb
Normal file
42
views/rpmlistgit.erb
Normal file
@@ -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 %>
|
||||
22
views/rpmlistglobal.erb
Normal file
22
views/rpmlistglobal.erb
Normal file
@@ -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 %>
|
||||
Reference in New Issue
Block a user