Programming Languages templates to components migration
Summary
This issue contains the work necessary to migrate all programming language templates to components.
Proposal
To migrate the list below to components
DevRel focus
based on &12066 (comment 1654990982) and https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates
Programming languages
Add best practices:
- Caching
- Code coverage configuration and Junit test reports (opinionated)
Note: Programming language templates require a different UX. They provide multiple jobs that require splitting the component into multiple templates.
templates/
lint.yml
build.yml
test.yml
Template | Issue | Migrated by | Done? | Tested by | Owned by | Notes |
---|---|---|---|---|---|---|
C | gcc, different platform targets | |||||
C++ | Different compilers and build chains. Be opinionated and use best practices env variables (CXX(gcc,clang)), CMake, etc.) | |||||
Go | @dnsmichi | https://gitlab.com/gitlab-de/use-cases/cicd-components-catalog/components-templates/golang WIP | Needs split jobs, and "super component" | |||
Java (Gradle) | Java, OpenJDK, env variables, etc. -- Frameworks: Maven, .. | |||||
Java (Maven) | ||||||
Mono (.NET on Linux) | ||||||
NodeJS (npm) | Different test frameworks and versions (npm, yarn, etc.) -- might need split into templates | |||||
PHP | PHP CLI, Test frameworks, and frameworks: Lavarel | |||||
Python | Only Python3 supported | |||||
Ruby | Split for and Ruby Ruby on Rails | |||||
Rust | Add Rust caching (not documented yet) | |||||
.NET | Figure out which .NET (Core) versions can be supported | |||||
.NET Core | ||||||
MATLAB | Research whether this can be component | |||||
LaTeX | Easiest conversion example (might not fit a component) |
Confirm purpose and User Reception (how does this benefit the user?)
As GitLab pushes towards the use of components more than templates in the future, migrating the popular programming language templates to components will help advocate for this process and in turn, increase user adoption for components.
Additional details
Some relevant technical details, if applicable, such as:
- Does this need a feature flag?
- Does there need to be an associated instrumentation issue created related to this work?
- Is there an example response showing the data structure that should be returned (new endpoints only)?
- What permissions should be used?
- Is this EE or CE?
-
EE -
CE
-
- Additional comments: