TL;DR — Dive into GitHub + Actions: PR lifecycle, branch protection, workflow YAML, secrets, environments, and debugging. Start with
START-HERE.md, then work through the three modules in order.
**Duration:**3.5 hours | Format: Hands-on | Audience: Developers transitioning from GitLab & Jenkins
→ START-HERE.md — clone the repo, install gh, run the sample app. Do this before the session.
| Topic | Guide |
|---|---|
| GitLab → GitHub terminology mapping | gitlab-github-mapping.md |
| PR lifecycle: create, review, approve, merge | pr-lifecycle.md |
| Draft PRs & PR templates | draft-prs-and-templates.md |
| GitHub CLI for daily workflows | gh-cli-daily-workflows.md |
| Branch protection rules | branch-protection-guide.md |
| Repository lifecycle: CODEOWNERS, merge controls, metadata | repository-lifecycle.md |
| Quick UI flows: search, blame, compare | quick-ui-flows.md |
| Hands-on exercise | exercises/exercise.md |
| Solution | solutions/01-pr-workflow/ |
| Topic | Guide |
|---|---|
| GitLab CI & Jenkins → GitHub Actions comparison | jenkins-github-actions-comparison.md |
| Core concepts: triggers, jobs, steps, runners | core-concepts.md |
| Secrets, variables & environments | secrets-variables-environments.md |
| Environments: approvals & protection rules | environments-and-approvals.md |
| Job orchestration: needs, parallel, conditional execution | job-orchestration.md |
| Passing data between steps and jobs | passing-data.md |
| Reusable workflows & composite actions | reusable-workflows.md |
| Performance & scale: caching & matrix builds | caching-and-matrix.md |
| Security best practices & SHA pinning | security-best-practices.md |
GITHUB_TOKEN & least-privilege permissions |
10-permissions.md |
| Runners: hosted vs self-hosted | runners-guide.md |
Manual triggers (workflow_dispatch) |
manual-triggers.md |
| Hands-on exercise | exercises/exercise.md |
| Solution | solutions/02-ci-workflow/ |
| Bonus exercise: release pipeline (dispatch + reusable + matrix + composite + uses) | exercises/exercise-3.md |
| Solution | solutions/03-release-workflow/ |
| Topic | Guide |
|---|---|
| Monitoring runs, logs & re-running jobs | monitoring-and-reruns.md |
| Artifacts: upload, download, share | artifacts.md |
| Debugging: step debug, annotations, summaries | debugging-guide.md |
| Hands-on exercise | exercises/exercise.md |
| Solution | solutions/03-debugging/ |
These are read-only teaching examples — they live under modules/ so they don't auto-run. The only workflow GitHub actually executes is ci.yml (the exercise solution running on this repo).
| Workflow | What it demonstrates |
|---|---|
| 01-basic-ci.yml | Full CI pipeline: lint → test (matrix) → build → deploy |
| 02-matrix-build.yml | Cross-OS, multi-Python matrix with exclude: and include: |
| 02-matrix-build-advanced.yml | Advanced matrix patterns: include-only and dynamic matrix from job output |
| 03-reusable-workflow.yml | Callable deploy workflow (the callee) — inputs, secrets, outputs |
| 03-reusable-workflow-caller.yml | How to call the reusable workflow above (build → deploy staging → prod) |
| 04-manual-trigger.yml | workflow_dispatch with typed inputs and validation |
💡 To run any of these for real, copy it into your own repo's
.github/workflows/directory.
| Quick reference card | cheatsheet.md |
| Instructor timing & demo script | INSTRUCTOR-GUIDE.md |
| GitHub Docs | GitHub CLI Manual |