« Blog Home

Case Study: Thomson Reuters shares their development process combining GitLab, Jenkins and Slack

Last week we hosted a GitLab event for R&D and DevOps managers. A satisfied GitLab user, Matan Keidar of Thomson Reuters, presented his work at the company, including GitLab, Jenkins and Slack.

After receiving good feedback on this story, we decided to publish it here on the blog (text summary and a video recording).

The spokesman: Matan Keidar, a software engineer in Thomson Reuters. The company develops Natural Language Processing (NLP) and Knowledge-Graph Algorithms and Technologies.


(viewing time: 9 min.)

 

How Thomson Reuters uses GitLab:

  • Using the source /version control system on top of Git
  • Using Merge Request and Code Review capabilities
  • Issue Tracking for managing development tasks and bugs
  • Using the Issue Board to easily see the status of each task
    GitLab Issue Board at Thomson Reuters
  • Integration with Jenkins to implement CI/CD as part of the development process
  • Integration with Slack to get updates to a shared chat room

 

Work Process:

  1. A user opens a new issue (a development task or a bug discovered)
  2. A developer takes on the implementation of the issue (i.e. developing the task or fixing the bug)
  3. When the developer feels that the code is sufficiently mature, she opens a “Merge Request”
  4. Someone else from the team (or more than one) reviews the new code.
    At the same time, Jenkins runs simultaneously (after the user opened the merge request) and executes builds and tests.
  5. If the code passes the tests of the other team members and also passes Jenkins’ tests, the new code is moderated to the master branch.

 

Remarks:

  • Code is merged back to upstream branch only after passing all tests successfully.
  • Jenkins begins to run the moment they open a new Merge Request (it runs for each Merge Request separately)
  • Jenkins is one of the team members
  • Jenkins deploys to the newly merged code (once approved and merged)
  • GitLab bot (as defined in Slack – as seen in the screenshot below) is considered a team member and reports on:
    • Opening a new issue
    • New Merge Requests
    • Merge Request Approved (and merged)
      gitlab-slack-bot-tr
  • Merge Request is the equivalent of the Pull Request (for those familiar with GitHub and Bitbucket)
  • Alternatively, you should know that GitLab also comes with a built-in CI/CD tools and internal ChatOp tools (named Mattermost), which can be used as an integral part of the system.
  • Matan said that when they started use Jenkins and Slack, GitLab CI and Mattermost were not part of GitLab yet.

 

Popular features:

  • The option to produce and use ready templates when opening an issue.They can be easily combined with markdown, making the text more readable
  • Convenient Issue Tracking tool that comes built into GitLab
  • The team members are more aware of what happens in the project – even at the code level – thanks to the Merge Requests.Each new piece of code goes through another pair of eyes.

 

In conclusion, how GitLab helped at Thomson Reuters:

  • More knowledge sharing among development team members
  • More quality code (merged after automated testing + code review of team members)
  • Issues linked to MR (by commits).This enables the connection between the business and the management of the project
  • The development process has become more orderly
  • Greater awareness of the state of the project at any given moment

[chimpy_form forms=”2″]

 

Related links: