Comparison of GitHub Actions with competitors
Deep dive into workflow syntax, triggers, and job configuration
Explore matrices, reusable workflows, and composite actions
•Runner Types and Execution Environments
•Persisting Build Outputs with Artifacts
•Controlling GitHub Permissions
•Authenticating to Third-Party Systems
•Matrix Strategies, Conditionals, and Concurrency Controls
Discover and integrate community actions from the GitHub Marketplace
Build custom JavaScript and Docker actions from scratch
•JavaScript and TypeScript Actions
Optimize logs, secrets, environments, and permissions for teams
•Developer Experience (Actions)
Harden workflows with security, reliability, and cost-saving techniques
•Maintainable Workflow Patterns
Apply course concepts by automating a real-world deployment pipeline
Speed alone is not enough. As your automation estate grows, the configuration needs to be easy to reason about and safe to evolve. This lesson highlights patterns that keep workflows approachable for both new contributors and long-time maintainers.
Choose a single entry point for each service (for example Task
, make
, or
Bazel) and expose a predictable set of commands such as install
, test
, build
, and dev
. When
every repository follows the same contract, your GitHub Actions can call those targets without knowing
internal details, and developers onboard more quickly.
Reuse composite actions and reusable workflows instead of copying YAML between projects. This keeps behavior consistent and makes it obvious where to update a shared behavior. The decision flowcharts from earlier modules apply here: start with marketplace actions, use inline shell for simple logic, graduate to a task runner or custom action only when the complexity demands it.
Pair your CI configuration with local tooling (as shown in module 8) so developers can run the exact same commands before pushing. This shortens the fix/verify loop and reduces noisy workflow runs.