Autoplay
Autocomplete
Previous Lesson
Complete and Continue
GitHub Actions - The Complete Guide
Getting Started
Welcome to the Course! (1:09)
What Is "GitHub Actions"? (3:39)
Git, GitHub & GitHub Actions (5:17)
About This Course (3:44)
Join The Discord Community!
Course Code Attachments & Slides
Git & GitHub Crash Course [Optional]
Module Introduction (1:28)
Getting Started with Git (3:12)
Configuring Git
Project Setup (1:55)
Working with (Local) Git Repositories (4:19)
Staging Files & Creating Commits (6:52)
Multiple Commits & Checking Out Snapshots (7:46)
Reverting Changes with "git revert" (3:50)
Resetting Code with "git reset" (2:14)
Staging Multiple Files & Ignoring with gitignore (5:32)
Understanding Branches (5:08)
Working with Branches (3:37)
Merging Branches (8:31)
GitHub Introduction (2:29)
Creating a GitHub Account (3:18)
Creating a (Remote) GitHub Repository-repository (2:04)
Connecting Local & Remote Repositories (2:48)
Pushing Commits & Understanding Permissions (6:01)
GitHub & Branches (6:02)
Readme Files & Pulling Changes (5:39)
Cloning Repositories (8:44)
Making Changes As A Different User (Non-Owner) (1:50)
GitHub Issues & Collaborators (9:02)
Working with Pull Requests (8:01)
Understanding & Using Forks (8:42)
Module Summary (0:42)
GitHub Actions - Basic Building Blocks & Components
Module Introduction (1:24)
Key Components: Workflows, Jobs, Steps & More (5:31)
GitHub Actions: Availability & Pricing
Creating a First Workflow (10:58)
Running the First Workflow (3:44)
Running Multi-Line Shell Commands
Onwards to a More Realistic Example (6:55)
A New Workflow & The "push" Event (7:32)
Using Actions In Workflows (4:35)
Checking Out Code In Workflows (3:10)
Configuring Actions (2:29)
Adding More Workflow Job Steps (4:32)
Failing Workflows & Analyzing Workflows (3:45)
Adding Multiple Jobs (6:03)
Jobs: In Parallel vs Sequential (3:48)
Using Multiple Triggers (Events) (2:41)
Expressions & Context Objects (7:02)
Module Summary (3:52)
Time to Practice: The Problem (3:38)
Time to Practice: Solution (17:50)
Workflows & Events - Deep Dive
Module Introduction (1:10)
Which Events Can You Use? (1:37)
A Demo Project Setup (2:28)
More on the "push" Event (1:39)
Introducing Event Filters & Activity Types (2:00)
Using Activity Types (8:26)
Using Event Filters (7:16)
Special Behavior: Forks & Pull Request Events (6:29)
Cancelling Workflows & Skipping Workflows (4:32)
Module Summary (2:52)
Job Artifacts & Outputs
Module Introduction (0:45)
Demo Project Setup (1:47)
Understanding Job Artifacts (3:09)
Artifacts - An Example (2:57)
Uploading Job Artifacts (4:50)
Downloading Artifacts (Manually & Automatically) (5:23)
Understanding Job Outputs (1:42)
Job Outputs - An Example (8:51)
Using Job Outputs In Other Jobs (3:38)
The Need For Dependency Caching (4:41)
Caching Dependencies in Practice (9:03)
Using & Invalidating Caches (2:06)
Module Summary (2:18)
Using Environment Variables & Secrets
Module Introduction (0:48)
Project Setup & Understanding Environment Variables (4:42)
Providing Environment Variable Values (3:44)
Demo: Creating a Database & Using Database Environment Variable Values (3:30)
Using Environment Variables in Code & Workflows (8:06)
Default Environment Variables
Understanding & Using Secrets (5:39)
Utilizing Repository Environments (7:30)
Module Summary (2:17)
Controlling Workflow & Job Execution
Module Introduction (2:06)
Understanding Conditional Steps & Jobs (0:54)
Demo Project Setup (1:52)
Understanding a (Potential) Problem: A Failing Step (3:14)
Controlling Execution via "if" (7:30)
Working with Special Conditional Functions (3:08)
Conditional Jobs (5:08)
More "if" Examples (5:51)
Ignoring Errors & Failures with "continue-on-error" (6:11)
Understanding & Using Matrix Strategies (7:33)
Including & Excluding Values (Matrix Strategy) (2:47)
Saving Time & Code with Reusable Workflows (7:24)
Adding Inputs to Reusable Workflows (7:25)
Reusable Workflows & Secrets (1:47)
Reusable Workflows Outputs (6:42)
Module Summary (2:11)
Jobs & Docker Containers
Module Introduction (0:53)
What Are Containers? (1:46)
Why Might You Want To Use Containers (With GitHub Actions)? (4:03)
Demo Project Setup & A Dockerfile (7:02)
Run Jobs In Containers (7:53)
Service Containers - Theory (3:40)
Adding Services (via Service Containers) (6:24)
Communication between Jobs & Service Containers (6:15)
Module Summary (2:02)
Building & Using Custom Actions
Module Introduction (1:58)
Why Custom Actions? (3:32)
Understanding Different Types of Custom Actions (4:15)
Demo Project Setup (1:40)
Creating Composite Actions (8:34)
Using Custom Actions In Workflows (4:17)
Adding Inputs to Custom Actions (6:57)
Adding Outputs to Custom Actions (4:04)
Custom JavaScript Actions - Getting Started (2:14)
Configuring JavaScript Actions (3:30)
Adding Basic JavaScript Logic (9:46)
Creating a S3 Bucket (for a more advanced, custom Action) (4:06)
Adding Action Inputs (4:15)
Interacting with GitHub Actions Features (7:49)
Custom JavaScript Action: Real Deployment to AWS S3 (8:37)
JavaScript Actions & Outputs (5:00)
Getting Started with a Custom Docker Action (3:10)
Creating a Custom Docker Action (7:21)
Storing Actions In Repositories & Sharing Actions With Others
Module Summary (2:12)
Security & Permissions
Module Introduction (1:22)
Key Security Concerns (3:31)
Understanding Script Injection Attacks (9:54)
Increasing Actions Safety (4:14)
Understanding Permissions & Potential Issues (7:31)
GITHUB_TOKEN & Managing Permissions (6:24)
More Security Settings (3:10)
Working with Third-Party Permissions & OpenID Connect (4:53)
Example: AWS Permissions (1:38)
Example: AWS Permissions (Continued) (9:27)
More On GitHub Actions Security
Wrap Up
Congratulations & Wrap Up (0:53)
Onwards to a More Realistic Example
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock