rios0rios0/pipelines
Changing the job names to avoid having so many "/" in the Pull Request UI
Open
#22 opened on Feb 9, 2024
enhancementhelp wanted
Repository metrics
- Stars
- (22 stars)
- PR merge metrics
- (Avg merge 8h 32m) (39 merged PRs in 30d)
Description
Summary
When the pipelines repo is imported into other GitHub projects as reusable workflows, the job names in the Pull Request UI become excessively long due to hierarchical nesting (e.g., default / default / language / job with 4 levels of slashes).
Root Cause
The pipelines repo uses a two-level workflow_call chain:
- Consumer repo calls e.g.
rios0rios0/pipelines/.github/workflows/go-binary.yaml@mainfrom their workflow (typically nameddefault.yaml) go-binary.yamldefines ago:job that callsrios0rios0/pipelines/.github/workflows/go.yaml@main(secondworkflow_call)go.yamldefines individual jobs withname:like'code-check > style:golangci-lint'
GitHub Actions displays reusable workflow calls as <caller> / <callee-job>. With 3 levels of nesting, you get: default / go / code-check > style:golangci-lint — a 4-slash chain.
Proposed Fix Options
- Set explicit
name:on intermediate jobs — control what GitHub displays at each level (e.g.,name: ''to suppress a level) - Rename job keys — use shorter, more descriptive keys that read better in the hierarchical display
Scope
All workflow files follow this pattern. Files to update (~20+):
.github/workflows/go.yaml,go-binary.yaml,go-docker.yaml,go-library.yaml.github/workflows/java.yaml,java-*.yaml.github/workflows/python.yaml,python-*.yaml.github/workflows/javascript.yaml,javascript-*.yaml- And all other language variants
Acceptance Criteria
- Job names in the PR UI have at most 2 levels of nesting (e.g.,
language / stage > tool) - All language workflow files are updated consistently
- No functional change to the pipeline stages — same jobs run, same artifacts produced
- Document the naming convention for future workflow additions
- Test with a consumer repo to verify the PR UI displays correctly
Relevant Files
.github/workflows/go.yaml— base Go workflow with all job names.github/workflows/go-binary.yaml— extendsgo.yaml, adds delivery jobs.github/workflows/go-docker.yaml,go-library.yaml— similar patterns.github/workflows/java.yaml,python.yaml,javascript.yaml— same for other languages