Skip to content
learn

GitHub Actions — Mission

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.

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.
# 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