Join today
Write your awesome label here.

GitHub Actions: The Complete Course

Go from automation novice to confident practitioner with hands-on training in GitHub Actions. Learn to design and implement reliable CI/CD pipelines, create reusable workflows and custom actions, and manage secrets and deployments with industry best practices.
🏅 Included in the PRO membership!
Write your awesome label here.

108 Lectures

Comprehensive Knowledge

11 Hours

Video Duration

30+ Labs

Focus on Practice

Course Certificate

Validate Your Learning
What you are going to learn

Transform Your Development Process with Enterprise-Grade Automation

This course takes you from the core building blocks of GitHub Actions to designing sophisticated, production-grade automation pipelines. You will master workflow triggers, runners, contexts, and expressions, then build on that foundation with caching, artifacts, job matrices, and execution flow control. Each concept is reinforced through practical exercises that reflect real CI/CD scenarios.

By the end of this course, you will be able to build custom actions, create reusable workflows that share logic across repositories, manage environment-specific deployments with approval gates, and implement security best practices including secret handling and injection prevention. You will not just know how to write workflows. You will know how to design them to be reliable, maintainable, and safe at scale.

By completing this course, you will be able to:

  • Define workflows, jobs, and steps, and execute your first automation using GitHub Actions
  • Configure workflows to trigger on multiple events
  • Run workflows on GitHub-hosted runners
  • Discover, evaluate, and implement pre-built actions from the GitHub marketplace
  • Access workflow data using contexts for multiple sources
  • Write expressions with conditional logic, comparisons, and built-in functions
  • Define variables at workflow, job, step, and organization levels
  • Control job execution flow using conditional statements and explicit job dependencies
  • Pass data between jobs for multi-stage pipelines
  • Implement caching strategies
  • Generate multiple job variations using matrix strategies
  • Create custom actions in composite, JavaScript, and Docker formats
  • Design reusable workflows that share automation logic across multiple repositories
  • Deploy production-grade automation that scales with your development team

Course Contents

01

Introduction

This section introduces the GitHub Actions course structure, covering the fundamental building blocks and progressing to complex concepts including workflow triggers, caching, artifacts, custom actions, and reusable workflows. The section emphasizes practical application through exercises and best practices for CI-CD pipeline design, security, and related concerns.
Welcome!
01:04
Let's Stay Connected!
00:28
Course Resources
00:53
Code and Repository Updates
00:44

02

Tools and Initial Setup

This section covers the essential setup and configuration tools needed to begin working with GitHub Actions. The material introduces different approaches for managing development environments across operating systems, explores a cloud-based alternative to local machine setup, guides learners through creating and configuring a repository with version control, and provides foundational knowledge of the configuration file format used throughout the course.
Setup NodeJS
04:42
Alternative to Setting Up the Local Environment - Using GitHub Codespaces
03:14
Creating a GitHub Repository for the Course
06:41
YAML in 5 Minutes
05:40

03

Github Actions Building Blocks

This section introduces the fundamental building blocks of GitHub Actions, including workflows, jobs, and steps, and demonstrates how to create a simple functional workflow. The concepts are explained through both theoretical descriptions and a practical hands-on exercise that shows how these components are structured and executed within the GitHub platform.
Theory - Building Blocks
05:42
Practical Exercise 01 - Creating Our First Workflow
01:28
Practical Exercise 01 - Solution & Discussion
12:57
Github Actions Building Blocks
7 questions

04

Event Triggers

This section covers workflow events and the different mechanisms for triggering automated workflows. The lectures explain repository-level triggers such as pushes and pull requests, manual triggers accessed through the user interface and external calls, and scheduled triggers using time-based expressions. The practical exercises demonstrate how to configure multiple trigger types in workflow files and test them through various methods including direct pushes, pull request creation, manual execution, and scheduled runs.
Theory - Workflow Events
04:17
Practical Exercise 02 - Using Different Events to Trigger Workflows
02:17
Practical Exercise 02 - Solution & Discussion
14:27
Event Triggers
6 questions

05

Workflow Runners

This section covers the different types of virtual machines available for running workflows in GitHub Actions, comparing hosted managed services with self-hosted infrastructure options. It explores the resource specifications of each runner type, discusses the operational implications of choosing between hosted and self-hosted environments, and demonstrates practical configuration of workflows to execute on multiple operating system platforms. The section emphasizes important security considerations and troubleshooting approaches when working across different computing environments.
Theory - GitHub and Self-Hosted Runners
04:31
Practical Exercise 03 - Working with Windows and Ubuntu Runners
02:17
Practical Exercise 03 - Solution & Discussion
08:09
Workflow Runners
6 questions

06

Using Third-Party Actions

This section covers the fundamentals of using pre-built actions within workflows to automate common tasks. It explains how actions encapsulate repetitive setup and cleanup work, making workflows more maintainable and flexible through configuration options. The section also demonstrates how to discover, evaluate, and implement actions from the GitHub marketplace in practical workflows, including setting up environments and running tests with reusable action components.
Theory - Actions
10:01
Practical Exercise 04 - Working with Third-Party Custom Actions
03:54
Practical Exercise 04 - Solution & Discussion
15:40
Using Third-Party Actions
5 questions

07

Event Filters and Activity Types

This section covers event filtering mechanisms that allow workflows to execute conditionally based on branch patterns, path modifications, and other event-specific criteria, as well as activity types that specify when during an event's lifecycle a workflow should trigger.
Theory - Event Filters
05:38
Theory - Activity Types
05:31
Practical Exercise 05 - Using Filters and Activity Types
02:16
Practical Exercise 05 - Solution & Discussion
10:21
Filters and Activity Types
7 questions

08

Using Contexts

This section introduces contexts as sources of data from different workflow dimensions including repository information, event details, and environment variables that can be accessed throughout workflow execution.
Theory - Contexts
05:27
Practical Exercise 06 - Working with Different Contexts
02:41
Practical Exercise 06 - Solution & Discussion
18:27

09

Expressions & Variables

This section explores expressions that combine literal values, context references, and built-in functions to create dynamic workflow logic, along with variables for storing configuration information at different scope levels.
Theory - Expressions
03:18
Practical Exercise 07 - Working with Expressions
02:34
Practical Exercise 07 - Solution & Discussion
12:59
Theory - Variables
03:15
Practical Exercise 08 - Environment Variables
02:10
Practical Exercise 08 - Solution & Discussion
09:09
Practical Exercise 09 - Organization, Repository, and Environment Variables
02:03
Practical Exercise 09 - Solution & Discussion
14:53
Contexts, Expressions and Variables
6 questions

10

Functions

This section covers built-in functions available in expressions that perform string operations, data transformations, and status checks to enable complex workflow decision-making and data manipulation.
Theory - Functions
09:11
Practical Exercise 10 - Using Functions in Workflows
02:43
Practical Exercise 10 - Solution & Discussion
16:47

11

Controlling the Execution Flow

This section examines how to control job and step execution flow using conditional logic and job dependencies, allowing workflows to execute sequentially or in parallel based on explicit relationships between jobs.
Theory - Controlling the Execution Flow
03:59
Practical Exercise 11 - Defining Dependencies & Executing Jobs Conditionally
02:48
Practical Exercise 11 - Solution & Discussion
14:04
Functions and Conditional Execution
6 questions

12

Inputs and Outputs

This section covers inputs that allow workflows to accept parameters at runtime, enabling customization of workflow behavior through the user interface or programmatic calls, and reusable workflows that receive input data.
Theory - Inputs
03:13
Practical Exercise 12 - Working with Inputs
01:48
Practical Exercise 12 - Solution & Discussion
10:46
Theory - Outputs
04:09
Practical Exercise 13 - Working with Outputs
01:40
Practical Exercise 13 - Solution & Discussion
08:06
Practical Exercise 14 - Avoiding the Mistake of Overwriting the Output File
01:40
Practical Exercise 14 - Solution & Discussion
07:33
Inputs and Outputs
6 questions

13

Sharing Data - Caching and Artifacts

This section explores caching mechanisms that store files between workflow runs to speed up execution, with emphasis on dependency caching and comparing caching with artifacts for different use cases.
Theory - Caching
03:46
Practical Exercise 15 - Using Caching to Speed Up Installing Dependencies
04:04
Practical Exercise 15 - Solution & Discussion
17:37
Practical Exercise 16 - Using Multiple Jobs for Better Caching Functionality
02:36
Practical Exercise 16 - Solution & Discussion
08:24
Theory - Artifacts
02:55
Practical Exercise 17 - Working with Artifacts
04:49
Practical Exercise 17 - Solution & Discussion
21:08
Caching and Artifacts
5 questions

14

Working with Matrices

This section introduces matrices that generate multiple job variations from a single job definition by creating Cartesian products of provided values, enabling efficient testing and building across multiple configurations.
Theory - Matrices
03:46
Practical Exercise 18 - Introduction to Using Matrices
02:55
Practical Exercise 18 - Solution & Discussion
12:57
Practical Exercise 19 - Exploring the Include Option
02:35
Practical Exercise 19 - Solution & Discussion
11:39
Practical Exercise 20 - Exploring the Exclude Option
01:13
Practical Exercise 20 - Solution & Discussion
05:09
Matrices
5 questions

15

Environments

This section discusses environments that provide configuration scopes with variables, secrets, and deployment protection rules for different target environments like staging and production.
Theory - Environments
02:46
Practical Exercise 21 - Working with Environments
03:19
Practical Exercise 21 - Solution & Discussion
17:29
Environments and Protection Rules
5 questions

16

Developing Custom Actions from Scratch

This section introduces custom actions that encapsulate reusable logic in composite, JavaScript, or Docker formats, enabling workflows to leverage standardized implementations and reduce code duplication across repositories.
Theory - Developing Custom Actions from Scratch
03:48
Practical Exercise 22 - Creating a Composite Custom Action
02:55
Practical Exercise 22 - Solution & Discussion
11:29
Practical Exercise 23 - Using and Extending Our Composite Custom Action
03:24
Practical Exercise 23 - Solution & Discussion
17:45
Composite Custom Actions
5 questions
Practical Exercise 24 - Setting Up Our JavaScript Custom Action
02:55
Practical Exercise 24 - Solution & Discussion - Part 1
13:18
Practical Exercise 24 - Solution & Discussion - Part 2
09:45
Practical Exercise 25 - Parsing Inputs and Running Shell Commands
02:58
Practical Exercise 25 - Solution & Discussion - Part 1
18:30
Practical Exercise 25 - Solution & Discussion - Part 2
07:10
Practical Exercise 26 - Adding the Logic to Create PRs
02:06
Practical Exercise 26 - Solution & Discussion - Part 1
22:53
Practical Exercise 26 - Solution & Discussion - Part 2
20:52
JavaScript Custom Actions
6 questions
Practical Exercise 27 - Setting Up Our Docker Custom Action
03:55
Practical Exercise 27 - Solution & Discussion - Part 1
04:39
Practical Exercise 28 - Solution & Discussion - Part 2
12:33
Practical Exercise 29 - Adding the Ping Logic in Python
01:46
Practical Exercise 29 - Solution & Discussion
15:54
Practical Exercise 30 - Working with Outputs in Custom Actions
03:21
Practical Exercise 30 - Solution & Discussion
17:24
Docker Custom Actions
5 questions

17

Creating Reusable Workflows

This section covers reusable workflows that allow sharing workflow logic across repositories, supporting inputs, secrets, and outputs while maintaining isolation from caller workflows.
Theory - Reusable Workflows
06:09
Practical Exercise 31 - Creating and Using Reusable Workflows
02:40
Practical Exercise 31 - Solution & Discussion
11:07
Practical Exercise 32 - Reusing Workflows from Other Repositories
06:27
Practical Exercise 32 - Solution & Discussion - Part 1
11:28
Practical Exercise 32 - Solution & Discussion - Part 2
24:31
Practical Exercise 32 - Solution & Discussion - Part 3
01:21
Reusable Workflows
6 questions

18

Managing Concurrency

This section addresses concurrency management in workflows to control parallel execution, preventing race conditions in deployment workflows and ensuring orderly processing of related workflow runs.
Theory - Managing Concurrency
06:53
Practical Exercise 33 - Managing Concurrency at the Workflow Level
01:10
Practical Exercise 33 - Solution & Discussion
07:06
Practical Exercise 34 - Managing Concurrency at the Job Level
01:35
Practical Exercise 34 - Solution & Discussion
05:30
Managing Concurrency
5 questions

19

Workflow Security

This section comprehensively covers workflow security practices including secret management, token handling, script injection prevention, and authentication mechanisms for external services.
Theory - Workflow Security
15:50
Practical Exercise 35 - Preventing Script Injection via Intermediate Variables
02:00
Practical Exercise 35 - Solution & Discussion
07:41
Practical Exercise 36 - Preventing Script Injection via Custom Actions
01:19
Practical Exercise 36 - Solution & Discussion
07:00
Workflow Security and Script Injections
6 questions

20

Conclusion

Congratulations!
0:00
Certificate of Completion

Frequently asked questions

Who is this course designed for?

This course is designed for multiple technical roles:

Software Engineers and Developers who want to modernize their development workflows will learn to automate testing, building, and deployment directly from their repositories, eliminating manual steps and reducing deployment errors.

DevOps Engineers and Platform Engineers seeking to implement enterprise-grade automation will master advanced concepts including custom actions, reusable workflows, environment management, and security practices that enable organization-wide standardization.

Technical Leads and Architects evaluating automation tools for their teams will gain deep understanding of GitHub Actions capabilities, limitations, and best practices to make informed decisions about CI/CD infrastructure.

Developers New to Automation who have limited CI/CD experience will start from fundamental concepts and progress through structured modules with practical exercises, building confidence in designing production-ready pipelines.

What prior knowledge do I need before taking this course?

You should have familiarity with version control using Git and a basic understanding of the command line and terminal operations. Experience with any programming language is helpful for understanding application examples throughout the course, though the focus is on automation rather than application development.

No prior knowledge of GitHub Actions or CI/CD concepts is required. The course starts from the fundamentals and builds your knowledge progressively through hands-on exercises that reinforce each concept before moving to more advanced topics.

Will I incur costs while taking this course?

The entire course can be completed for free using the GitHub free tier and free tools.

Free Components:
  • GitHub free tier (unlimited public and private repositories)
  • GitHub Actions free tier (2,000 minutes per month for private repositories)
  • All course code examples and exercises
  • Community-supported tools and runtimes

Optional Costs:
The course primarily uses GitHub's free tier. If you choose to set up self-hosted runners or use advanced GitHub Enterprise features not covered in the course, those would incur optional costs. However, the core curriculum and all practical exercises remain within the free tier.

Do I need to understand shell scripting to succeed in this course?

No, you do not need to be a shell scripting expert to succeed. The course teaches necessary scripting concepts in context as you build workflows. Many course sections demonstrate using pre-built actions from the GitHub marketplace rather than writing shell scripts from scratch.

Familiarity with running commands in a terminal is helpful, and the course covers scripting basics for common automation tasks. If you prefer to avoid shell scripting, you will learn to leverage composite actions and pre-built actions that encapsulate complex logic, allowing you to build powerful workflows with minimal scripting knowledge.

How will I use GitHub Actions after this course?

You will use GitHub Actions to automate common development tasks directly from your repositories. Practical applications include running automated tests when code is pushed, building application binaries and container images, deploying applications to staging and production environments, managing pull request workflows, and enforcing code quality standards.

You will create reusable workflows and custom actions that your team shares across projects, reducing duplicated effort and standardizing automation practices. You will implement environment-specific configurations for staging and production deployments with appropriate security controls. You will optimize pipeline performance using caching and artifact strategies. You will design concurrency controls that prevent deployment race conditions and ensure orderly infrastructure modifications.

The skills you acquire apply to any development workflow and complement related technologies like Docker, Kubernetes, and cloud platforms.

We use cookies to provide you with an optimal experience and relevant communication. Learn more or accept individual cookies.

Necessary

Necessary cookies (First Party Cookies) are sometimes called "strictly necessary" as without them we cannot provide the functionality that you need to use this website. For example, essential cookies help remember your preferences as you navigate through the online school.

Functional

Functional cookies enable this website to provide enhanced functionality and personalization, by remembering information you have entered and choices you make. These preferences are remembered through the use of persistent cookies, so that you will not have to set them again the next time you visit the website.

Analytics

Analytics cookies track information about visits on our website so that we can measure and improve its performance, as well as optimize our course content. These cookies help us analyze user behavior by tracking the number of visits, how visitors use the website, which site or page they come from and how long they are staying for.

Marketing

Marketing cookies are used to deliver advertising material relevant to you and your interests. They are also used to limit the number of times you see an advertisement, resulting to more targeted advertising, as well as help us measure the effectiveness of our campaigns. They are usually placed by advertising networks we collaborate with, with our permission.