Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
bdc146d
Enhance workflow graph: add job 103 to mock actions and improve layou…
bircni Mar 16, 2026
69b9f2b
Use commit status icons
bircni Mar 16, 2026
5affc61
fix problem with too long job names
bircni Mar 16, 2026
25970ba
remove some unneeded code
bircni Mar 16, 2026
793bbbe
fix review comments: precompute edge sets and consolidate highlight s…
bircni Mar 17, 2026
fd6d57f
Merge branch 'main' into feature/restyle-workflow-graph
bircni Mar 22, 2026
3f501d8
refactor: remove currentJobId prop and related styles from WorkflowGraph
bircni Mar 22, 2026
de8b610
improve ui
bircni Mar 22, 2026
8f8152a
adjust mocks
bircni Mar 22, 2026
808e7f8
improve ui
bircni Mar 22, 2026
5f7740f
Merge branch 'main' into feature/restyle-workflow-graph
bircni Mar 23, 2026
5221b3a
style: update workflow graph colors for dark and light themes
bircni Mar 23, 2026
882f6e2
Merge branch 'main' into feature/restyle-workflow-graph
bircni Mar 23, 2026
cb4e07c
fix more comments
bircni Mar 23, 2026
df7f402
Merge branch 'main' into feature/restyle-workflow-graph
bircni Mar 23, 2026
c5eee52
fix silverwind
bircni Mar 23, 2026
ebc0130
fine tune UI
wxiaoguang Mar 24, 2026
3d61a06
remove pollution introduced by #35061
wxiaoguang Mar 24, 2026
c3b2edb
job dup test
wxiaoguang Mar 24, 2026
dd307af
add repo id for view run, fix TODO
wxiaoguang Mar 24, 2026
26d5696
fix typo
wxiaoguang Mar 24, 2026
604a3f2
fixes
bircni Mar 25, 2026
6c10e54
Merge branch 'main' into feature/restyle-workflow-graph
bircni Mar 25, 2026
8bbfdf6
fixes again
bircni Mar 25, 2026
74fa1c6
Merge branch 'main' into feature/restyle-workflow-graph
bircni Mar 25, 2026
a6c7ecb
remove zoom and cleanup old stuff
bircni Mar 25, 2026
f24eba3
Fix action run view style regressions from #36883
silverwind Mar 25, 2026
0e0114e
Fix relative-time prefix and graph-stats flex layout
silverwind Mar 25, 2026
dccbeea
Use gap instead of margin-bottom in action-run-summary-block
silverwind Mar 25, 2026
41b49b6
fixes
bircni Mar 26, 2026
21c2126
Merge branch 'main' into feature/restyle-workflow-graph
bircni Mar 26, 2026
d25b6ce
remove zoom
bircni Mar 27, 2026
f4b2dc8
fix viewports
bircni Mar 27, 2026
afc411b
Merge branch 'main' into feature/restyle-workflow-graph
wxiaoguang Mar 27, 2026
1b844ee
suggestion
bircni Mar 27, 2026
4d6caca
fix
wxiaoguang Mar 28, 2026
e658c85
fix
wxiaoguang Mar 28, 2026
158c075
fix double scroll bars
wxiaoguang Mar 28, 2026
bd78915
fix hover color and reduce palette
wxiaoguang Mar 28, 2026
2822fb1
fix layout
wxiaoguang Mar 28, 2026
07945fc
fix layout
wxiaoguang Mar 28, 2026
4a68b00
fine tune
wxiaoguang Mar 28, 2026
4d10ed9
fix css name
wxiaoguang Mar 28, 2026
585fafb
use wrap instead of media query
wxiaoguang Mar 28, 2026
2fd8269
Use theme color variables for workflow graph and summary
silverwind Mar 28, 2026
2a6157c
Merge branch 'main' into feature/restyle-workflow-graph
wxiaoguang Mar 28, 2026
da2d4a4
Merge branch 'main' into feature/restyle-workflow-graph
GiteaBot Mar 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion routers/web/devtest/mock_actions.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ func MockActionsRunsJobs(ctx *context.Context) {
runID := ctx.PathParamInt64("run")

resp := &actions.ViewResponse{}
resp.State.Run.RepoID = 12345
resp.State.Run.TitleHTML = `mock run title <a href="/">link</a>`
resp.State.Run.Link = setting.AppSubURL + "/devtest/repo-action-view/runs/" + strconv.FormatInt(runID, 10)
resp.State.Run.Status = actions_model.StatusRunning.String()
Expand Down Expand Up @@ -135,12 +136,36 @@ func MockActionsRunsJobs(ctx *context.Context) {
resp.State.Run.Jobs = append(resp.State.Run.Jobs, &actions.ViewJob{
ID: runID*10 + 2,
JobID: "job-102",
Name: "job 102",
Name: "ULTRA LOOOOOOOOOOOONG job name 102 that exceeds the limit",
Status: actions_model.StatusFailure.String(),
CanRerun: false,
Duration: "3h",
Needs: []string{"job-100", "job-101"},
})
resp.State.Run.Jobs = append(resp.State.Run.Jobs, &actions.ViewJob{
ID: runID*10 + 3,
JobID: "job-103",
Name: "job 103",
Status: actions_model.StatusCancelled.String(),
CanRerun: false,
Duration: "2m",
Needs: []string{"job-100"},
})

// add more jobs to a run for UI testing
if resp.State.Run.CanCancel {
for i := range 10 {
resp.State.Run.Jobs = append(resp.State.Run.Jobs, &actions.ViewJob{
ID: runID*1000 + int64(i),
JobID: "job-dup-test-" + strconv.Itoa(i),
Name: "job dup test " + strconv.Itoa(i),
Status: actions_model.StatusSuccess.String(),
CanRerun: false,
Duration: "2m",
Needs: []string{"job-103", "job-101", "job-100"},
})
}
}

fillViewRunResponseCurrentJob(ctx, resp)
ctx.JSON(http.StatusOK, resp)
Expand Down
2 changes: 2 additions & 0 deletions routers/web/repo/actions/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ type ViewResponse struct {

State struct {
Run struct {
RepoID int64 `json:"repoId"`
Link string `json:"link"`
Title string `json:"title"`
TitleHTML template.HTML `json:"titleHTML"`
Expand Down Expand Up @@ -252,6 +253,7 @@ func fillViewRunResponseSummary(ctx *context_module.Context, resp *ViewResponse,
return
}

resp.State.Run.RepoID = ctx.Repo.Repository.ID
// the title for the "run" is from the commit message
resp.State.Run.Title = run.Title
resp.State.Run.TitleHTML = templates.NewRenderUtils(ctx).RenderCommitMessage(run.Title, ctx.Repo.Repository)
Expand Down
4 changes: 1 addition & 3 deletions web_src/css/base.css
Original file line number Diff line number Diff line change
Expand Up @@ -808,9 +808,7 @@ table th[data-sortt-desc] .svg {

.btn,
.ui.ui.dropdown,
.flex-text-inline,
.flex-text-inline > a,
.flex-text-inline > span {
.flex-text-inline {
display: inline-flex;
align-items: center;
gap: var(--gap-inline);
Expand Down
2 changes: 1 addition & 1 deletion web_src/css/themes/theme-gitea-dark.css
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,6 @@ gitea-theme-meta-info {
--color-input-toggle-background: #2e353c;
--color-input-border: var(--color-secondary-dark-1);
--color-light: #00001728;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #e8f3ff28;
--color-hover: #e8f3ff19;
--color-hover-opaque: #21252a; /* TODO: color-mix(in srgb, var(--color-body), var(--color-hover)); */
Expand Down Expand Up @@ -249,6 +248,7 @@ gitea-theme-meta-info {
--color-danger: var(--color-red);
--color-transparency-grid-light: #2a2a2a;
--color-transparency-grid-dark: #1a1a1a;
--color-workflow-edge-hover: #616e78;
accent-color: var(--color-accent);
color-scheme: dark;
}
Expand Down
2 changes: 1 addition & 1 deletion web_src/css/themes/theme-gitea-light.css
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,6 @@ gitea-theme-meta-info {
--color-input-toggle-background: #d0d7de;
--color-input-border: var(--color-secondary-dark-1);
--color-light: #00001706;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(6 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #0000171d;
--color-hover: #00001708;
--color-hover-opaque: #f1f3f5; /* TODO: color-mix(in srgb, var(--color-body), var(--color-hover)); */
Expand Down Expand Up @@ -249,6 +248,7 @@ gitea-theme-meta-info {
--color-danger: var(--color-red);
--color-transparency-grid-light: #fafafa;
--color-transparency-grid-dark: #e2e2e2;
--color-workflow-edge-hover: #b1b7bd;
accent-color: var(--color-accent);
color-scheme: light;
}
37 changes: 22 additions & 15 deletions web_src/js/components/ActionRunSummaryView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,35 +29,42 @@ onBeforeUnmount(() => {
});
</script>
<template>
<div>
<div class="action-run-summary-view">
<div class="action-run-summary-block">
<p class="action-run-summary-trigger">
{{ locale.triggeredVia.replace('%s', run.triggerEvent) }}
&nbsp;•&nbsp;<relative-time :datetime="runTriggeredAtIso" prefix=" "/>
</p>
<p class="tw-mb-0">
<div class="flex-text-block">
{{ locale.triggeredVia.replace('%s', run.triggerEvent) }} • <relative-time :datetime="runTriggeredAtIso" prefix=""/>
</div>
<div class="flex-text-block">
<ActionRunStatus :locale-status="locale.status[run.status]" :status="run.status" :size="16"/>
<span class="tw-ml-2">{{ locale.status[run.status] }}</span>
<span class="tw-ml-3">{{ locale.totalDuration }} {{ run.duration || '–' }}</span>
</p>
<span>{{ locale.status[run.status] }}</span> • <span>{{ locale.totalDuration }} {{ run.duration || '–' }}</span>
</div>
</div>
<WorkflowGraph
v-if="run.jobs.length > 0"
:store="store"
:jobs="run.jobs"
:run-link="run.link"
:workflow-id="run.workflowID"
class="workflow-graph-container"
/>
</div>
</template>
<style scoped>
.action-run-summary-view {
flex: 1;
display: flex;
flex-direction: column;
color: var(--color-text-light-1);
}

.action-run-summary-block {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 6px;
padding: 12px;
border-bottom: 1px solid var(--color-secondary);
}

.action-run-summary-trigger {
margin-bottom: 6px;
color: var(--color-text-light-2);
border-radius: var(--border-radius) var(--border-radius) 0 0;
background: var(--color-box-header);
}
</style>
1 change: 1 addition & 0 deletions web_src/js/components/ActionRunView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ export function createLogLineMessage(line: LogLine, cmd: LogLineCommand | null)

export function createEmptyActionsRun(): ActionsRun {
return {
repoId: 0,
link: '',
title: '',
titleHTML: '',
Expand Down
13 changes: 8 additions & 5 deletions web_src/js/components/RepoActionView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,11 @@ async function deleteArtifact(name: string) {
max-width: 400px;
position: sticky;
top: 12px;
max-height: 100vh;

/* about 12px top padding + 12px bottom padding + 37px footer height,
TODO: need to use JS to calculate the height for better scrolling experience*/
max-height: calc(100vh - 62px);

overflow-y: auto;
background: var(--color-body);
z-index: 2; /* above .job-info-header */
Expand All @@ -231,12 +235,13 @@ async function deleteArtifact(name: string) {
@media (max-width: 767.98px) {
.action-view-left {
position: static; /* can not sticky because multiple jobs would overlap into right view */
max-height: unset;
}
}

.left-list-header {
font-size: 12px;
color: var(--color-grey);
font-size: 13px;
color: var(--color-text-light-2);
}

.job-artifacts-item {
Expand Down Expand Up @@ -299,7 +304,6 @@ async function deleteArtifact(name: string) {

.job-brief-item .job-brief-item-left .job-brief-name {
display: block;
width: 70%;
}

.job-brief-item .job-brief-item-right {
Expand All @@ -320,7 +324,6 @@ async function deleteArtifact(name: string) {
border: 1px solid var(--color-console-border);
border-radius: var(--border-radius);
background: var(--color-console-bg);
align-self: flex-start;
}

/* begin fomantic button overrides */
Expand Down
Loading