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}) | |