Skip to content

New project templates (Rails, Express, Spring); with CI/CD

Description

Getting started with GitLab can be daunting. Learning all that GitLab has to offer is even more so. When starting out with GitLab (or when demoing it), it's helpful to be able to quickly create a new project from a template that has several important things already configured, such as CI/CD, review apps, etc. We can do this via copying from another vendor, or from URL, but it would be easier to just pick from 3-5 templates. e.g. Ruby on Rails, Node Express, Java Spring. Each would include our recommended best practices such as CI/CD pipelines, new issue templates, .gitignore, whatever.

Proposal

Add the ability to pick from 3 templates (Ruby on Rails, Node Express, Java Spring) in the new project dialog.

I believe we should be fine just cloning a repo, but it's possible we want other project-level settings copied with the template.

First iteration

As a first iteration, we will create three templates (Rails, Express, Spring) with source code (minimal app) and a working .gitlab-ci.yml file to build and test it.

These templates will be hosted on GitLab.com, and community members can collaborate to improve them. During the release process, a GitLab engineer will take care of packing an export-like package for each template and include it into the GitLab application, so they will be shipped with the packages.

Once installed/updated, the GitLab instance will use the vendored files to "import" the new project.

Design

Links / references

Future improvements #36886 (closed)

Documentation blurb

Getting started with GitLab can be daunting. Learning all that GitLab has to offer is even more so. For these reasons it's helpful to be able to quickly create a new project from a template that has several important things already configured, such as CI/CD, review apps, etc. With GitLab 9.5 we're introducing this ability and a set of templates supporting some of the most common environments: Ruby on Rails, Node Express and Java Spring.

Edited by Fabio Busatto