A vibe coded tangled fork which supports pijul.
1{{ define "title" }} {{ .Workflow }} · pipeline {{ .Pipeline.Id }} · {{ .RepoInfo.FullName }}{{ end }}
2
3{{ define "extrameta" }}
4 {{ $title := "pipelines"}}
5 {{ $url := printf "https://tangled.sh/%s/pipelines" .RepoInfo.FullName }}
6 {{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
7{{ end }}
8
9{{ define "repoContent" }}
10<section class="w-full grid grid-cols-1 md:grid-cols-4 gap-2 mt-2">
11 <div class="col-span-1">
12 {{ block "sidebar" . }} {{ end }}
13 </div>
14 <div class="col-span-1 md:col-span-3">
15 {{ block "logs" . }} {{ end }}
16 </div>
17</section>
18{{ end }}
19
20{{ define "repoAfter" }}
21{{ end }}
22
23{{ define "sidebar" }}
24 {{ $active := .Workflow }}
25 {{ with .Pipeline }}
26 {{ $id := .Id }}
27 <div class="sticky top-2 grid grid-cols-1 rounded border border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700">
28 {{ range $name, $all := .Statuses }}
29 <a href="/{{ $.RepoInfo.FullName }}/pipelines/{{ $id }}/workflow/{{ $name }}" class="no-underline hover:no-underline hover:bg-gray-100/25 hover:dark:bg-gray-700/25">
30 <div
31 class="flex gap-2 items-center justify-between p-2 {{ if eq $name $active }}bg-gray-100/50 dark:bg-gray-700/50{{ end }}">
32 {{ $lastStatus := $all.Latest }}
33 {{ $kind := $lastStatus.Status.String }}
34
35 {{ $t := .TimeTaken }}
36 {{ $time := "" }}
37
38 {{ if $t }}
39 {{ $time = durationFmt $t }}
40 {{ else }}
41 {{ $time = printf "%s ago" (shortTimeFmt $lastStatus.Created) }}
42 {{ end }}
43
44 <div id="left" class="flex items-center gap-2 flex-shrink-0">
45 {{ template "repo/pipelines/fragments/workflowSymbol" $all }}
46 {{ $name }}
47 </div>
48 <div id="right" class="flex items-center gap-2 flex-shrink-0">
49 <span class="font-bold">{{ $kind }}</span>
50 <time>{{ $time }}</time>
51 </div>
52 </div>
53 </a>
54 {{ end }}
55 </div>
56 {{ end }}
57{{ end }}
58
59{{ define "logs" }}
60 <div id="log-stream"
61 class="text-sm"
62 hx-ext="ws"
63 ws-connect="/{{ $.RepoInfo.FullName }}/pipelines/{{ .Pipeline.Id }}/workflow/{{ .Workflow }}/logs">
64 <div id="lines" class="flex flex-col gap-2">
65 </div>
66 </div>
67{{ end }}