Tanuki Racing Application
Main project for all GitLab hands on events, main project here: https://gitlab.com/gitlab-learn-labs/sample-projects/tanuki-racing/-/edit/main/README.md.
This project consists of 5 workshops that can be run synchronously or self-paced, and can be customized on a per-customer basis. Additionally, it contains Golden Demos which model the best practices demonstrated via the hands-on workshops. There is also an AI Sandbox subdirectory in /ai-sandbox which contains sample files that you can use to evaluate the output of GitLab Duo Code Suggestions as well.
Note: Only GitLab employees are permitted to contribute to this project.
GitLab Fundamentals
This workshop introduces participants to the basics of working with GitLab. In this lab, participants will learn how to set up a project, work with GitLab project management tools, deploy basic CI/CD pipelines, and learn about security and compliance features offered in our platform.
Deck | Google Slides
Lab | GitLab Repo
Advanced CI
This workshop focuses on diving deeper with GitLab CI, and teaches core concepts of GitLab CI, including the following topics:
- Sequential/Parallel Execution Order
- Directed Acyclic Graphs (DAGs)
- Caching, Rules-based Job Execution, Failure Handling
- Templates and Artifacts
- Parent-Child Pipelines
Deck | Google Slides
Lab | GitLab Repo
Project Management
This workshop teaches core concepts surrounding Project Management within GitLab. In this session, participants will learn about organizing, tracking and defining work using GitLab Project Management constructs such as Epics, Issues, Roadmaps, Milestones and Iterations. Participants will also learn about using labels to triage and assign work to appropriate teams and stakeholders.
Deck | Google Slides
Lab | GitLab Repo
Security and Compliance
This workshop focuses on GitLab's Security and Compliance featureset, and discusses how GitLab facilitates shifting Security Left, building Compliance Frameworks within GitLab, managing Scan Execution and Result policies, generating SBOMs within GitLab, and managing Audit Events within GitLab.
Deck | Google Slides
Lab | GitLab Repo
GitLab Duo/AI
This workshop focuses on our Generative AI portfolio of features currently offered on GitLab SaaS. In this workshop, participants will get hands-on with GitLab Duo features such as Suggested Reviewers, Code Suggestions, Duo Chat, and Summarize/Resolve this Vulnerability. This workshop is designed to introduce participants to our approach to Generative AI and improve their understanding of how they can utilize our Duo features in their daily workflows.
Deck | Google Slides
Lab | GitLab Repo
Contribution Guidelines
Tanuki Racing is actively maintained by the Demo Architecture and GitLab teams. To get started, click the Request Access button at the top of the page. Once access is granted, you're welcome to contribute to the project by opening a merge request (MR) to address any of the following:
- Fixing a broken pipeline or piece of code
- Adding a new course or improving an existing one
Steps for Contributing
-
Request Access
Click the Request Access button at the top of the repository page. -
Create a Merge Request (MR)
- Address the issue or enhancement in your branch.
- Open an MR describing the changes.
-
Assign the MR
Assign your MR to @lfstucker for review.
Versioning and Automated Release Generation
We use Semantic Release to automate versioning and release generation, following a customized conventional commit specification. This ensures releases are generated automatically based on the type and scope of changes.
Commit Types and Their Impact on Releases
The release process is driven by commit messages structured as per conventional commits, with an added custom content
prefix to address content-related changes.
Supported Commit Types
-
feat
: Adds a new feature (triggers a minor version bump). -
fix
: Fixes a bug (triggers a patch version bump). -
content
: Updates content such as courses, labs, or instructional material (triggers a patch version bump). -
docs
: Updates or improves documentation. -
chore
,style
,refactor
,perf
,test
: Used for internal changes and hidden from release notes.
Commit Format
A conventional commit follows this structure:
<type>(<scope>): <short summary>
-
<type>
: The type of change (e.g.,feat
,fix
,content
,docs
). -
<scope>
(optional): The area of the project affected (e.g.,course
,pipeline
,docs
). -
<short summary>
: A brief description of the change.
Examples
feat(course): add advanced GitLab CI course
fix(pipeline): resolve Docker build issue
content(course): update lab instructions for GitLab basics
docs: clarify contribution guidelines
Semantic Release Configuration
We’ve configured Semantic Release with the following key features:
-
Automated Versioning
Semantic Release analyzes commit messages to determine the appropriate version bump:- Major: Not configured for automatic bumps (requires manual intervention).
-
Minor: Triggered by
feat
. -
Patch: Triggered by
fix
orcontent
.
-
Changelog Updates
Updates theCHANGELOG.md
file with detailed release notes based on commit types. -
GitLab Integration
Automatically publishes releases and attaches assets (e.g.,CHANGELOG.md
) to the GitLab release page. -
Custom Prefix for Content
Thecontent
commit type ensures updates to educational or instructional material are clearly tracked and included in release notes under "Content Updates."
Note: Only GitLab employees are permitted to contribute to this project.