How to Pass GitHub Actions Certification Exam: My Own Certification Journey
Earlier this year (2024), GitHub shared some exciting news: certifications that were once only for their employees and partners are now open to everyone worldwide!
These certifications cover different skills and knowledge areas related to GitHub:
- GitHub Foundations
- GitHub Actions
- GitHub Advanced Security
- GitHub Administration
In this blog post, I’ll be sharing my experience with the GitHub Actions exam, detailing how to schedule, prepare for, and successfully pass it.
About GitHub Actions Certification
According to GitHub, This exam is designed for DevOps engineers, software developers, and IT professionals with intermediate level experience in GitHub Actions, including workflow creation, automation, and CI/CD pipeline management.
It covers the following domains:
- Domain 1: Author and maintain workflows (40%)
- Domain 2: Consume workflows (20%)
- Domain 3: Author and maintain actions (25%)
- Domain 4: Manage GitHub Actions for the enterprise (15%)
For more details, checkout Study Guide for GitHub Actions.
Scheduling the Exam
To register and schedule the exam, visit the Official Exam Website and log in with your GitHub account. Then, select the GitHub Actions Exam.
Follow these registration steps:
- Choose your test option (Online or On-site).
- Provide your candidate details.
- Select your desired date and time for the exam.
- Complete the payment process. The exam costs $99.
- Review your registration details.
Once you’ve completed these steps, you’ll receive an email from PSI Online containing your exam date, time, and important instructions. Make sure to read through them carefully.
Preparing for the Exam
Preparation is key for exams and certifications. It includes planning, understanding the exam content, and dedicating focused study time. Remember to Avoid Relying on Exam Dumps, as they don’t guarantee success. Embrace the process of studying and expanding your knowledge.
For effective preparation, leverage resources such as the GitHub Actions learning path on MS Learn and the official GitHub Docs, along with other learning and training sources.
Personally, I found both the MS Learning path and GitHub documentation to be valuable resources for my preparation.
For quick reference, below is a list of exam topics along with the corresponding links to relevant GitHub documentation:
Domain 1: Introduction to Git and GitHub
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
Use the components of a workflow
- Describe how actions, workflows, jobs, steps, runs, and the marketplace work together
- Identify the correct syntax for workflow jobs
- Use job steps for actions and shell commands
- Use conditional keywords for steps
- GitHub-hosted runners
- GitHub-self-hosted runners
- 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
- 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
Interpret the effects of a workflow
- Diagnose a failed workflow run
- 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
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
- 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
Use available action types
- Identify the type of action required for a given problem
- Demonstrate how to troubleshoot JavaScript actions
- Demonstrate how to troubleshoot Docker container actions
- Creating a composite action
- Identify the metadata and syntax needed to create an action
Distribute an action
- Demonstrate how to create a release strategy for an action
- Demonstrate how to publish an action to the GitHub marketplace
Domain 4: Manage GitHub Actions in the enterprise
Distribute actions and workflows to the enterprise
- Explain reuse templates for actions and workflows
- Creating workflow templates for your organization
- Define how to distribute actions for an enterprise
- Configure organizational use policies for GitHub Actions
- Disabling or limiting GitHub Actions for your organization
Manage runners for the enterprise
- Describe the effects of configuring IP allow lists on GitHub-hosted and self-hosted runners
- 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
Hands-On
After getting a solid foundation of GitHub Actions, it’s really important to follow it with hands-on exercises.
To help with that, I created the following repository in GitHub that has a collection of GitHub Actions and workflows to demonstrate various features and capabilities of GitHub Actions. It includes examples of workflows, composite actions, Docker-based actions, and JavaScript-based actions.
Check it out: learning-github-actions
Additionally, I’ve written a blog post that outlines a step by step guide to build and deploy an .Net Core application to an Azure App Service using GitHub Actions.
Check it out: GitHub Actions: Deploying .NET to Azure App Service
Taking the Exam (Proctored at Home)
It’s important to sign in up to 30 minutes before your test start time as per the instructions provided when booking your exam. Ensure you adhere to the technical requirements and have a valid, current ID ready. The name on this ID must be in Roman (English) alphabet characters and must match the name used when scheduling the exam.
Make sure to carefully read the instructions sent to you when you booked the exams.
The exam has around 75 questions, and you have 120 minutes to finish it. Once you’re done, you’ll know right away if you passed or failed.
After The Exam
Immediately after completing your exam, you’ll receive an email containing a detailed score report. This report will outline your overall score and the percentage scores for each exam module. It will help you pinpoint areas of strength and areas that may require improvement.
Additionally, you’ll receive a Credly badge that you can share on your social media profiles such as LinkedIn, Twitter, your website, and other platforms. This badge serves as recognition of your achievement and allows you to showcase your skills to others.
If you are preparing for GitHub Foundation Exam, check out this post How to Pass GitHub Foundations Certification Exam: My Own Certification Journey