GitHub Actions is a CI/CD and workflow automation platform built directly into GitHub. It allows you to run jobs in response to repository events using workflows that are defined in YAML files. These workflow files use either the .yaml or .yml extension and live under the .github/workflows/ directory inside your repository, where GitHub automatically discovers them.
At the top of the YAML hierarchy sits the workflow, which is an automated, configurable process that runs one or more jobs whenever a triggering event occurs. A job is a set of steps that all execute on the same runner, and by default jobs run in parallel with one another. Each step inside a job is either a shell command declared with run: or an invocation of an action declared with uses:. The runner itself is the server that executes the job; GitHub-hosted runners come in Ubuntu, Windows, and macOS flavors, while self-hosted runners are machines that you provision and register with your repository or organization.
The simplest workflow therefore has the shape of a workflow block with an on: trigger clause, a jobs: section listing one or more jobs, and within each job a sequence of steps that either run commands or invoke actions such as actions/checkout@v4, which checks your repository code out onto the runner so subsequent steps can operate on it.