diff --git a/api/tangled/cbor_gen.go b/api/tangled/cbor_gen.go
index 460a49ff..d54e883a 100644
--- a/api/tangled/cbor_gen.go
+++ b/api/tangled/cbor_gen.go
@@ -1203,7 +1203,11 @@ func (t *CiDefs_Workflow) MarshalCBOR(w io.Writer) error {
}
cw := cbg.NewCborWriter(w)
- fieldCount := 5
+ fieldCount := 6
+
+ if t.Error == nil {
+ fieldCount--
+ }
if t.FinishedAt == nil {
fieldCount--
@@ -1263,6 +1267,38 @@ func (t *CiDefs_Workflow) MarshalCBOR(w io.Writer) error {
return err
}
+ // t.Error (string) (string)
+ if t.Error != nil {
+
+ if len("error") > 1000000 {
+ return xerrors.Errorf("Value in field \"error\" was too long")
+ }
+
+ if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("error"))); err != nil {
+ return err
+ }
+ if _, err := cw.WriteString(string("error")); err != nil {
+ return err
+ }
+
+ if t.Error == nil {
+ if _, err := cw.Write(cbg.CborNull); err != nil {
+ return err
+ }
+ } else {
+ if len(*t.Error) > 1000000 {
+ return xerrors.Errorf("Value in field t.Error was too long")
+ }
+
+ if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.Error))); err != nil {
+ return err
+ }
+ if _, err := cw.WriteString(string(*t.Error)); err != nil {
+ return err
+ }
+ }
+ }
+
// t.Status (string) (string)
if len("status") > 1000000 {
return xerrors.Errorf("Value in field \"status\" was too long")
@@ -1415,6 +1451,27 @@ func (t *CiDefs_Workflow) UnmarshalCBOR(r io.Reader) (err error) {
t.Name = string(sval)
}
+ // t.Error (string) (string)
+ case "error":
+
+ {
+ b, err := cr.ReadByte()
+ if err != nil {
+ return err
+ }
+ if b != cbg.CborNull[0] {
+ if err := cr.UnreadByte(); err != nil {
+ return err
+ }
+
+ sval, err := cbg.ReadStringWithMax(cr, 1000000)
+ if err != nil {
+ return err
+ }
+
+ t.Error = (*string)(&sval)
+ }
+ }
// t.Status (string) (string)
case "status":
diff --git a/api/tangled/cidefs.go b/api/tangled/cidefs.go
index d2360c1a..8edcbe31 100644
--- a/api/tangled/cidefs.go
+++ b/api/tangled/cidefs.go
@@ -74,6 +74,7 @@ func (t *CiDefs_Pipeline_Trigger) UnmarshalJSON(b []byte) error {
// CiDefs_Workflow is a "workflow" in the sh.tangled.ci.defs schema.
type CiDefs_Workflow struct {
+ Error *string `json:"error,omitempty" cborgen:"error,omitempty"`
FinishedAt *string `json:"finishedAt,omitempty" cborgen:"finishedAt,omitempty"`
// id: Spindle-local workflow id. Unique per pipeline, usually same as name.
Id string `json:"id" cborgen:"id"`
diff --git a/appview/pages/pages.go b/appview/pages/pages.go
index 54714f5b..f99c12f4 100644
--- a/appview/pages/pages.go
+++ b/appview/pages/pages.go
@@ -242,7 +242,11 @@ func (p *Pages) executePlain(name string, w io.Writer, params any) error {
return err
}
- return tpl.Execute(w, params)
+ err = tpl.Execute(w, params)
+ if err != nil {
+ p.logger.Error("failed to execute template", "template", name, "err", err)
+ }
+ return err
}
func (p *Pages) executeLogin(name string, w io.Writer, params any) error {
@@ -251,7 +255,11 @@ func (p *Pages) executeLogin(name string, w io.Writer, params any) error {
return err
}
- return tpl.ExecuteTemplate(w, "layouts/base", params)
+ err = tpl.ExecuteTemplate(w, "layouts/base", params)
+ if err != nil {
+ p.logger.Error("failed to execute login template", "template", name, "err", err)
+ }
+ return err
}
func (p *Pages) execute(name string, w io.Writer, params any) error {
@@ -260,7 +268,11 @@ func (p *Pages) execute(name string, w io.Writer, params any) error {
return err
}
- return tpl.ExecuteTemplate(w, "layouts/base", params)
+ err = tpl.ExecuteTemplate(w, "layouts/base", params)
+ if err != nil {
+ p.logger.Error("failed to execute template", "template", name, "err", err)
+ }
+ return err
}
func (p *Pages) executeRepo(name string, w io.Writer, params any) error {
@@ -269,7 +281,11 @@ func (p *Pages) executeRepo(name string, w io.Writer, params any) error {
return err
}
- return tpl.ExecuteTemplate(w, "layouts/base", params)
+ err = tpl.ExecuteTemplate(w, "layouts/base", params)
+ if err != nil {
+ p.logger.Error("failed to execute repo template", "template", name, "err", err)
+ }
+ return err
}
func (p *Pages) executeProfile(name string, w io.Writer, params any) error {
@@ -278,7 +294,11 @@ func (p *Pages) executeProfile(name string, w io.Writer, params any) error {
return err
}
- return tpl.ExecuteTemplate(w, "layouts/base", params)
+ err = tpl.ExecuteTemplate(w, "layouts/base", params)
+ if err != nil {
+ p.logger.Error("failed to execute profile template", "template", name, "err", err)
+ }
+ return err
}
type DollyParams struct {
@@ -891,7 +911,7 @@ type RepoIndexParams struct {
EmailToDid map[string]string
VerifiedCommits commitverify.VerifiedCommits
Languages []types.RepoLanguageDetails
- Pipelines map[string]*tangled.CiDefs_Pipeline
+ Pipelines map[string]types.Pipeline
NeedsKnotUpgrade bool
KnotUnreachable bool
types.RepoIndexResponse
@@ -960,7 +980,7 @@ type RepoLogParams struct {
Active string
EmailToDid map[string]string
VerifiedCommits commitverify.VerifiedCommits
- Pipelines map[string]*tangled.CiDefs_Pipeline
+ Pipelines map[string]types.Pipeline
types.RepoLogResponse
}
@@ -975,7 +995,7 @@ type RepoCommitParams struct {
RepoInfo repoinfo.RepoInfo
Active string
EmailToDid map[string]string
- Pipeline *tangled.CiDefs_Pipeline
+ Pipeline *types.Pipeline
DiffOpts types.DiffOpts
// singular because it's always going to be just one
@@ -1376,7 +1396,7 @@ type RepoPullsParams struct {
FilterQuery string
BaseFilterQuery string
Stacks []models.Stack
- Pipelines map[string]tangled.CiDefs_Pipeline
+ Pipelines map[string]types.Pipeline
LabelDefs map[string]*models.LabelDefinition
Page pagination.Page
PullCount int
@@ -1416,7 +1436,7 @@ type RepoSinglePullParams struct {
BranchDeleteStatus *models.BranchDeleteStatus
MergeCheck types.MergeCheckResponse
ResubmitCheck ResubmitResult
- Pipelines map[string]tangled.CiDefs_Pipeline
+ Pipelines map[string]types.Pipeline
Diff types.DiffRenderer
DiffOpts types.DiffOpts
ActiveRound int
@@ -1588,7 +1608,7 @@ func (p *Pages) RepoForks(w io.Writer, params RepoForksParams) error {
type PipelinesParams struct {
BaseParams
RepoInfo repoinfo.RepoInfo
- Pipelines []*tangled.CiDefs_Pipeline
+ Pipelines []types.Pipeline
Active string
FilterKind string
Total int64
@@ -1642,7 +1662,7 @@ func (p *Pages) WorkflowSymbolOOB(w io.Writer, params WorkflowSymbolOOBParams) e
type WorkflowParams struct {
BaseParams
RepoInfo repoinfo.RepoInfo
- Pipeline *tangled.CiDefs_Pipeline
+ Pipeline types.Pipeline
Workflow string
LogUrl string
Active string
diff --git a/appview/pages/templates/repo/index.html b/appview/pages/templates/repo/index.html
index 828e5656..c4988b28 100644
--- a/appview/pages/templates/repo/index.html
+++ b/appview/pages/templates/repo/index.html
@@ -260,9 +260,11 @@
{{ $pipeline := index $.Pipelines .Hash.String }}
- {{ if and $pipeline (gt (len $pipeline.Statuses) 0) }}
-
- {{ template "repo/pipelines/fragments/pipelineSymbolLong" (dict "RepoInfo" $.RepoInfo "Pipeline" $pipeline) }}
+ {{ if $pipeline }}
+ {{ if gt (len $pipeline.Statuses) 0 }}
+
+ {{ template "repo/pipelines/fragments/pipelineSymbolLong" (dict "RepoInfo" $.RepoInfo "Pipeline" $pipeline) }}
+ {{ end }}
{{ end }}
diff --git a/appview/pages/templates/repo/log.html b/appview/pages/templates/repo/log.html
index 232f01be..3e4e8111 100644
--- a/appview/pages/templates/repo/log.html
+++ b/appview/pages/templates/repo/log.html
@@ -73,8 +73,10 @@
{{ $pipeline := index $.Pipelines .Hash.String }}
- {{ if and $pipeline (gt (len $pipeline.Statuses) 0) }}
- {{ template "repo/pipelines/fragments/pipelineSymbolLong" (dict "Pipeline" $pipeline "RepoInfo" $.RepoInfo) }}
+ {{ if $pipeline }}
+ {{ if gt (len $pipeline.Statuses) 0 }}
+ {{ template "repo/pipelines/fragments/pipelineSymbolLong" (dict "Pipeline" $pipeline "RepoInfo" $.RepoInfo) }}
+ {{ end }}
{{ end }}
@@ -157,11 +159,13 @@
{{ $pipeline := index $.Pipelines .Hash.String }}
- {{ if and $pipeline (gt (len $pipeline.Statuses) 0) }}
-
-
- {{ template "repo/pipelines/fragments/pipelineSymbolLong" (dict "Pipeline" $pipeline "RepoInfo" $.RepoInfo) }}
-
+ {{ if $pipeline }}
+ {{ if gt (len $pipeline.Statuses) 0 }}
+
+
+ {{ template "repo/pipelines/fragments/pipelineSymbolLong" (dict "Pipeline" $pipeline "RepoInfo" $.RepoInfo) }}
+
+ {{ end }}
{{ end }}
diff --git a/appview/pages/templates/repo/pipelines/fragments/pipelineSymbolLong.html b/appview/pages/templates/repo/pipelines/fragments/pipelineSymbolLong.html
index b6e04742..6a08ddd6 100644
--- a/appview/pages/templates/repo/pipelines/fragments/pipelineSymbolLong.html
+++ b/appview/pages/templates/repo/pipelines/fragments/pipelineSymbolLong.html
@@ -1,7 +1,7 @@
{{ define "repo/pipelines/fragments/pipelineSymbolLong" }}
{{ $pipeline := .Pipeline }}
{{ $repoinfo := .RepoInfo }}
- {{ $popoverId := printf "pipeline-status-%d" $pipeline.Id }}
+ {{ $popoverId := printf "pipeline-status-%s" $pipeline.Id }}