diff --git a/routers/web/dev/buildview.go b/routers/web/dev/buildview.go
new file mode 100644
index 0000000000..a4361c848e
--- /dev/null
+++ b/routers/web/dev/buildview.go
@@ -0,0 +1,11 @@
+package dev
+
+import (
+ "net/http"
+
+ "code.gitea.io/gitea/modules/context"
+)
+
+func BuildView(ctx *context.Context) {
+ ctx.HTML(http.StatusOK, "dev/buildview")
+}
diff --git a/routers/web/web.go b/routers/web/web.go
index 1b2b53e5e2..86b2fa2b43 100644
--- a/routers/web/web.go
+++ b/routers/web/web.go
@@ -661,7 +661,7 @@ func RegisterRoutes(m *web.Route) {
m.Post("/{username}", reqSignIn, context_service.UserAssignmentWeb(), user.Action)
if !setting.IsProd {
- m.Any("/dev/termdemo", dev.TermDemo)
+ m.Get("/dev/buildview", dev.BuildView)
}
reqRepoAdmin := context.RequireRepoAdmin()
diff --git a/templates/dev/buildview.tmpl b/templates/dev/buildview.tmpl
new file mode 100644
index 0000000000..bd5ef151ba
--- /dev/null
+++ b/templates/dev/buildview.tmpl
@@ -0,0 +1,7 @@
+{{template "base/head" .}}
+
+
+
+
+
+{{template "base/footer" .}}
diff --git a/web_src/js/components/RepoBuildView.vue b/web_src/js/components/RepoBuildView.vue
new file mode 100644
index 0000000000..dbd88baacc
--- /dev/null
+++ b/web_src/js/components/RepoBuildView.vue
@@ -0,0 +1,313 @@
+
+
+
+
{{ buildInfo.title }}
+
+
+
+ {{ jobGroup.summary }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ jobStage.summary }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web_src/js/index.js b/web_src/js/index.js
index f4638a60e0..780eff0980 100644
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -90,6 +90,7 @@ import {initRepoCommentForm, initRepository} from './features/repo-legacy.js';
import {initFormattingReplacements} from './features/formatting.js';
import {initMcaptcha} from './features/mcaptcha.js';
import {initCopyContent} from './features/copycontent.js';
+import {initRepositoryBuildView} from './components/RepoBuildView.vue';
// Run time-critical code as soon as possible. This is safe to do because this
// script appears at the end of and rendered HTML is accessible at that point.
@@ -187,6 +188,7 @@ $(document).ready(() => {
initRepoTopicBar();
initRepoWikiForm();
initRepository();
+ initRepositoryBuildView();
initCommitStatuses();
initMcaptcha();
diff --git a/web_src/js/svg.js b/web_src/js/svg.js
index dedc126303..0e2b3f216c 100644
--- a/web_src/js/svg.js
+++ b/web_src/js/svg.js
@@ -24,6 +24,7 @@ import octiconTriangleDown from '../../public/img/svg/octicon-triangle-down.svg'
import octiconFile from '../../public/img/svg/octicon-file.svg';
import octiconSidebarExpand from '../../public/img/svg/octicon-sidebar-expand.svg';
import octiconSidebarCollapse from '../../public/img/svg/octicon-sidebar-collapse.svg';
+import octiconCheckCircleFill from '../../public/img/svg/octicon-check-circle-fill.svg';
export const svgs = {
@@ -53,6 +54,7 @@ export const svgs = {
'octicon-diff-modified': octiconDiffModified,
'octicon-diff-removed': octiconDiffRemoved,
'octicon-diff-renamed': octiconDiffRenamed,
+ 'octicon-check-circle-fill': octiconCheckCircleFill,
};