GitLab at DESY
Git Services User Meeting
Elena Gapon, DESY IT 31st August 2021 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 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,... meetups, feedback links) ◦ self-managed and SaaS 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
◦ 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 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 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 Issue Boards
GitLab at DESY | 31 August 2021 page 7/17 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 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 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
job log GitLab at DESY | 31 August 2021 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 [email protected]
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