
Master GitHub Actions to become a professional DevOps developer, covering Git basics, self-hosted runners in AWS, on-demand runners, and a Terraform-based continuous deployment pipeline with GitHub Actions.
Explore the course structure, from Git basics like initializing a repository and commits to advanced GitHub actions concepts, including writing actions, scheduling self-hosted runners, and Terraform for continuous deployment.
Clarify the distinct roles of git, GitHub, and GitHub actions in version control and hosting. See how workflows, pushes, pulls, and issues enable CI/CD and collaborative development on GitHub.
GitHub actions automate building, testing, and deploying code via workflows triggered by events like pushes and pull requests, enabling continuous integration and delivery.
Understand the key concepts of GitHub actions: workflows, jobs, steps, events, actions, and runners. Create a yaml workflow triggered by workflow dispatch on an ubuntu runner that echoes hello world.
Learn YAML basics for GitHub Actions and how to describe workflows that build, test, and deploy code. Master keys, values, indentation, and multi-line strings to create readable workflows.
Learn how to configure steps inside a GitHub workflow job, using exit codes, run commands, and conditional steps with expressions to control success, failure, and cleanup.
Explore how to run multiple jobs in parallel within a single GitHub Actions workflow, with linting, unit tests, and integration tests in independent isolated environments to optimize CI/CD.
Discover GitHub actions events and triggers, from push and pull requests to schedule and issues, and configure on clauses, inputs, workflow_dispatch and workflow_run relationships.
Learn how the checkout action moves repository code to the GitHub runner in workflows, configure it with uses and with, and use the GitHub workspace context to inspect files.
Pass data between steps and jobs in GitHub Actions using the GitHub output file, avoiding deprecated set-output syntax, and access it via the steps context to share environment variables.
Learn how to pass environment variables between jobs in GitHub actions by using needs, job outputs, and GitHub output files, ensuring data sync in parallel workflows.
Learn how GitHub Actions artifacts persist data between jobs, enabling you to upload and download build outputs or test coverage files, and share results across workflow steps.
Explore how secrets, encrypted environment variables, and non-sensitive repository variables in GitHub actions secure api keys and configuration data, powering automated workflows.
Explore how GitHub actions leverage a matrix strategy to run CI/CD tests in parallel across multiple configurations, such as OS versions and Python versions, with include and exclude configurations.
Explore reusable workflows in GitHub actions to centralize templates across repositories, reducing duplication and improving CI/CD consistency. Learn to call, inherit secrets, and publish workflows across projects.
Explore a real-world continuous integration workflow with GitHub actions for a fast API project using Docker, enabling automated builds, tests, scans, and artifact publishing for rapid feedback and reliable collaboration.
Learn how GitHub actions permissions control what workflows can do in a repository, including token usage, scopes, and how to grant read or write access at workflow or job level.
Learn how to use personal access tokens in GitHub actions to authenticate across repositories, configure secrets, and securely manage workflow permissions for targeted tasks like tagging.
Explore how GitHub actions contexts expose event, repository, and workflow details to power conditional logic and access secrets, outputs, and matrix information.
Explore GitHub actions expressions and functions like contents, startswith, endswith, format, to json, from json, join, hash files. See how literals, contexts, and dot notation access data in if statements.
Explore self-hosted runners for GitHub actions and their role beside GitHub hosted runners in Azure. See when to choose self-hosted setups for resource-intensive or private projects, including an AWS setup.
Learn how to create an AWS account by completing the root user setup, verifying email, adding a credit card, and choosing a support plan, with notes on free tier costs.
Create a secure IAM user and generate AWS access keys for use with the CLI and GitHub actions, emphasizing root vs auxiliary accounts and multi-factor authentication.
Set up a self-hosted GitHub runner on an AWS EC2 Ubuntu 22.04 instance, register it, and run a CI workflow with unit tests and artifacts.
Use on demand self-hosted runners on AWS to run GitHub actions workflows only when needed, creating and tearing down EC2 instances to optimize costs.
Create custom GitHub actions with Docker, defining inputs and outputs for CI/CD workflows. Learn how to package, version, and publish reusable actions using Docker, entry points, and action yaml.
Explore creating custom GitHub actions with JavaScript, using node and npm, to read inputs, access the GitHub context, and manage outputs without Docker.
Explore composite actions in GitHub actions by combining steps into a reusable action. The lecture shows a Python-based composite action with inputs and outputs in YAML.
Learn advanced debugging of GitHub actions by attaching a shell to the GitHub runner with the teammate action, enabling real-time inside-runner inspection and interactive sessions.
Optimize free GitHub runner space for CI/CD by using the Maximize Build Space action to remove unneeded pre-installed tools and Docker images, noting the hacky approach may affect pipelines.
Learn how to run Terraform from GitHub Actions to enable continuous deployment to AWS, deploying a Docker-based app on EC2 using init, plan, apply, and output the instance IP.
Learn git basics, including commits, branches, changes, and merges, and explore how git works behind the scenes with Visual Studio Code extensions for better conflicts and merge requests handling.
Git is a distributed open-source version control system created by Linus Torvalds that stores and shares code across multiple computers, solving centralization issues and easing multi-user merges.
install git on Windows using the setup wizard and choose git bash and gui options. On Mac, use Homebrew to install git and verify with git version.
Learn to set up Visual Studio Code for git work, install GitLens and Git Graph extensions, configure Git Bash on Windows, and prepare a project folder.
Understand how git tracks code through a working directory, staging area, and commits, storing versions in local and remote repositories to enable distributed collaboration.
Initialize a git repository in Visual Studio Code, configure user name and email, stage and commit changes, and view history with git log on the master branch.
Learn advanced git add and commit workflows in VS Code, staging modified and untracked files, using dot notation to include folders, and review history with git log.
Learn how to remove tracked and untracked files in Git using git rm and related commands, including staging, committing, and handling deletions in the local repository.
Discover how to rename files in git with git mv, manage changes across the working directory and staging area, and understand two-step renaming and hard reset cautions.
Explore how git branches act as pointers to commits, with master as the default branch and head guiding the next commit, while creating and switching branches like database access.
Merge two branches with git merge to bring the database access changes into master, creating a merge commit through a three-way merge and preserving branches for future work.
Set up secure remote repositories with GitHub by generating SSH keys, adding them to your account, and linking your local repository to a remote origin for pushing to main.
Clone a GitHub project, set up ssh keys, and create a new branch called draw with a draw.py. Learn to fetch, push, and track remote branches, including detached head state.
Master git pull to sync local and remote branches. Understand behind-the-scenes fetch and merge, and how to push to origin while tracking read-only branches.
Learn how to identify and resolve Git merge conflicts, using Visual Studio Code, with practical steps for accepting current or incoming changes and completing a merge.
Learn how to use git ignore to exclude logs, sensitive data, and folders like node_modules from commits. Master stopping tracking with git rm --cached and craft effective ignore patterns.
Learn to use git reset to undo local, unpushed changes with soft, mixed, and hard options, and navigate history with git log, git checkout, and git switch to past commits.
Discover how Git tags help track working versions with lightweight and annotated tags, including their metadata and semantic versioning context. Push tags to the remote repository.
Learn how to create and use README.md markdown files in a GitHub project, preview markdown in VS Code, and publish well-documented readme updates to the main branch.
Discover how git stores history on your local machine using a key-value store with sha-1 hashes, commits, trees, and blobs, and how branches and head point to commits.
Apply your GitHub Actions knowledge by writing ci/cd workflows, reuse the course code, and explore next steps in DevOps with Terraform, Docker, Kubernetes, AWS, and other clouds.
Unlock the full potential of automation with "Git + GitHub Actions for CI/CD Mastery." This course is a deep dive into Git, GitHub, and GitHub Actions, designed for developers and DevOps professionals aiming to streamline their workflows.
Course Content:
GitHub Actions Basics: Understand the core concepts, delve into YAML basics, explore steps, jobs, and events to build a solid foundation.
Using GitHub Actions Workflows: Master workflow creation, data management between steps and jobs, artifact handling, and secrets and variables for secure automation.
Self-hosted Runners: Implement self-hosted runners, manage AWS credentials for GitHub Actions, and learn to create on-demand self-hosted runners for increased flexibility.
Custom GitHub Actions: Develop your custom GitHub Actions using Docker, JavaScript, and Python. Explore composite actions for versatile automation.
Advanced Concepts: Dive into debugging GitHub Actions, optimizing free runners, and implementing Terraform for Continuous Deployment (CD).
Optional Git Course for Beginners: A comprehensive Git introduction for novices, covering everything from installation to conflict resolution, branching, merging, and GitHub utilization.
Why Learn GitHub Actions:
Automate your CI/CD pipelines seamlessly with GitHub Actions, reducing manual intervention and accelerating your development process. Gain the ability to create custom actions tailored to your project's needs. Whether you're a seasoned developer or a beginner, GitHub Actions empowers you to build, test, and deploy code efficiently.
Enroll now and elevate your skills with Git + GitHub Actions. Streamline your development workflows and stay ahead in the world of modern software development.