Newer
Older
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](https://drive.google.com/drive/search?q=title:%22MAIN%20COPY%20GitLab%20Basics%20Workshop%22%20parent:1L_kd6QudSWcvAKDM-h6oPvvC6LiNj_ER)\
[Lab | GitLab Repo](https://gitlab.com/gitlab-learn-labs/sample-projects/tanuki-racing/-/tree/main/Courses/Workshops/Basics?ref_type=heads)
##### 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](https://drive.google.com/drive/search?q=title:%22MAIN%20COPY%20Tanuki%20Racing%20CI%20Workshop%22%20parent:1L_kd6QudSWcvAKDM-h6oPvvC6LiNj_ER)\
[Lab | GitLab Repo](https://gitlab.com/gitlab-learn-labs/sample-projects/tanuki-racing/-/tree/main/Courses/Workshops/CICD?ref_type=heads)
##### 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](https://drive.google.com/drive/search?q=title:%22MAIN%20COPY%20Tanuki%20Racing%20PM%20Workshop%22%20parent:1L_kd6QudSWcvAKDM-h6oPvvC6LiNj_ER)\
[Lab | GitLab Repo](https://gitlab.com/gitlab-learn-labs/sample-projects/tanuki-racing/-/tree/main/Courses/Workshops/Project_Management?ref_type=heads)
##### 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](https://drive.google.com/drive/search?q=title:%22MAIN%20COPY%20Tanuki%20Racing%20Security%20%26%20Compliance%20Workshop%22%20parent:1L_kd6QudSWcvAKDM-h6oPvvC6LiNj_ER)\
[Lab | GitLab Repo](https://gitlab.com/gitlab-learn-labs/sample-projects/tanuki-racing/-/tree/main/Courses/Workshops/Security?ref_type=heads)
##### 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](https://drive.google.com/drive/search?q=title:%22MAIN%20COPY%20Tanuki%20Racing%20AI%20Workshop%22%20parent:1L_kd6QudSWcvAKDM-h6oPvvC6LiNj_ER)\
[Lab | GitLab Repo](https://gitlab.com/gitlab-learn-labs/sample-projects/tanuki-racing/-/tree/main/Courses/Workshops/AI?ref_type=heads)
## Contribution Guidelines
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
**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.