Filters
How to search
  • Plain words find names, texts and examples.
  • "two words" finds the exact phrase.
  • --name or -x finds an option.
  • #word looks only inside commands.
  • @grep finds lessons and labs that use grep.
  • Filters: cat:network · in:labs · in:notes · level:rhcsa · ch:8 · root:yes. Put ! before a word to leave it out. OR between words means one of them.
  • ↑ ↓ to move · Enter to open · Esc to close · / to search

CI/CD with GitHub Actions

Automate build, test, scan and deploy on every push: workflows, triggers, secrets, environments, deploy to Azure without stored passwords, and pipeline security.

Course by
GitHub
Course code
GitHub Actions
Version
2026
Lessons
43

These summaries follow the public outline of the course. I wrote every lesson in my own words and tested the commands on RHEL 10. They are not Red Hat training material. Take the official course for the full content and the hands-on labs.

Next course: Containers

Parts and chapters

Part 1

Workflow basics

  1. 1Write your first workflowUnderstanding GitHub Actions5 lessons
    Lessons
    1. 1.1 Know the building blocks
    2. 1.2 Write a workflow
    3. 1.3 Chain jobs
    4. 1.4 Choose a runner
    5. 1.5 Read the results
  2. 2Start workflows at the right timeEvents that trigger workflows5 lessons
    Lessons
    1. 2.1 Run on push and pull request
    2. 2.2 Run on a schedule
    3. 2.3 Run by hand with inputs
    4. 2.4 Chain workflows
    5. 2.5 Know other useful events
  3. 3Use and write actionsActions and the Marketplace4 lessons
    Lessons
    1. 3.1 Use actions with inputs
    2. 3.2 Pin versions safely
    3. 3.3 Pass outputs between steps
    4. 3.4 Write a composite action

Part 2

Build real pipelines

  1. 4Use variables, contexts, artifacts and cachesVariables, contexts, artifacts and caching5 lessons
    Lessons
    1. 4.1 Set environment variables
    2. 4.2 Read contexts with expressions
    3. 4.3 Use configuration variables
    4. 4.4 Pass files with artifacts
    5. 4.5 Speed up runs with caches
  2. 5Run matrices and reuse workflowsMatrix strategies, reusable workflows and concurrency4 lessons
    Lessons
    1. 5.1 Test many versions with a matrix
    2. 5.2 Reuse a whole workflow
    3. 5.3 Stop parallel deployments with concurrency
    4. 5.4 Set timeouts and retries
  3. 6Build a CI pipeline that tests and scansContinuous integration5 lessons
    Lessons
    1. 6.1 Lint and test the code
    2. 6.2 Test with a real database
    3. 6.3 Build and scan the container image
    4. 6.4 Scan code and dependencies
    5. 6.5 Make checks required

Part 3

Deploy and secure

  1. 7Protect deployments with secrets and environmentsSecrets, variables and environments4 lessons
    Lessons
    1. 7.1 Store secrets
    2. 7.2 Create environments
    3. 7.3 Limit the GITHUB_TOKEN
    4. 7.4 Prefer short-lived credentials
  2. 8Deploy to Azure with OIDC and no stored passwordsContinuous deployment to Azure4 lessons
    Lessons
    1. 8.1 Understand OIDC login
    2. 8.2 Set up the trust in Azure
    3. 8.3 Run Terraform with OIDC
    4. 8.4 Deploy an app to App Service
  3. 9Secure your pipelinesSecurity hardening for GitHub Actions7 lessons
    Lessons
    1. 9.1 Give the least rights
    2. 9.2 Pin and review third-party actions
    3. 9.3 Stop script injection
    4. 9.4 Handle pull requests from forks safely
    5. 9.5 Protect self-hosted runners
    6. 9.6 Prove what you built
    7. 9.7 Use a checklist