Two-Day Hands-on GitLab Course: SVN Migration, CI/CD, and Operations

Designed a two-day, 14-hour hands-on course on SVN migration and GitLab CI/CD for a research organization that had been using SVN. Built the lecture materials and a dedicated lab environment, and delivered the course as lead instructor.

Curriculum

Day 1: GitLab Foundations and SVN Migration

  • Git and GitLab essentials for SVN users: concept mapping, clone, commit, and push, branches, and the basic merge request flow
  • Collaboration workflow: merge-request-centered collaboration and branching strategy, pair code review, protected branches, and issue boards
  • Migrating from SVN to GitLab: what to decide before migrating (history scope, branch and tag mapping, cutover approach), author mapping, post-migration history checks, and a demo of splitting large repositories and LFS
  • Organization structure and accounts: group and subgroup design, role-based permissions and inheritance, membership expiration, and how SSO login integration works

Day 2: CI/CD in Practice and Operations

  • First CI/CD pipeline: how stages, jobs, and runners work, writing .gitlab-ci.yml, separating build and test, artifacts and caching, and tracing failures through job logs
  • Production-style pipelines: merge request test gates, per-environment and manual deployments, scheduled pipelines, documentation publishing with GitLab Pages, and a team mini-project
  • Enterprise operations: hands-on runner registration and tag usage on students' laptops, plus demos of backup, patch upgrades, and audit logs

Course Material Preview

Day 1: The basic flow, from terminal to branch graph
Day 1: Large files go to LFS, history keeps only pointers
Day 2: Using needs to wait only for the jobs that matter
Day 2: Artifacts go to the next job, caches to the next run
Day 2: Automatic dev deploys, manual staging, and Pages docs
Day 1 lecture and hands-on practice
Helping a participant at their desk