# lm-academy/github-actions-course architecture

> Architecture diagram of the GitHub repository lm-academy/github-actions-course, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lm-academy/github-actions-course
- Repository: https://github.com/lm-academy/github-actions-course

## Overview

This is a GitHub Actions teaching repository, not a standalone application. The learner’s main path is to use the course README to find topic lessons, then study the corresponding workflow examples and supporting code. The README documents that layout; workflow internals were not sampled, so the graph does not infer execution links between examples or services.

Main entry points: [`README.md`](https://github.com/lm-academy/github-actions-course/blob/main/README.md) (Course README), [`17-custom-actions/README.md`](https://github.com/lm-academy/github-actions-course/blob/main/17-custom-actions/README.md) (Custom actions), [`01-building-blocks/README.md`](https://github.com/lm-academy/github-actions-course/blob/main/01-building-blocks/README.md) (Building blocks), [`02-workflow-events/README.md`](https://github.com/lm-academy/github-actions-course/blob/main/02-workflow-events/README.md) (Events and filters)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_foundations["Workflow foundations"]
  node_basics["Building blocks<br/>[README.md]"]
  node_events["Events and filters<br/>[README.md]"]
  node_runners["Runners and actions<br/>[README.md]"]
  node_contexts["Contexts and expressions<br/>[README.md]"]
  node_execution["Execution flow<br/>[README.md]"]
  node_workflow_examples["Workflow examples"]
end

subgraph group_features["Workflow features"]
  node_variables["Variables and functions<br/>[README.md]"]
  node_inputs_outputs["Inputs and outputs<br/>[README.md]"]
  node_caching["Caching<br/>[README.md]"]
  node_artifacts["Artifacts<br/>[README.md]"]
  node_matrices["Matrices<br/>[README.md]"]
  node_environments["Environments<br/>[README.md]"]
  node_concurrency["Concurrency<br/>[README.md]"]
end

subgraph group_reuse["Reuse and security"]
  node_reusable["Reusable workflows<br/>[README.md]"]
  node_security["Workflow security"]
end

subgraph group_actions["Custom actions"]
  node_custom_actions["Custom actions<br/>[README.md]"]
  node_composite_action["Composite action example"]
  node_js_action["JavaScript action example"]
  node_docker_action["Docker action example"]
end

node_learner(("Learner"))
node_course["Course README<br/>[README.md]"]

node_learner -->|"browses"| node_course
node_course -->|"guides to"| node_basics
node_course -->|"guides to"| node_events
node_course -->|"guides to"| node_runners
node_course -->|"guides to"| node_contexts
node_course -->|"guides to"| node_execution
node_course -->|"locates examples"| node_workflow_examples
node_course -->|"guides to"| node_variables
node_course -->|"guides to"| node_inputs_outputs
node_course -->|"guides to"| node_caching
node_course -->|"guides to"| node_artifacts
node_course -->|"guides to"| node_matrices
node_course -->|"guides to"| node_environments
node_course -->|"guides to"| node_concurrency
node_course -->|"guides to"| node_reusable
node_course -->|"guides to"| node_security
node_course -->|"guides to"| node_custom_actions
node_custom_actions -->|"demonstrated by"| node_composite_action
node_custom_actions -->|"demonstrated by"| node_js_action
node_custom_actions -->|"demonstrated by"| node_docker_action

click node_course "https://github.com/lm-academy/github-actions-course/blob/main/README.md"
click node_basics "https://github.com/lm-academy/github-actions-course/blob/main/01-building-blocks/README.md"
click node_events "https://github.com/lm-academy/github-actions-course/blob/main/02-workflow-events/README.md"
click node_runners "https://github.com/lm-academy/github-actions-course/blob/main/03-workflow-runners/README.md"
click node_contexts "https://github.com/lm-academy/github-actions-course/blob/main/06-contexts/README.md"
click node_execution "https://github.com/lm-academy/github-actions-course/blob/main/10-execution-flow/README.md"
click node_workflow_examples "https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/01-building-blocks.yaml"
click node_variables "https://github.com/lm-academy/github-actions-course/blob/main/08-variables/README.md"
click node_inputs_outputs "https://github.com/lm-academy/github-actions-course/blob/main/11-inputs/README.md"
click node_caching "https://github.com/lm-academy/github-actions-course/blob/main/13-caching/README.md"
click node_artifacts "https://github.com/lm-academy/github-actions-course/blob/main/14-artifacts/README.md"
click node_matrices "https://github.com/lm-academy/github-actions-course/blob/main/15-matrices/README.md"
click node_environments "https://github.com/lm-academy/github-actions-course/blob/main/16-environments/README.md"
click node_concurrency "https://github.com/lm-academy/github-actions-course/blob/main/19-concurrency/README.md"
click node_reusable "https://github.com/lm-academy/github-actions-course/blob/main/18-reusable-workflows/README.md"
click node_security "https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/20-workflow-security.yaml"
click node_custom_actions "https://github.com/lm-academy/github-actions-course/blob/main/17-custom-actions/README.md"
click node_composite_action "https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/17-1-custom-actions-composite.yaml"
click node_js_action "https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/17-2-custom-actions-js.yaml"
click node_docker_action "https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/17-3-custom-actions-docker.yaml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_basics,node_events,node_runners,node_contexts,node_execution,node_workflow_examples toneBlue
class node_variables,node_inputs_outputs,node_caching,node_artifacts,node_matrices,node_environments,node_concurrency toneAmber
class node_reusable,node_security toneMint
class node_custom_actions,node_composite_action,node_js_action,node_docker_action toneRose
class node_learner toneIndigo
class node_course toneTeal
```

## Components

### Workflow foundations

- [Building blocks](https://github.com/lm-academy/github-actions-course/blob/main/01-building-blocks/README.md): `01-building-blocks/README.md`
- [Events and filters](https://github.com/lm-academy/github-actions-course/blob/main/02-workflow-events/README.md): `02-workflow-events/README.md`
- [Runners and actions](https://github.com/lm-academy/github-actions-course/blob/main/03-workflow-runners/README.md): `03-workflow-runners/README.md`
- [Contexts and expressions](https://github.com/lm-academy/github-actions-course/blob/main/06-contexts/README.md): `06-contexts/README.md`
- [Execution flow](https://github.com/lm-academy/github-actions-course/blob/main/10-execution-flow/README.md): `10-execution-flow/README.md`
- [Workflow examples](https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/01-building-blocks.yaml): `.github/workflows/01-building-blocks.yaml`

### Workflow features

- [Variables and functions](https://github.com/lm-academy/github-actions-course/blob/main/08-variables/README.md): `08-variables/README.md`
- [Inputs and outputs](https://github.com/lm-academy/github-actions-course/blob/main/11-inputs/README.md): `11-inputs/README.md`
- [Caching](https://github.com/lm-academy/github-actions-course/blob/main/13-caching/README.md): `13-caching/README.md`
- [Artifacts](https://github.com/lm-academy/github-actions-course/blob/main/14-artifacts/README.md): `14-artifacts/README.md`
- [Matrices](https://github.com/lm-academy/github-actions-course/blob/main/15-matrices/README.md): `15-matrices/README.md`
- [Environments](https://github.com/lm-academy/github-actions-course/blob/main/16-environments/README.md): `16-environments/README.md`
- [Concurrency](https://github.com/lm-academy/github-actions-course/blob/main/19-concurrency/README.md): `19-concurrency/README.md`

### Reuse and security

- [Reusable workflows](https://github.com/lm-academy/github-actions-course/blob/main/18-reusable-workflows/README.md): `18-reusable-workflows/README.md`
- [Workflow security](https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/20-workflow-security.yaml): `.github/workflows/20-workflow-security.yaml`

### Custom actions

- [Custom actions](https://github.com/lm-academy/github-actions-course/blob/main/17-custom-actions/README.md): `17-custom-actions/README.md`
- [Composite action example](https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/17-1-custom-actions-composite.yaml): `.github/workflows/17-1-custom-actions-composite.yaml`
- [JavaScript action example](https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/17-2-custom-actions-js.yaml): `.github/workflows/17-2-custom-actions-js.yaml`
- [Docker action example](https://github.com/lm-academy/github-actions-course/blob/main/.github/workflows/17-3-custom-actions-docker.yaml): `.github/workflows/17-3-custom-actions-docker.yaml`

### Other components

- **Learner**
- [Course README](https://github.com/lm-academy/github-actions-course/blob/main/README.md): `README.md`

## Connections

- Learner → Course README: browses
- Course README → Building blocks: guides to
- Course README → Events and filters: guides to
- Course README → Runners and actions: guides to
- Course README → Contexts and expressions: guides to
- Course README → Execution flow: guides to
- Course README → Workflow examples: locates examples
- Course README → Variables and functions: guides to
- Course README → Inputs and outputs: guides to
- Course README → Caching: guides to
- Course README → Artifacts: guides to
- Course README → Matrices: guides to
- Course README → Environments: guides to
- Course README → Concurrency: guides to
- Course README → Reusable workflows: guides to
- Course README → Workflow security: guides to
- Course README → Custom actions: guides to
- Custom actions → Composite action example: demonstrated by
- Custom actions → JavaScript action example: demonstrated by
- Custom actions → Docker action example: demonstrated by
