Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Category Direction - Continuous Integration

Continuous Integration

Continuous Integration (CI) is an important part of any software development cycle, and defined as part of the Verify stage here at GitLab. As declared in our Ops Section direction, we recognize a key advantage of GitLab CI is that we can define pipelines as code, and we can make CI easy to use, reliable, and accurate in terms of its results. While we are very proud that we are recognized as the leading CI/CD tool on the market, as well as a leader in the 2019 Q3 Cloud Native CI Wave, it's important for us that we continue to innovate in this area and provide not just a "good enough" solution, but a speedy and reliable one.

As we continue to improve the experience of running a pipeline, we also want to help you better analyze your pipelines. Making it easy to run a pipeline is our first focus and this applies to both running a pipeline manually as well as triggering one automatically when submitting a code commit or a merge request. In addition, we want to provide data for examining your pipeline's performance, so that you can optimize CI configurations to make your pipelines run more efficiently.

Additional Resources

For specific information and features related to authoring/defining pipelines, check out Pipeline Authoring. You may also be looking for one of the following related product direction pages: GitLab Runner, Continuous Delivery, Release stage, or Jenkins Importer.

What's Next & Why

To ensure the availability and reliability that our customers have come to expect of, we are currently investing heavily in optimizing the performance of database queries in CI pipelines gitlab&5434. In addition, we are enhancing pipeline validation to ensure performance is not impacted by improperly configured jobs and pipelines. Both of these efforts have been prioritized over plans to improve usability as well as promised features. Once these rapid action initiatives are completed, we will resume our focus on reducing our tech debt and bugs backlog for the remainder of H1-FY22 (Feb-Jul 2021).

When we return to tackling usability issues and bugs related to artifacts and variables, we will seek the best resolution which could mean a new feature to support a use case that was missed. For example, we understand the risks inherent with the ability to Merge immediately, which bypasses the safeguards you expect when enabling Merge Results pipelines or Merge Trains. So in gitlab#320981, we will provide the ability to disable the Merge immediately capability to reduce the risk of merging breaking changes into your target branch.

On the other hand, the absence of a pipeline should not prevent you from merging your changes when the circumstance is appropriate. We are making changes in gitlab#321267 to allow you to have Pipeline must succeed enabled AND still merge your changes when your CI configurations evaluate to an empty pipeline.

Who we are focusing on?

Check out our Ops Section Direction "Who's is it for?" for an in depth look at the our target personas across Ops. For Continuous Integration, our "What's Next & Why" are targeting the following personas, as ranked by priority for support:

  1. Sasha - Software Developer
  2. Devon - DevOps Engineer
  3. Delaney - Development Team Lead

Maturity Plan

Our current maturity is at "Complete" and the next maturity target is "Lovable" (see our definitions of maturity levels). We previously reached "Lovable" in 2017, after being listed a CI Leader. In order to maintain this lead while staying ahead of the changing DevOps landscape needs for stability, performance and quality we need to restablish a strong foundation of the core elements for CI. As such, we are prioritizing bugs and user experience improvements, while continuing to design and validate features for future implementation that move our vision forward. The following investments will be key to moving our maturity forward in the next two quarters of 2021:

These investments will lay the ground work to deliver on the top vision items in our second half of 2021 (see Epic#4794) which involve features under these key areas:

Competitive Landscape

The majority of CI market conversation is between us, Jenkins, and GitHub Actions at this point. Atlassian has built BitBucket Pipelines, a more modernized version of Bamboo, which is still in the early stages. Microsoft is maintaining (at least for now) Azure DevOps at the same time as GitHub. CodeFresh and CircleCI have both released container-based plugin model, similar to GitHub Actions. CircleCI in particular is known for very fast startup times and we're looking to ensure we keep up or get even faster. Jenkins is largely seen as a legacy tool, and most people we speak with are interested in moving off to something more modern. We are addressing this with our Jenkins Importer category which is designed to make this as easy as possible.

From GitHub's 2021 Roadmap, we are seeing GitLab-reminiscent features which include Auto-merge, akin to Merge Trains with a fit-finish that we aim to make easier in gitlab#294169. Also to note is an emphasis on governance and controls with Action Events in Audit Logs, bringing about a sense of integration we are creating with the Compliance group's Audit Events.

Analyst Landscape

There are a few key findings from the Forrester Research analysts on our CI solution. GitLab is seen as capable as the solutions provided by the hyperclouds themselves, and well ahead of other neutral solutions. This can give our users flexibility when it comes to which cloud provider(s) they want to use. We are also seen as the best end to end leader, with other products not keeping up and not providing as comprehensive solutions. What this tells us is that it is important for us to continue to innovate and make it hard or even impossible for competitors to maintain pace.

As such, our path to improving our analyst performance matches our solutions above in terms of staying ahead of our competitors.

Top Customer Success/Sales Issue(s)

The most popular Customer Success issues as determined in FQ1-20 survey of the Technical Account Managers was filtering pipelines by status, branch or trigger source. Also important for the sales team is gitlab#205494 which will allow for easier use of GitLab's security features when not using GitLab's CI.

Top Customer Issue(s)

Our top customer issues (search results) include the following:

Another item with a lot of attention is to normalize job tokens in a more flexible way, so that they can have powerful abilities when needed and still not introduce security risks (gitlab#3559).

We also have a few issues about making variables available before includes are processed, however there is a "chicken and egg" problem here that has been difficult to solve. Child/parent pipelines solves some use cases, but not all, and in the meantime we are continuing the discussion in the issue gitlab#1809. If you're interested in technical discussion around the challenges and want to participate in solving them, please see the conversation here. There are two related epics here, Use a variable inside other variables in .gitlab-ci.yml and Raw (unexpanded) variables MVC

Top Internal Customer Issue(s)

Our top internal customer issues (search results) include the following:

Our top dogfooding issues (search results) are:

Top Vision Item(s)

Looking to the future, we have plans to help you better monitor and understand your pipeline epic#4794. Having details about pipeline activities (such as job duration) will allow you to see and react to what's happening while your pipeline is running. Beyond using data simply for reactive purposes, we have plans for a customizable UI for historical pipelines analytics so you can see the trends that will guide your planning and decision making.

We'd love to create a holistic approach to automatically merging when pipelines succeed via gitlab#8128, which offers great collaboration between Code Review and Continuous Integration.

Even further into the future, we are looking to expand insights and predications of CI use to help you reduce waste in our 3-year vision via gitlab&4793.

Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license