GitHub Actions — Mission
Sections
Reading settings
Natural voice recorded for this course, the same in every browser.
No voice for this language in this browser.
More voices
Code and English terms
Off: the page’s voice reads everything, with no pause between two voices.
No voice for this language in this browser.
More voices
More voices: Microsoft Edge has natural online voices, and Windows (Settings › Time & language › Speech), macOS and Android install others.
Why I’m learning this
Section titled “Why I’m learning this”This site is built, tested and deployed by GitHub Actions: a Pages deployment on every push, and CI that compiles the Rust, Java and C# examples of the courses on Linux, Windows and macOS. I wrote those workflows by copying and adjusting. I want to understand what each line does, why a run fails, and how to make it fast and safe.
Who this course is for
Section titled “Who this course is for”You know how to build and test a .NET or Java project from the command line (dotnet test, mvn verify), and you know Git. You may have used another CI system — Azure Pipelines, Jenkins, GitLab CI — but that isn’t required.
By the end of this course, I will be able to
Section titled “By the end of this course, I will be able to”- read any workflow file and say when it runs, where, and in what order;
- build and test .NET and Java on three operating systems with a matrix and caches;
- choose the right triggers and filters, and avoid runs that pile up or never start;
- pass data between steps and jobs, and control what happens after a failure;
- reuse workflows and actions instead of copying them;
- secure a workflow: token permissions, secrets, pinned actions, OIDC;
- deploy a static site to GitHub Pages;
- diagnose a failing run from its logs.
Outline
Section titled “Outline”| # | Lesson | If you know Azure Pipelines |
|---|---|---|
| 1 | First workflow | pipeline, stage, job, step, agent |
| 2 | Build and test .NET and Java | strategy: matrix, UseDotNet@2, Cache@2 |
| 3 | Triggers, filters and concurrency | trigger, pr, schedules, parameters |
| 4 | Expressions, contexts and outputs | $[ ], variables, output variables, condition |
| 5 | Caches and artifacts | Cache@2, PublishPipelineArtifact@1 |
| 6 | Reusable workflows and composite actions | step, job and stage templates |
| 7 | Security: permissions, secrets, pinning, OIDC | service connections, workload identity federation |
| 8 | Deploying to GitHub Pages | environments, approvals |
| 9 | Debugging runs | system.debug, diagnostic logs, retry failed jobs |
| 10 | Writing your own action | custom tasks, container jobs |
| — | Journal |
Resources
Section titled “Resources”- GitHub Actions documentation
- Workflow syntax reference
- Events that trigger workflows
- GitHub CLI manual:
gh run - Runner images: what is installed on
ubuntu-latest,windows-latest,macos-latest