Course Highlights
  • Learn about writing serialized data in the YAML format.
  • Learn about all the GitHub Actions concepts (Workflows, Steps, Jobs, Actions, etc..)
  • Discover everything you can do in a GitHub workflow (events, schedules, filtering, environment variables, context, encryption, matrix and more)
  • Learn how docker can be used in a GitHub workflow
  • Create a real-life CI/CD workflow for code testing, formatting, versioning and more.
  • Use caching in workflows for an improved performance.
  • Learn about uploading artifacts in workflows.
  • Learn about how to create your own custom GitHub Actions using Javascript or Docker
  • Create an action for opening GitHub issues using JavaScript.
  • Create an action for sending slack messages using PHP.
  • Learn how to publish GitHub actions in the GitHub marketplace.
Curriculum

14 Topics
Before Starting the Course
Introduction to GitHub Actions & Workflows
Introduction to the YAML Format
Let's Create Our First Workflow
Parallel & Dependent Jobs
An Overview to Managing Our Workflow Runs through the Web UI & the GitHub CLI
Debugging Our Workflow Runs
Skipping Workflow Runs
Introduction to Workflow Commands
Quick Note
Shells & Working Directories
Downloading Our Repository into the Runner Machine
Introduction to Actions
The Checkout Action

9 Topics
Repository Events (ex. Push Pull Request Issues)
Events Activity Types
Workflow Run Approval from Fork Pull Requests
Using the Pull Request Target Event
Running a Workflow Based on Another Workflow
Filtering Our Workflow Runs by Branches Tags and Paths
Manually Triggering a Workflow from the GitHub Web UI CLI and the REST API
Using the Repository Dispatch Event for External Events
Running Workflows on a Schedule

8 Topics
Expressions & Contexts
The If Key & Expression Functions
Status Check Functions
Default & Custom Environment Variables
Setting Environment Variables During the Execution of a Workflow
Configuration Variables & Secrets
Encrypting & Decrypting Large Files in a Workflow
The GITHUB_TOKEN Secret & Customizing its Permissions

13 Topics
Timeout Minutes & Continue on Error
Running a Job Multiple Times Using a Matrix
Including & Excluding Matrix Configurations
Handling Failing Jobs in a Matrix
Step and Job Outputs & Dynamic Matrices
Running a Single Job or Workflow at a Time Using Concurrency
Reusable Workflows
Reusable Workflow Outputs
Nesting Reusable Workflows
Caching Files in Github Actions
Updating Cache Keys Dynamically & Adding Restore Keys
Cache Limits & Restrictions
Uploading & Downloading Job Artifacts

8 Topics
Running Jobs in Docker Containers
Using Docker Containers in Steps
Exploring Shared Networks & Volumes Between Multiple Containers
Creating a Custom Docker Entrypoint Script
Sending a Slack Message Using a Docker Container
An Overview to a Simple NodeJS Application
Using Service Containers in GitHub Actions
Publishing Docker Images Using GitHub Actions

11 Topics
Actions Overview
Creating a Simple JavaScript Action
Compiling The Action's JavaScript Code into One File
Creating a Simple Docker Action
Bundling Steps into an Action with Composite Actions
Writing a Docker Action for Sending a Slack Message Using PHP (Part 1)
Writing a Docker Action for Sending a Slack Message Using PHP (Part 2)
Using an Official GitHub Template for Writing JavaScript Actions
Creating a JavaScript Action for Opening Github Issues
Creating Releases & Publishing Our Action to the Marketplace
Automating Release Management For Our Action

23 Topics
Introduction the Application that We are Going to Automate
Let's Discuss Our Workflow Plan
Using Flagsmith to Add Feature Flags to Our Project
Deploying Our App to AWS Elastic Beanstalk
Configuring Repository Protection Rules & Environments
Creating a Workflow to Test Our App
Fixing and Running Our Test Workflow & CodeQL on Pull Request
Caching Playwright Browsers to Make Our Workflow Faster
Creating a Workflow to Deploy to AWS Elastic Beanstalk (Part. 1)
Creating a Workflow to Deploy to AWS Elastic Beanstalk (Part. 2)
Testing Our Deploy Workflow
Adding Changesets to Handle our App's Versioning
Creating a Version Pull Request on Pushing Changeset Files
Testing & Deploying to Staging & Production when Merging Version Pull Requests
Quick Note
Deploying Pull Request Branches to Isolated AWS Environments (Part 1)
Deploying Pull Request Branches to Isolated AWS Environments (Part 2)
Terminating Pull Request AWS Environments
Detecting Errors Before Committing Our Code Using Git Hooks
Quick Note
Using OIDC for AWS Authorization Instead of Storing Secrets
Customizing the OIDC JWT Token Subject for More Granularity
Quick Note

1 Topic
More Reading

  Write a Review

The Complete GitHub Actions & Workflows Guide

Go to Paid Course