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