GH-200: GitHub Actions

GH-200: GitHub Actions

Offered by Linux Training

The GH-200: GitHub Actions course at Linux Training is designed for developers, DevOps engineers, and IT professionals who want to automate software development workflows using GitHub Actions.

This course focuses on CI/CD (Continuous Integration and Continuous Deployment), enabling learners to build, test, and deploy applications automatically using powerful automation tools within GitHub.


Course Overview

This program provides a comprehensive understanding of workflow automation using GitHub Actions, helping learners streamline development processes, improve productivity, and ensure faster and more reliable software delivery.


What You Will Learn

  • Introduction to GitHub Actions
  • CI/CD Concepts and Workflows
  • Creating and Managing Workflows
  • Automating Build, Test, and Deployment
  • Working with YAML Configuration Files
  • Secrets Management and Security
  • Monitoring and Debugging Workflows

Why Choose This Course?

  • High-demand DevOps automation skill
  • Hands-on practical training
  • Real-world CI/CD pipeline scenarios
  • Improves development speed and efficiency
  • Guidance from experienced trainers

Career Opportunities

After completing this course, you can explore roles such as:

  • DevOps Engineer
  • CI/CD Engineer
  • Automation Engineer
  • Software Developer
  • Release Engineer

Who Can Join?

  • Developers and programmers
  • DevOps professionals
  • IT professionals working with automation
  • Students interested in software development

Automate Your Development Workflow

Join Linux Training and gain the skills needed to build powerful CI/CD pipelines using GitHub Actions for modern software development.

GH-200: GitHub Actions

Modules

1. Author and manage workflows (20–25%)

Configure workflow triggers and events

  • Configure workflows to run for scheduled, manual, webhook, and repository events
  • Choose appropriate scope, permissions, and events for workflow automation
  • Define and validate workflow_dispatch inputs (types, required, defaults) and pass inputs to reusable workflows via workflow_call with inputs and secrets mapping
  • Design and implement workflow structure

  • Use jobs, steps, and conditional logic
  • Implement dependencies between jobs
  • Use workflow commands and environment variables
  • Use service containers (services:) for dependent services (databases, queues); configure ports, health checks, and container options
  • Use strategy and matrix to generate job variations (OS, language/runtime versions); apply include/exclude; control fail-fast and max-parallel; optimize matrix size for cost and performance; account for runner image changes (Ubuntu 20.04 deprecation, Windows Server 2025 migration for windows-latest)
  • Implement YAML anchors and aliases (&, * and merge <<) to reuse repeated mappings/steps within a single workflow file
  • Use predefined contexts (github, runner, env, vars, secrets, inputs, matrix, needs, strategy, job, steps, github.event, github.ref) to access workflow, repository, and runtime metadata; understand immutable actions behavior and version pinning requirements
  • Evaluate expressions with ${{ }} referencing contexts; distinguish static (workflow parse) vs runtime evaluation; prevent secret leakage in logs and expressions
  • Leverage editor tooling (GitHub Actions VS Code extension / YAML schema completion, metadata IntelliSense, validation) to author and maintain workflows efficiently
  • Manage workflow execution and outputs

  • Configure caching and artifact management; apply retention policies via REST APIs (logs, artifacts, workflow runs) at org/repo level
  • Pass data between jobs and steps (artifacts, outputs, environment files via GITHUB_ENV and GITHUB_OUTPUT, reusable workflow outputs)
  • Generate job summaries using GITHUB_STEP_SUMMARY for rich Markdown reports (test results, coverage, links)
  • Add workflow status badges and environment protections
  • 2. Consume and troubleshoot workflows (15–20%)

    Interpret workflow behavior and results

  • Identify workflow triggers and effects from configuration and logs
  • Diagnose failed workflow runs using logs and run history
  • Expand and interpret YAML anchors, aliases, and merged mappings when analyzing workflow configuration
  • Interpret matrix expansions, correlate job names to matrix axes, analyze failures across variants, and selectively rerun individual matrix jobs
  • Access workflow artifacts and logs

  • Locate workflows, logs, and artifacts in the UI and via API
  • Download and manage workflow artifacts
  • Use and manage workflow templates

  • Consume organization-level and reusable workflows
  • Consume non-public organization workflow templates
  • Use starter workflows (public and private/non-public templates); customize and adapt; distinguish from reusable workflows and composite actions
  • Differentiate starter workflows vs reusable workflows vs composite actions
  • Contrast disabling and deleting workflows
  • 3. Author and maintain actions (15–20%)

    Create and troubleshoot custom actions

  • Identify and implement action types (JavaScript, Docker, composite); understand immutable actions rollout on hosted runners and implications for version pinning and registry sources
  • Troubleshoot action execution and errors
  • Define action structure and metadata

  • Specify required files, directory structure, and metadata
  • Implement workflow commands within actions
  • Distribute and maintain actions

  • Select distribution models (public, private, marketplace)
  • Publish actions to the GitHub Marketplace
  • Apply versioning and release strategies
  • 4. Manage GitHub Actions for the enterprise (20–25%)

    Distribute and govern actions and workflows

  • Define and manage reusable components and templates
  • Control access to actions and workflows within the enterprise
  • Configure organizational use policies
  • Manage runners at scale

  • Configure and monitor GitHub-hosted and self-hosted runners
  • Apply IP allow lists and networking settings
  • Manage runner groups and troubleshoot runner issues
  • Identify preinstalled software/tool versions on GitHub-hosted runners and install additional software at runtime
  • Manage encrypted secrets and variables

  • Define and scope encrypted secrets and variables at the organization, repository, and environment levels
  • Access and use secrets and variables in workflows and actions; manage secrets and variables programmatically via REST APIs
  • 5. Secure and optimize automation (10–15%)

    Implement security best practices

  • Use environment protections and approval gates
  • Identify and use trustworthy actions from the Marketplace
  • Mitigate script injection (sanitize/validate inputs, least-privilege permissions, avoid untrusted data in run:, proper shell quoting, prefer vetted actions over inline scripts)
  • Understand GITHUB_TOKEN lifecycle (ephemeral, scoped), configure granular permissions, contrast with PAT; restrict write scopes
  • Use OIDC token (id-token permission) for cloud provider federation to eliminate long-lived cloud secrets
  • Pin third-party actions to full commit SHAs; align with immutable actions enforcement on hosted runners; avoid floating @main/@v* without justification
  • Enforce action usage policies (organization/repository allow/deny lists, required reviewers for unverified actions)
  • Generate and verify artifact attestations / provenance and integrate into deployment verification
  • Optimize workflow performance and cost

  • Configure caching and artifact retention for efficiency; apply retention policies programmatically via REST APIs
  • Recommend strategies for scaling and optimizing workflows