GitLab CI and Travis CI are both popular Continuous Integration (CI) tools that help automate the process of building, testing, and deploying software applications. While they share similarities, there are several key differences between GitLab CI and Travis CI.\n\n

    \n
  1. Scalability: GitLab CI provides native support for scaling horizontally, allowing you to distribute the workload across multiple machines or even multiple instances. On the other hand, Travis CI relies on dedicated infrastructure and doesn't have built-in scalability features.\n

  2. Integration: GitLab CI is tightly integrated with GitLab, a complete DevOps platform, making it easier to manage your source code, issues, and CI/CD pipelines in one place. Travis CI, on the other hand, is standalone and can be used with any version control system.\n

  3. Containerization: GitLab CI supports Docker containers, enabling you to build and run your pipelines within isolated environments. Travis CI provides limited support for containers but is more focused on virtual machines.\n

  4. Configuration: GitLab CI uses a YAML-based configuration file (.gitlab-ci.yml) that allows for greater flexibility and control over pipeline stages, variables, and jobs. Travis CI also uses YAML configuration (.travis.yml) but with a slightly different syntax and configuration options.\n

  5. Shared Runners: GitLab CI offers shared runners, which are virtual machines that can be used by multiple projects, reducing the need for maintaining dedicated infrastructure. Travis CI, on the other hand, primarily relies on dedicated runner instances.\n

  6. Pricing: GitLab CI offers both a free Community Edition and a paid Enterprise Edition with additional features and support. Travis CI also has a free tier for open-source projects but charges for private repositories and additional build concurrency.\n\n\n

    In summary, GitLab CI provides better scalability, tighter integration with GitLab, and more advanced containerization capabilities compared to Travis CI. Additionally, GitLab CI offers greater flexibility in configuration, shared runners for efficient resource utilization, and different pricing options for diverse needs.\n","content2":"","topContent":"","bottomContent":"","packageStackup":false,"screenshotImageUrl":"https://img.stackshare.io/stackup/4117032/gitlab-ci-vs-travis-ci.png","function":"Continuous Integration","path":"/stackups/gitlab-ci-vs-travis-ci","title":"GitLab CI vs Travis CI","seoUpdatedAt":null,"cachedStackDecisionsGetAdvice":{"type":"json","json":{"count":2,"edges":[{"node":{"id":"103476895397285813","user":{"id":"103476800228212753","title":null,"imageUrl":"https://img.stackshare.io/user/340565/default_d0f3eaae19f27eb672995f2e49531cf1b17ae199.jpg","thumbUrl":"https://img.stackshare.io/user/340565/thumb_d0f3eaae19f27eb672995f2e49531cf1b17ae199.jpg","username":"sxakoustos648","__typename":"User","companyName":null,"displayName":"Stratos Xakoustos"},"stack":null,"topics":[],"answers":{"count":3,"edges":[{"node":{"id":"103519271174209174","link":null,"user":{"id":"101231989792638573","path":"/glenngillen","title":"","imageUrl":"https://img.stackshare.io/user/1281/default_d46d2843ab155379d8905d53c321e08dab275db2.jpeg","username":"glenngillen","__typename":"User","companyName":"Glenn Gillen","displayName":"Glenn Gillen"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103519271174209174","services":[],"createdAt":"2020-01-21T03:52:02Z","fromTools":[],"viewCount":172890,"__typename":"StackDecision","bookmarked":false,"rawContent":"I think I've tried most of the CI tools out there at some point. It took me a while to get around to Buildkite because at first I didn't see much point given it seemed like you had to run the agent yourself. Eventually it dawned on me why this approach was more ingenious than I realised:\n\nRunning my app in a production (or production-like) environment was already a solved problem, because everything was already in some form of \"everything as code\". Having a test environment where the only difference was adding the Buildkite agent was a trivial addition.\n\nIt means that dev/test/prod parity is simple to achieve and maintain. It's also proven to be much easier to support than trying to deal with the problems that come with trying to force an app to fit into the nuances and constraints that are imposed by the containers/runtime of a CI service. When you completely control all of the environment the tests are running in you define those constraints too. It's been a great balance between a managed service and the flexibility of running it yourself.\n\nAnd while none of my needs have hit the scale of Shopify (I saw one of their engineers speak about it at a conference once, I can't find the video now though 😞) it's good to know I can scale out my worker nodes to hundreds of thousands of workers to reduce the time it takes for my tests to run.","htmlContent":"

    I think I've tried most of the CI tools out there at some point. It took me a while to get around to Buildkite because at first I didn't see much point given it seemed like you had to run the agent yourself. Eventually it dawned on me why this approach was more ingenious than I realised:\n\n

    Running my app in a production (or production-like) environment was already a solved problem, because everything was already in some form of \"everything as code\". Having a test environment where the only difference was adding the Buildkite agent was a trivial addition.\n\n

    It means that dev/test/prod parity is simple to achieve and maintain. It's also proven to be much easier to support than trying to deal with the problems that come with trying to force an app to fit into the nuances and constraints that are imposed by the containers/runtime of a CI service. When you completely control all of the environment the tests are running in you define those constraints too. It's been a great balance between a managed service and the flexibility of running it yourself.\n\n

    And while none of my needs have hit the scale of Shopify (I saw one of their engineers speak about it at a conference once, I can't find the video now though 😞) it's good to know I can scale out my worker nodes to hundreds of thousands of workers to reduce the time it takes for my tests to run.","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-01-21T03:52:02Z","decisionType":"giveAdvice","rootComments":[{"id":"103522048396461041","user":{"id":"103476800228212753","path":"/sxakoustos648","imageUrl":"https://img.stackshare.io/user/340565/default_d0f3eaae19f27eb672995f2e49531cf1b17ae199.jpg","__typename":"User","displayName":"Stratos Xakoustos"},"content":"WOW, Buildkite looks great! I'll throw that into consideration, thanks.","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2020-01-21T15:38:19Z","__typename":"Comment","upvotesCount":1}],"subjectTools":[{"id":"101231773665355731","fans":280,"name":"Buildkite","path":"/buildkite","slug":"buildkite","title":"Fast, secure and scalable CI/CD for all your software projects","votes":115,"stacks":212,"imageUrl":"https://img.stackshare.io/service/577/default_2d19e0c5c214c1ba5cd484c8463d7dfe88eb2328.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/buildkite","followContext":null}],"upvotesCount":5,"commentsCount":1},"__typename":"StackDecisionEdge"},{"node":{"id":"104366713178886477","link":null,"user":{"id":"104366569448368716","path":"/ronenl1505","title":"","imageUrl":"https://img.stackshare.io/user/634357/default_441a8f28661f0ff52e0eed6fd3da4cdfb04e6186.jpg","username":"ronenl1505","__typename":"User","companyName":"JFrog","displayName":"Ronen Lewit"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104366713178886477","services":[],"createdAt":"2020-06-18T19:47:41Z","fromTools":[],"viewCount":172910,"__typename":"StackDecision","bookmarked":false,"rawContent":"I would recommend you to consider the JFrog Platform that includes JFrog Pipelines - it will allow you to manage the full artifact life cycle for your sbt, docker and other technologies, and automate all of your CI and CD using cloud native declarative yaml pipelines. Will integrate smoothly with all your other toolset.","htmlContent":"

    I would recommend you to consider the JFrog Platform that includes JFrog Pipelines - it will allow you to manage the full artifact life cycle for your sbt, docker and other technologies, and automate all of your CI and CD using cloud native declarative yaml pipelines. Will integrate smoothly with all your other toolset.","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-06-18T19:47:41Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231776033089429","fans":145,"name":"jFrog","path":"/jfrog","slug":"jfrog","title":"Universal Artifact Management","votes":0,"stacks":127,"imageUrl":"https://img.stackshare.io/service/5287/86ulJdF0_400x400.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/jfrog","followContext":null}],"upvotesCount":4,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"103519171531941463","link":null,"user":{"id":"101232132235042642","path":"/tuanpembual","title":"DevOps Consultant","imageUrl":"https://img.stackshare.io/user/275911/default_49727c6368f939da94bce201e6c90defc92b5e99.jpeg","username":"tuanpembual","__typename":"User","companyName":"","displayName":"Estu Fardani"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103519171531941463","services":[],"createdAt":"2020-01-21T03:26:42Z","fromTools":[],"viewCount":172437,"__typename":"StackDecision","bookmarked":false,"rawContent":"more configurable to setup ci/cd:\n* It can provide caching when build sbt, just add this section to yml file\n* Easy to use, many documentation\n\nWeakness:\n* Need use gitlab as repository to bring more powerful configuration","htmlContent":"

    more configurable to setup ci/cd:\n* It can provide caching when build sbt, just add this section to yml file\n* Easy to use, many documentation\n\n

    Weakness:\n* Need use gitlab as repository to bring more powerful configuration","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-01-21T03:26:42Z","decisionType":"giveAdvice","rootComments":[{"id":"103521993743946230","user":{"id":"103476800228212753","path":"/sxakoustos648","imageUrl":"https://img.stackshare.io/user/340565/default_d0f3eaae19f27eb672995f2e49531cf1b17ae199.jpg","__typename":"User","displayName":"Stratos Xakoustos"},"content":"Yeah, that weakness kinda made the GitLab idea DOA. I wish they unbundled at some point because I really enjoyed using it for my POC","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2020-01-21T15:24:25Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"101231776189486570","fans":2279,"name":"GitLab CI","path":"/gitlab-ci","slug":"gitlab-ci","title":"GitLab integrated CI to test, build and deploy your code","votes":75,"stacks":2298,"imageUrl":"https://img.stackshare.io/service/5545/9pAwHBR0.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/gitlab-ci","followContext":null}],"upvotesCount":2,"commentsCount":1},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"Mw","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"103476895397285813","services":[],"fromTools":[],"viewCount":172840,"__typename":"StackDecision","htmlContent":"

    We are a mid-size startup running Scala apps. Moving from Jenkins/EC2 to Spinnaker/EKS and looking for a tool to cover our CI/CD needs. Our code lives on GitHub, artifacts in nexus, images in ECR.\r\n\r\n

    Drone is out, GitHub actions are being considered along with Circle CI and GitLab CI.\r\n\r\n

    We primarily need:\r\n\r\n