-
Notifications
You must be signed in to change notification settings - Fork 313
Added Travis-CI compatibility layer #462
Conversation
👍 To the GitLab team, what are the chances of something like this to be accepted? It covers a few key areas that are being requested on the feedback site, and adds even more. |
@robodude666 Regarding the chance of something like this to be accepted the following will be the first step to take:
|
I'm also thinking about introducing |
@Wachiwi I'm talking more from a dependency point of view. Will creating dependencies to travis-ci packages be acceptable, considering it's a competing product? @ayufan Will this compatibility layer also provide an updated build log that automatically collapses large sections of stdout like Travis-CI? |
@robodude666 I made it yesterday. However, it's not top notch. I think that ansi2html should be rewritten to javascript. https://github.com/ayufan/gitlab-ci/commits/topic/build_trace_folding Travis-CI License allows it: |
|
||
redirect_to project_build_path(project, build) | ||
rescue => e | ||
redirect_to :back, alert: "Cannot create build: #{e.to_s}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Redundant use of Object#to_s
in interpolation.
@ayufan I am closing this as a result of our discussion during the call. |
Reasons why this was declined for community: Travis.yml fileWe are moving in different direction than Travis. We have difference in architecture that we find simpler. Runner: clone repo, run tests & send output to coordinator Thats why all build scripts should be configured via UI. Its more user friendly and matches current architecture when coordinator does not know anything about repository. Runners changesWe should not change runner code until we have a really good reason. No need to add any complexity in runner code. It should be simple lib that run process and submit output via API. |
Closing this is a bad idea.
I agree with that principle but having a runner environment that isn't static is bad for testing; I don't want the results from one test (which might install software) to influence the result of another (which might need software installed, but doesn't do it, yet it works because an earlier unrelated test installed it). These patches would easily allow an unchanging runner environment to be used, much like Travis, without much effort. |
I agree with you. We may do it even better by using current build scripts, but by extending runner to use docker environment (or any environment at all). |
WARNING: This is WIP, please do not merge. This is preliminary work which still requires significant changes: i.e. better handling build matrix in terms of database representation and views.
This Pull Request adds Travis-CI support in GitLab CI. Most of the features already work: build matrices, languages, OSes. In order to test these changes at least this PR is required: gitlabhq/gitlab-ci-runner#99. It uses Travis-CI libraries: https://github.com/travis-ci/travis-build and https://github.com/travis-ci/travis-yaml to create build matrix and generate shell script. Travis images can be built using https://github.com/travis-ci/travis-images or using my script: https://github.com/ayufan/travis-images/blob/master/build_docker_templates.