CertGrid
GitHub Study Guide

GitHub Actions Study Guide

The GitHub Actions certification validates your ability to build and manage CI/CD automation using GitHub Actions, covering workflow syntax and events, jobs/steps/runners, secrets and security, and reuse/optimization patterns. It is aimed at developers, DevOps engineers, and platform engineers who author and maintain GitHub-native automation. The exam is 832-question-pool based with a passing score of 700 and a 120-minute duration.

Domain 1: Workflows and Events

Key concepts you must know · 227 practice questions

Domain 2: Jobs, Steps, and Runners

Key concepts you must know · 235 practice questions

Domain 3: Secrets and Security

Key concepts you must know · 188 practice questions

Domain 4: Reuse and Optimization

Key concepts you must know · 182 practice questions

GitHub Actions exam tips

Study guide FAQ

What is the difference between $GITHUB_ENV and $GITHUB_OUTPUT?

Writing key=value to $GITHUB_ENV sets an environment variable that subsequent steps in the same job can read as $key. Writing to $GITHUB_OUTPUT defines a named step output read elsewhere as steps.<id>.outputs.<key>; to share across jobs you must also surface it as a job output and consume it via needs.<id>.outputs.

Why pin actions to a commit SHA instead of a tag like v4?

Tags are mutable, so a maintainer (or a compromised account) can move v4 to point at new, possibly malicious code. A full-length commit SHA is immutable, guaranteeing the exact code you reviewed runs every time - a key supply-chain safeguard. Use Dependabot to bump pinned SHAs deliberately.

When should I use OIDC instead of storing cloud credentials as secrets?

Use OIDC whenever you authenticate to a cloud provider (AWS, Azure, GCP). GitHub issues a short-lived, signed identity token per run that the cloud validates against a trust relationship, letting the job assume a role with temporary credentials. This removes long-lived keys from secrets, shrinking the blast radius if a workflow is compromised. It requires permissions: id-token: write.

Why is pull_request_target risky and what is the safe alternative?

pull_request_target runs in the base repository context with a privileged GITHUB_TOKEN and access to secrets. If it checks out and executes the forked PR's code, an untrusted contributor can run arbitrary commands with those privileges. The safe pattern is to validate untrusted code under the plain pull_request event (which has no secrets) and gate any secret-using or deploy steps behind a manually approved environment or a maintainer-triggered workflow.