Welcome to the GitHub Actions Certification Course, a tailored curriculum designed to transform participants into skilled experts in automating, customizing, and enhancing their software development workflows with GitHub Actions. Designed for developers, DevOps engineers, and IT professionals, this course provides hands-on labs to master GitHub Actions, enabling you to automate your workflows and streamline your development process.
Overview
COURSE DIFFICULTY
Skills Learned
After completing this online training course, students will be able to:
Grasp the Foundations: Understand the basic components and capabilities of GitHub Actions, including triggers, runners, jobs, steps, and actions
Design Effective Workflows: Craft custom workflows that adhere to best practices for build, test, and deployment processes
Implement CI/CD Pipelines: Set up efficient pipelines using GitHub Actions that support development, staging, and production environments
Master Workflow Commands and Actions: Leverage GitHub Actions built-in options and create custom actions (all three types supported) to design intricate workflows
Integrate with Third-party Tools: Connect GitHub Actions with external services and tools to create a cohesive development ecosystem
Security and Compliance: Implement security practices within GitHub Actions workflows to protect sensitive data and meet compliance requirements
Manage GitHub Actions for the enterprise: Securely use actions & workflows across your enterprise with the help of policies & manage runners for scalability & control
01. GitHub Actions - Core Concepts
- Create and Run Workflow
- What are Actions
- Code Repository
- Course Resources
- GitHub Action Core Components
- Configure Checkout Action
- Multi-Line commands and Executing Third Party Libraries
- Workflow to Generate ASCII Artwork
- Executing Shell Scripts in Workflow
- Workflow with multiple Jobs
- Execute multiple jobs in Sequence using needs
- Storing workflow data as artifacts
- Working with Variables at different levels
- Working with Repository Level Secrets
- Triggering a workflow
- Using Job concurrency
- Timeout for Jobs and Steps
- Using a matrix for your jobs
- Additional Matrix Configuration
- Access workflow context information
- Using if expression in Jobs
- Workflow Event Filters and Activity Types
- Cancelling and Skipping Workflows
- Enable step debug logging in a workflow
- Access the workflow logs from GitHub’s REST API
- workflow_dispatch Input Options
- Configure workflows to run for webhook events
02. Continuous Integration with GitHub Action
- Project Status Meeting – 1
- NodeJS Application Overview
- Run and Test NodeJS App on Local Machine
- Understanding DevOps Pipeline
- Clone Git Repo
- Workflow – Configure Unit Testing
- Archive/Store Unit Test Reports
- Run Unit Testing using Matrix Strategy
- Workflow – Configure Code Coverage
- Github Action Expressions
- Using continue on error expression
- Using if expressions with Step contexts
- Cache Node Dependencies
- Invalidate Cache
- Workflow – Docker Login
- Workflow – Docker Build and Test
- Workflow – Docker Push
- GitHub Packages
- Workflow – Login and Push to GHCR
- Publish to GitHub Packages using a workflow
- Project Status Meeting – 2
- What are Job Containers
- What are Service Containers
- Run Unit Testing Job using a Service
- Run Code Coverage Job using a Container and Service
- Project Status Meeting – 3
03. Continuous Deployment with GitHub Action
- Understand Deployment Usecase
- Brief Overview on Kubernetes
- Workflow – Setup Kubectl
- Workflow – Configuring Kubeconfig file
- Workflow – Replace Placeholders Tokens
- Workflow – Create Secret and Deploy to Kubernetes Dev Environment
- Setting Output for Integration testing
- Understand Github Environments
- Create Dev Environment | Secrets | Environment Rules
- Modify Dev Deployment Job to use Environment tags
- Create Prod Environment | Secrets | Environment Rules
- Workflow – Deploy to Kubernetes Prod Environment
- If Expressions and Pull-Request
- Deploy to a cloud provider using a GitHub Actions workflow
04. Reusable Workflows and Reporting
- Project Status Meeting – 4
- Understanding Reusable Workflows
- Step 1 – Configure new Reusable Workflow
- Step 2 – Using Secrets in Reusable Workflow
- Step 3 – Using Inputs in Reusable Workflow
- Step 4 – Using Outputs in Reusable Workflow
- Organization’s Templated workflow
- Lab – Reusable Workflow
- Project Status Meeting – 5
- Prepare a Job for reporting
- Uploading Reports to AWS S3 Storage
- Slack Notify – GitHub Action
05. Custom Actions
- What are Custom Actions?
- Create a Composite Action
- Using a Composite Action in Workflow
- Create a Docker Action
- Create a Javascript Action
- Sharing Custom Actions
- Using a Javascript Action in Workflow
- Using a Docker Action in Workflow
- Workflow Commands and Setting exit codes in Custom Actions
- Troubleshooting JavaScript Actions using Workflow Commands
- Implement workflow commands within an Step
- Actions Release and Version Management
- Create GitHub release using GitHub Actions
- Metadata syntax for GitHub Actions
06. Self Hosted Runner
07. Security Guide
- Security hardening for GitHub Actions (04:30)
- Risk of Script Injection Attack (12:47)
- Mitigating Script Injection Attack (03:32)
- Securing Secrets using HashiCorp Vault (08:29)
- Adding a workflow status badge (02:31)
- Manage Organization-level Encrypted Secrets (19:19)
- Use CodeQL as a step in a workflow
08. GitHub Actions in the Enterprise Cloud
- Github Account Types
- Create Trial for Enterprise Cloud
- Managing self-hosted runners using groups – Part1
- Managing self-hosted runners using groups – Part 2
- Configure self-hosted runners with proxies
- Configuring IP allow lists on GitHub-hosted and self-hosted runners
- Configure organizational use policies for GitHub Actions
- Define how to control access to actions within the enterprise
- Documenting GitHub Actions
- Define how to distribute actions for an enterprise
SKILLS LEARNED
Skills Learned
After completing this online training course, students will be able to:
Grasp the Foundations: Understand the basic components and capabilities of GitHub Actions, including triggers, runners, jobs, steps, and actions
Design Effective Workflows: Craft custom workflows that adhere to best practices for build, test, and deployment processes
Implement CI/CD Pipelines: Set up efficient pipelines using GitHub Actions that support development, staging, and production environments
Master Workflow Commands and Actions: Leverage GitHub Actions built-in options and create custom actions (all three types supported) to design intricate workflows
Integrate with Third-party Tools: Connect GitHub Actions with external services and tools to create a cohesive development ecosystem
Security and Compliance: Implement security practices within GitHub Actions workflows to protect sensitive data and meet compliance requirements
Manage GitHub Actions for the enterprise: Securely use actions & workflows across your enterprise with the help of policies & manage runners for scalability & control
COURSE OUTLINE
01. GitHub Actions - Core Concepts
- Create and Run Workflow
- What are Actions
- Code Repository
- Course Resources
- GitHub Action Core Components
- Configure Checkout Action
- Multi-Line commands and Executing Third Party Libraries
- Workflow to Generate ASCII Artwork
- Executing Shell Scripts in Workflow
- Workflow with multiple Jobs
- Execute multiple jobs in Sequence using needs
- Storing workflow data as artifacts
- Working with Variables at different levels
- Working with Repository Level Secrets
- Triggering a workflow
- Using Job concurrency
- Timeout for Jobs and Steps
- Using a matrix for your jobs
- Additional Matrix Configuration
- Access workflow context information
- Using if expression in Jobs
- Workflow Event Filters and Activity Types
- Cancelling and Skipping Workflows
- Enable step debug logging in a workflow
- Access the workflow logs from GitHub’s REST API
- workflow_dispatch Input Options
- Configure workflows to run for webhook events
02. Continuous Integration with GitHub Action
- Project Status Meeting – 1
- NodeJS Application Overview
- Run and Test NodeJS App on Local Machine
- Understanding DevOps Pipeline
- Clone Git Repo
- Workflow – Configure Unit Testing
- Archive/Store Unit Test Reports
- Run Unit Testing using Matrix Strategy
- Workflow – Configure Code Coverage
- Github Action Expressions
- Using continue on error expression
- Using if expressions with Step contexts
- Cache Node Dependencies
- Invalidate Cache
- Workflow – Docker Login
- Workflow – Docker Build and Test
- Workflow – Docker Push
- GitHub Packages
- Workflow – Login and Push to GHCR
- Publish to GitHub Packages using a workflow
- Project Status Meeting – 2
- What are Job Containers
- What are Service Containers
- Run Unit Testing Job using a Service
- Run Code Coverage Job using a Container and Service
- Project Status Meeting – 3
03. Continuous Deployment with GitHub Action
- Understand Deployment Usecase
- Brief Overview on Kubernetes
- Workflow – Setup Kubectl
- Workflow – Configuring Kubeconfig file
- Workflow – Replace Placeholders Tokens
- Workflow – Create Secret and Deploy to Kubernetes Dev Environment
- Setting Output for Integration testing
- Understand Github Environments
- Create Dev Environment | Secrets | Environment Rules
- Modify Dev Deployment Job to use Environment tags
- Create Prod Environment | Secrets | Environment Rules
- Workflow – Deploy to Kubernetes Prod Environment
- If Expressions and Pull-Request
- Deploy to a cloud provider using a GitHub Actions workflow
04. Reusable Workflows and Reporting
- Project Status Meeting – 4
- Understanding Reusable Workflows
- Step 1 – Configure new Reusable Workflow
- Step 2 – Using Secrets in Reusable Workflow
- Step 3 – Using Inputs in Reusable Workflow
- Step 4 – Using Outputs in Reusable Workflow
- Organization’s Templated workflow
- Lab – Reusable Workflow
- Project Status Meeting – 5
- Prepare a Job for reporting
- Uploading Reports to AWS S3 Storage
- Slack Notify – GitHub Action
05. Custom Actions
- What are Custom Actions?
- Create a Composite Action
- Using a Composite Action in Workflow
- Create a Docker Action
- Create a Javascript Action
- Sharing Custom Actions
- Using a Javascript Action in Workflow
- Using a Docker Action in Workflow
- Workflow Commands and Setting exit codes in Custom Actions
- Troubleshooting JavaScript Actions using Workflow Commands
- Implement workflow commands within an Step
- Actions Release and Version Management
- Create GitHub release using GitHub Actions
- Metadata syntax for GitHub Actions
06. Self Hosted Runner
07. Security Guide
- Security hardening for GitHub Actions (04:30)
- Risk of Script Injection Attack (12:47)
- Mitigating Script Injection Attack (03:32)
- Securing Secrets using HashiCorp Vault (08:29)
- Adding a workflow status badge (02:31)
- Manage Organization-level Encrypted Secrets (19:19)
- Use CodeQL as a step in a workflow
08. GitHub Actions in the Enterprise Cloud
- Github Account Types
- Create Trial for Enterprise Cloud
- Managing self-hosted runners using groups – Part1
- Managing self-hosted runners using groups – Part 2
- Configure self-hosted runners with proxies
- Configuring IP allow lists on GitHub-hosted and self-hosted runners
- Configure organizational use policies for GitHub Actions
- Define how to control access to actions within the enterprise
- Documenting GitHub Actions
- Define how to distribute actions for an enterprise