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
- Check the design specs (for spacing, sizes, colors and text copying) — Hide notes in the top-right corner
- Framework symbol SVGs (Ruby on Rails, Node Express, Java Spring)
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.