Domain 4: Modern Development (13%) โ
GitHub Actions โ
GitHub Actions is GitHub's built-in CI/CD and automation platform. It runs workflows in response to events.
Core Concepts โ
| Term | Definition |
|---|---|
| Workflow | A YAML file in .github/workflows/ that defines automation |
| Event | A trigger (push, pull_request, schedule, etc.) |
| Job | A set of steps that run on a runner |
| Step | An individual command or action within a job |
| Action | A reusable unit of automation (from Marketplace or custom) |
| Runner | The server that executes jobs (GitHub-hosted or self-hosted) |
Workflow Structure โ
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
run: npm testCommon Triggers (Events) โ
| Event | Fires when |
|---|---|
push | Code is pushed to a branch |
pull_request | PR is opened, updated, or merged |
schedule | Cron-based scheduled time |
workflow_dispatch | Manually triggered via UI or API |
release | A release is published |
issues | An issue is opened, edited, closed |
GitHub-Hosted vs Self-Hosted Runners โ
| Type | Description | Use case |
|---|---|---|
| GitHub-hosted | Ubuntu, Windows, macOS VMs managed by GitHub | General purpose, free tier available |
| Self-hosted | Your own machine/server registers as a runner | Custom hardware, private networks, compliance |
Exam Tip
For GH-900, focus on what Actions IS and what it can DO โ not deep workflow YAML syntax. Key points: it's event-driven, YAML-based, lives in .github/workflows/, and uses the Actions Marketplace.
GitHub Codespaces โ
Codespaces is a cloud-hosted development environment โ a full VM with VS Code running in the browser or connected to your local VS Code.
Key Features โ
- Pre-configured via devcontainer.json (in
.devcontainer/folder) - Runs on GitHub-managed cloud VMs
- Has a full terminal, file system, and can run servers
- Billed per compute-hour (free tier for personal accounts)
- Codespace state persists between sessions (up to 30 days inactive)
devcontainer.json โ
Defines the Codespace environment:
{
"name": "Node.js Dev",
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",
"postCreateCommand": "npm install",
"extensions": ["dbaeumer.vscode-eslint"]
}Codespace Lifecycle โ
Create โ Running โ Stopped (idle) โ Deleted- Idle timeout: default 30 minutes (configurable)
- Max retention: 30 days after last use
github.dev Editor โ
github.dev is a lightweight, browser-based code editor โ essentially VS Code in the browser, but with no compute.
How to open โ
- Press
.(period) on any GitHub repo page - Change
.comto.devin the URL
Limitations vs Codespaces โ
| Feature | GitHub Codespaces | github.dev |
|---|---|---|
| Primary Use | Full development (running, building, and debugging code). | Quick edits and browsing files. |
| Environment | A dedicated, customizable virtual machine (VM) and Docker container hosted in the cloud. | Runs entirely in your browser's sandbox; no cloud compute is attached. |
| Terminal Access | Yes, full integrated terminal access is available. | No terminal access. |
| Code Execution | Yes, you can run and debug your application with the power of the cloud VM. | No, you cannot build or run code within the environment itself. |
| Cost | Billed per hour of use and per GB of storage, with a free monthly quota for personal accounts. | Entirely free for everyone on GitHub.com. |
| Setup Time | Takes a few moments to spin up the VM and configure the container based on a devcontainer.json file. | Opens instantly with a single key press (press . on any GitHub repository page). |
| Extensions | Supports most extensions available from the Visual Studio Code Marketplace. | Only supports a subset of "web extensions" that can run in the browser. |
Exam Trap
This is the most tested comparison in Domain 4. Remember: github.dev = editor only, no terminal. If a question mentions running tests, starting a server, or using a terminal โ the answer is Codespaces.
GitHub Copilot โ
GitHub Copilot is an AI pair programmer that provides code suggestions inline in your editor.
What Copilot Does โ
- Autocompletes code as you type
- Suggests entire functions based on comments or context
- Supports multiple languages (Python, JavaScript, TypeScript, Go, Ruby, etc.)
- Available in VS Code, JetBrains IDEs, Neovim, and github.dev
Copilot Tiers (GH-900 level awareness) โ
| Tier | For |
|---|---|
| Copilot Individual | Personal accounts |
| Copilot Business | Organizations with policy controls |
| Copilot Enterprise | Org-wide with custom org knowledge |
Exam Tip
GH-900 tests basic awareness: Copilot is AI-powered, subscription-based, and works in the IDE as a code suggestion tool. Deep Copilot architecture questions are for GH-300.
GitHub Packages โ
GitHub Packages is a package registry integrated with GitHub โ store and share packages alongside your code.
Supported package types:
- npm (JavaScript)
- Maven / Gradle (Java)
- NuGet (.NET)
- RubyGems (Ruby)
- Docker / OCI container images
Packages are scoped to a user or organization and can be public or private. GitHub Actions can publish and consume packages automatically.
CI/CD Concepts โ
| Term | Meaning |
|---|---|
| CI (Continuous Integration) | Automatically build and test code on every push |
| CD (Continuous Delivery) | Automatically prepare code for release after CI passes |
| CD (Continuous Deployment) | Automatically deploy to production after CI passes |
GitHub Actions is GitHub's native CI/CD solution. Key benefits:
- No external CI server needed
- Runs on every push/PR by default
- Status checks can block PR merges until they pass
Status Checks
A required status check in branch protection rules means a PR cannot be merged until the check (e.g., a CI workflow) passes. This is how Actions integrates with code review workflows.
Domain 4: Modern Development
What is the difference between github.dev and Codespaces?
(Click to reveal)