Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Give workflows and jobs a name and description

1cde8b9ea2ba1483beb90f19cde0f58aede2a661 · Keenan Nemetz · 8d ago · parent 30de4a44

Give workflows and jobs a name and description

The workflows page showed the file path and job IDs, so a reader had to
open the YAML comments to learn what a workflow was for. Add optional
top-level and job-level name and description fields, default them to the
file stem and job ID, pin them with a queued run, and show them on the
workflows and run pages.

Also document what the workflow format still cannot express, and state
that CI jobs are independent and unordered: only a local run uses the
declaration order.

Part of: #138

server/ci.go +23−19

@@ -145,25 +145,29 @@ func (s *Server) queue(m *repo.Meta, repoName, ref, branch, tag, commit string,
145 145 site = pagesPath(job)
146 146 }
147 147 run := runs.Run{
148 Repo: repoName,
149 Ref: ref,
150 Branch: branch,
151 Tag: tag,
152 TagAnnotated: annotated,
153 SHA: commit,
154 Workflow: wf.Path,
155 WorkflowSHA: wf.BlobSHA,
156 Job: job.ID,
157 Steps: steps(job),
158 Image: job.Image,
159 ImageFile: job.ImageFile,
160 ImageDefinition: job.ImageDefinition,
161 ImageSHA: job.ImageSHA,
162 Artifacts: artifactPaths(job),
163 Env: job.Env,
164 ReleaseArtifacts: releasePaths(job),
165 PagesPath: site,
166 Created: time.Now().UTC(),
148 Repo: repoName,
149 Ref: ref,
150 Branch: branch,
151 Tag: tag,
152 TagAnnotated: annotated,
153 SHA: commit,
154 Workflow: wf.Path,
155 WorkflowSHA: wf.BlobSHA,
156 WorkflowName: wf.Name,
157 WorkflowDescription: wf.Description,
158 Job: job.ID,
159 JobName: job.Name,
160 JobDescription: job.Description,
161 Steps: steps(job),
162 Image: job.Image,
163 ImageFile: job.ImageFile,
164 ImageDefinition: job.ImageDefinition,
165 ImageSHA: job.ImageSHA,
166 Artifacts: artifactPaths(job),
167 Env: job.Env,
168 ReleaseArtifacts: releasePaths(job),
169 PagesPath: site,
170 Created: time.Now().UTC(),
167 171 }
168 172 run.ID, _ = id.New(time.Now())
169 173 owing = append(owing, owedRun{run: run, labels: job.Labels})