CI language generator (wizard)
I feel that we should implement the .gitlab-ci.yml
wizard in GitLab.
The workflow
- User clicks
Configure CI
, - GitLab tries to detect project type (we can do it the same as it's done by heroku buildpacks),
- We show a user what we discovered,
- We allow a user to modify the choice. He would be able to see from: Language/Framework/Pages generator,
- We would built a detectors for: Ruby/Rails/Rspec/Spinach, Python/Django, PHP with Composer, Go with test/vet/lint, Java/Maven/Gradle, iOS/Xcode/Fastlane.
- We would try to detect test suites present in project,
- We would propose a few options for deployments (a good addition to our upcoming plugin system),
- We would allow to specify on what branches the changes should be set,
- We would save the generated
.gitlab-ci.yml
in repository, making it possible to someone to change. - (optional, nice to have) parse the
.gitlab-ci.yml
and pre-fill the wizard.
Why?
The main reason is to reduce the starting cost of using GitLab, but still having the flexibility of .gitlab-ci.yml. The .gitlab-ci.yml
will be more and more complex over time as we add more and more features. Most of people need to use only simple functions of it and want to start as soon as possible. I haven't seen it available in any other product, so it could be a differencing factor as feature when choosing the CI solution.
The size of task
This is more a UI/UX task than the development one (detecting the frameworks). The detection of languages could be done quite easily: others manage to do it :)
@sytses @dzaporozhets @grzesiek @DouweM @JobV What do you think?
Edited by Mark Pundsack