[go: up one dir, main page]

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:

  1. Caching
  2. 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:

Links/References