Guide
Domain 1: Author and maintain workflows (40% of exam)¶
Work with events that trigger workflows¶
- Configure workflows to run for one or more events
- Configure workflows to run for scheduled events
- Configure workflows to run for manual events
- Configure workflows to run for webhook events (i.e. check_run, check_suite, deployment, etc.)
- Demonstrate a GitHub event to trigger a workflow based on a practical use case
Use the components of a workflow¶
- Identify the correct syntax for workflow jobs (i.e. indentation and encapsulation of parts of the workflow)
- Use job steps for actions and shell commands
- Use conditional keywords for steps
- Describe how actions, workflows, jobs, steps, runs, and the marketplace work together
- Identify scenarios suited for using GitHub-hosted and self-hosted runners
- Implement workflow commands as a run step to communicate with the runner
- Demonstrate the use of dependent jobs
Use encrypted secrets and environment variables as part of a workflow¶
- Use encrypted secrets to store sensitive information
- Identify the available default environment variables during the construction of the workflow
- Identify the location to set custom environment variables in a workflow
- Identify when to use the GITHUB_TOKEN secret
- Demonstrate how to use workflow commands to set environment variables
Create a workflow for a particular purpose¶
- Add a script to a workflow
- Demonstrate how to publish to GitHub Packages using a workflow
- Demonstrate how to publish to GitHub Container Registry using a workflow
- Use database and service containers in a GitHub Actions workflow
- Use labels to route workflows to specific runners
- Use CodeQL as a step in a workflow
- Demonstrate how to publish a component as a GitHub release using GitHub Actions
- Deploy a release to a cloud provider using a GitHub Actions workflow
Manage workflow runs¶
- Configure caching of workflow dependencies
- Identify steps to pass data between jobs in a workflow
- Remove workflow artifacts from GitHub
- Add a workflow status badge
- Add environment protections
- Define a matrix of different job configurations
- Implement workflow approval gates
Domain 2: Consume workflows (20% of exam)¶
Interpret the effects of a workflow¶
- Identify the event that triggered a workflow from its effects in a repository, issue, or pull request
- Describe a workflow’s effects from reading its configuration file
- Diagnose a failed workflow run (i.e. using a workflow run history and its logs, determine why a workflow run may have failed)
- Identify ways to access the workflow logs from the user interface
- Identify ways to access the workflow logs from GitHub’s REST API
- Enable step debug logging in a workflow
- Demonstrate how to use default environment variables in a workflow
- Demonstrate the correct syntax for passing custom environment variables in a workflow step
Locate a workflow, its logs, and artifacts¶
- Describe where to locate a workflow in a repository
- Explain the difference between disabling and deleting of workflows
- Demonstrate how to download workflow artifacts from the user interface
- Describe how to use an organization’s templated workflow
Use actions in a workflow¶
- Define the indicators of what makes a trustworthy action
- Identify an action’s type, inputs, and outputs
- Demonstrate how to use the specific version of an action in a workflow
Domain 3: Author and maintain actions (25% of exam)¶
Use available action types¶
- Identify the type of action required for a given problem (i.e. JavaScript, Docker container, run step)
- Demonstrate how to troubleshoot JavaScript actions
- Demonstrate how to troubleshoot Docker container actions
Describe the components of an action¶
- Identify the files and directory structure needed to create an action
- Identify the metadata and syntax needed to create an action
- Implement workflow commands within an action to communicate with the runner (Note: this includes exit codes)
Distribute an action¶
- Identify how to select an appropriate distribution model for an action (i.e., public, private, marketplace) - [x] Identify the best practices for distributing custom actions
- Demonstrate how to create a release strategy for an action (i.e. versioning)
- Demonstrate how to publish an action to the GitHub marketplace
Domain 4: Manage GitHub Actions in the enterprise (15% of exam)¶
Distribute actions and workflows to the enterprise¶
- Explain reuse templates for actions and workflows
- Define an approach for managing and leveraging reusable components (i.e. repos for storage, naming conventions for files/folders, and plans for ongoing maintenance)
- Define how to distribute actions for an enterprise
- Define how to control access to actions within the enterprise
- Configure organizational use policies for GitHub Actions
Manage runners for the enterprise¶
- Describe the effects of configuring IP allow lists on GitHub-hosted and self-hosted runners
- Describe how to select appropriate runners to support workloads (i.e. using a self-hosted versus GitHub-hosted runner, choosing supported operating systems)
- Explain the difference between GitHub-hosted and self-hosted runners
- Configure self-hosted runners for enterprise use (i.e. including proxies, labels, networking)
- Demonstrate how to manage self-hosted runners using groups (i.e. managing access, moving runners into and between groups)
- Demonstrate how to monitor, troubleshoot, and update self-hosted runners
Manage encrypted secrets in the enterprise¶
- Identify the scope of encrypted secrets
- Demonstrate how to access encrypted secrets within actions and workflows
- Explain how to manage organization-level encrypted secrets
- Explain how to manage repository-level encrypted secrets