Skip to content
Snippets Groups Projects

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

  1. Request Access
    Click the Request Access button at the top of the repository page.

  2. Create a Merge Request (MR)

    • Address the issue or enhancement in your branch.
    • Open an MR describing the changes.
  3. 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:

  1. 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 or content.
  2. Changelog Updates
    Updates the CHANGELOG.md file with detailed release notes based on commit types.

  3. GitLab Integration
    Automatically publishes releases and attaches assets (e.g., CHANGELOG.md) to the GitLab release page.

  4. Custom Prefix for Content
    The content 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.