GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico

Page created by Nicole Jacobs
 
CONTINUE READING
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
GitLab at DESY

Git Services User Meeting

Elena Gapon, DESY IT
31st August 2021
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
Topics Overview
                                   ◦ about GitLab Inc.

                                   ◦ DESY service GitLab

                                   ◦ project structure in GitLab

                                   ◦ Issues and Wiki

                                   ◦ container and package registry

                                   ◦ GitLab CI/CD service

                                   ◦ integration with other tools

                                   ◦ migrating repositories from Stash to GitLab

                                   ◦ last notes and outlook

      Questions and comments: https://codimd.desy.de/jt-azS0gQ9q5NAN1xfkpaw#
 GitLab at DESY | 31 August 2021                                                   page 2/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
About GitLab Inc.
                                                                Releases and Development
 ◦ all-remote company, across 67 countries                      ◦ monthly releases on 22nd
                                                                ◦ public release kick-offs
 ◦ “run“ by GitLab Handbook, 8k+ pages
                                                                ◦ an open source development process
 ◦ comprehensive documentation

                                                                Community
 Business model and Versions                                    ◦ > 3,000 contributiors, ~ 200 contributions/month

 ◦ community edition and enterprise paid tiers                  ◦ multiple communication channels (Youtube, Gitter,...

 ◦ self-managed and SaaS                                           meetups, feedback links)

                                                                                                  current
                                                                                                  1.429 employees

       2011                         2014                    2016                                  ~ 30 m registered users

       first commit                 GitLab Inc.             140 employees                         ~ 100,000 organisations
                   2012                           2015                           2018                                         ?

                      GitLab CI                   9 employees                    352 employees                                IPO

                      GitLab.com

  GitLab at DESY | 31 August 2021                                                                                        page 3/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
GitLab at DESY
                                                  ◦ October 2020 - started as pilot

                                                  ◦ since June 2021 - in production

 ◦ https://gitlab.desy.de

 ◦ Login with DESY account or via Helmholtz AAI
                                                  ◦ ~ two updates / month, with short downtime

                                                  ◦ Community Edition

  GitLab at DESY | 31 August 2021                                                                page 4/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
Project in GitLab

                            ◦ Project is created in a namespace
                                                                                                           This is different in
                            ◦ Namespace is a group, a subgroup or a user name                              Bitbucket/Stash:
                            ◦ Each repository is created in its own project                                each project in Bitbucket can
                                                                                                           contain multiple repositories

                            Configuration options
                            ◦ Project visibility public, private, internal

                            ◦ Member roles guests, reporters, developers, maintainers, owners

                            ◦ Repository default and protected branches, push restrictions, merge options

                            ◦ Integration chats, notifications, 3rd party wiki, issue tracker, web hooks

  GitLab at DESY | 31 August 2021                                                                                                   page 5/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
Issues

                                   ◦ Labels

                                   ◦ Cross-linking

                                     
                                         merge requests, commits, other issues
                                   ◦ Multiple participants

                                   ◦ Multiple views on an issue list

                                   ◦ Add a Zoom meeting

                                   ◦ CSV export and import

 GitLab at DESY | 31 August 2021                                       page 6/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
Issue Boards

 GitLab at DESY | 31 August 2021   page 7/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
Wiki
◦ Mark down, incl.

  
       Math with KaTeX
  
       Diagramms and workflows

◦ WYSIWYG content editor

◦ RDoc, AsciiDoc, and Org

◦ Create: locally or in the web interface

◦ Cross-linking: merge requests, commits, issues

◦ Sidebar Navigation, TOC
      GitLab at DESY | 31 August 2021              page 8/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
Package Registry
◦ Package types:

  
       npm, Maven, PyPi, Ruby germs, NuGet, Conan, Composer
  
       Helm charts (Kubernetes applications)
  
       Generic packages
◦ public or private, protected by access rules

◦ Create and upload packages from the local machine, e.g.

◦ … or use GitLab CI/CD to build packages

      GitLab at DESY | 31 August 2021                         page 9/17
GitLab at DESY Git Services User Meeting - Elena Gapon, DESY IT 31st August 2021 - DESY Indico
GitLab CI/CD
What is Continuous Integration/Delivery (CI/CD)?

"Continuous Integration is the practice of integrating code into a shared repository and
building/testing each change automatically, as early as possible - usually several times a day."

"Continuous Delivery adds that the software can be released to production at any time, often by
automatically pushing changes to a staging system."

    GitLab at DESY | 31 August 2021                                                                page 10/17
GitLab CI/CD

                                                               pipelines

                                   a pipeline with five jobs

      ◦ automate recurring tasks

      ◦ run scripts in a repeatable way

      ◦ version control for build scenarios

      ◦ overview of the build history

      ◦ publish and share build artifacts

 GitLab at DESY | 31 August 2021
                                                                           job log   page 11/17
Container Registry
◦ public or private registry for docker images

◦ create and upload an image from the local machine, e.g.

◦ … or use GitLab CI/CD to build container images

                                                        [follow-up]

    GitLab at DESY | 31 August 2021                                   page 12/17
Migration from Stash to GitLab

UI

1) create a personal access token in Stash with read permission

2) optionally: create a group where the repositories will be imported to

3) new project > import project > Bitbucket server

API

     list repositories in Bitbucket: GET /rest/api/1.0/projects/{projectKey}/repos

     import into GitLab: POST api/v4/import/bitbucket_server

     → https://gitlab.desy.de/gitlab/migration-bitbucket

      GitLab at DESY | 31 August 2021                                                page 13/17
Integration with Other Tools

 ◦ Build:
                                                                       ◦ Wiki
    
        Jenkins, Buildkite, TeamCity, Drone, Bamboo

                                                                       ◦ Web Hooks on events:
 ◦ Issue Tracking:
                                                                         
                                                                             push, merge request, release
    
        Bugzilla, EWM, Redmine, YouTrack, Jira
                                                                         
                                                                             job, pipeline, deployment
                                                                         
                                                                             issue, Wiki page, comments
 ◦ Notifications:
    
        Campfire, Discord, Google Chat, Mattermost, MS Teams, Slack,
        Unity Circuit, Webex Teams
                                                                       ◦ REST API resources

    
        Pushover (e.g. on smartphone)
                                                                         
                                                                             access to ~every entity in GitLab

    
        Emails of push and pipeline status changes

  GitLab at DESY | 31 August 2021                                                                                page 14/17
Questions we received
◦ Best practices – don’t commit large or binary files → use LFS

◦ Git repository – for code not for data

◦ GitLab Pages – pilot available

◦ Singularity registry – use build artifacts as workaround

Roadmap
◦ Sync GitLab groups with DESY LDAP group

◦ Support CI/CD jobs on Windows

◦ Make CVMFS available in CI/CD jobs

◦ On-going user documentation enhancement

    GitLab at DESY | 31 August 2021                               page 15/17
Contact and Related Links
Contact

gitlab.service@desy.de

Mattermost DESY / GitLab

Links
User documentation           https://gitlab.desy.de/documentation/wiki/-/wikis/User
Company                      https://about.gitlab.com/company/
GitLab DevOps Tools          https://about.gitlab.com/devops-tools/
Project members' roles       https://docs.gitlab.com/ee/user/permissions.html#project-members-permissions
Packages                     https://docs.gitlab.com/ee/user/packages/pypi_repository/
                             https://docs.gitlab.com/ee/user/packages/workflows/project_registry.html
Container visibility         https://docs.gitlab.com/ee/user/packages/container_registry/index.html#container-registry-visibility-permissions
Job artifacts                https://docs.gitlab.com/ee/api/job_artifacts.html#get-job-artifacts
Pipelines                    https://docs.gitlab.com/ee/ci/pipelines/
Learning Paths               https://about.gitlab.com/learn/
ci/cd pipelines              https://www.youtube.com/watch?v=Jav4vbUrqII
(the best introduction)      https://about.gitlab.com/blog/2020/12/10/basics-of-gitlab-ci-updated/
Singularity with GitLab      https://vsoch.github.io/2018/gitlab-singularity-ci/

     GitLab at DESY | 31 August 2021                                                                                                            page 16/17
Thank you

 GitLab at DESY | 31 August 2021   page 17/17
You can also read