# hossain8078/github-actions-course-main architecture

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

- Interactive diagram: https://gitdiagram.com/hossain8078/github-actions-course-main
- Repository: https://github.com/hossain8078/github-actions-course-main

## Overview

This repository is a GitHub Actions course: its main product is a collection of workflow examples and learning material for CI/CD and DevSecOps. Learners explore workflow triggers and reusable workflows, then examples covering .NET and web-app deployment, containers, Azure, Kubernetes, and runner configuration. A small ASP.NET Core MVC app is also present as an application example. Workflow files were not sampled, so their internal job steps and connections are not asserted; the app links below reflect only the sampled source.

Main entry points: [`03-app-dotnet/Controllers/HomeController.cs`](https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Controllers/HomeController.cs) (Home controller), [`03-app-dotnet/Program.cs`](https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Program.cs) (MVC application), [`.github/workflows/010-blank-workflow.yml`](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/010-blank-workflow.yml) (Blank workflow), [`.github/workflows/020-manual-input-workflow.yml`](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/020-manual-input-workflow.yml) (Manual inputs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Workflow fundamentals"]
  node_blank["Blank workflow"]
  node_manual["Manual inputs"]
  node_trigger["Azure DevOps trigger"]
  node_reusablecaller["Reusable caller"]
  node_reusablecalled["Reusable workflow"]
end

subgraph group_delivery["Build and deploy"]
  node_dotnet[".NET workflow"]
  node_webdeploy["Azure web deploy"]
  node_docker["Docker build"]
  node_ghcr["GHCR workflow"]
end

subgraph group_platform["Cloud and runners"]
  node_kubernetes["Kubernetes workflow"]
  node_runner["Self-hosted runner"]
  node_azureoidc["Azure OIDC<br/>[090-oidc-azure.yml]"]
end

subgraph group_sampleapp["ASP.NET sample"]
  node_dotnetapp["MVC application<br/>[Program.cs]"]
  node_home["Home controller<br/>[HomeController.cs]"]
  node_errormodel["Error view model<br/>[ErrorViewModel.cs]"]
  node_views["MVC views"]
end

node_learner(("Course learner"))

node_learner -->|"explores"| node_blank
node_learner -->|"explores"| node_manual
node_learner -->|"explores"| node_trigger
node_learner -->|"explores"| node_reusablecaller
node_learner -->|"explores"| node_reusablecalled
node_learner -->|"explores"| node_dotnet
node_learner -->|"explores"| node_webdeploy
node_learner -->|"explores"| node_docker
node_learner -->|"explores"| node_ghcr
node_learner -->|"explores"| node_kubernetes
node_learner -->|"explores"| node_runner
node_learner -->|"explores"| node_azureoidc
node_dotnetapp -->|"routes requests"| node_home
node_home -->|"creates"| node_errormodel
node_home -->|"returns views"| node_views

click node_blank "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/010-blank-workflow.yml"
click node_manual "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/020-manual-input-workflow.yml"
click node_trigger "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/0100-trigger-azure-devops-pipeline.yaml"
click node_reusablecaller "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/080-resusable-workflow-caller.yml"
click node_reusablecalled "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/080-reusable-workflow-called.yml"
click node_dotnet "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/030-dotnet-workflow.yml"
click node_webdeploy "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/031-build-deploy-webapp-to-azure.yml"
click node_docker "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/050-docker-build-workflow.yml"
click node_ghcr "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/052-docker-ghcr-workflow.yml"
click node_kubernetes "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/060-kubernetes-workflow.md"
click node_runner "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/070-self-hosted-runner.yml"
click node_azureoidc "https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/090-oidc-azure.yml"
click node_dotnetapp "https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Program.cs"
click node_home "https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Controllers/HomeController.cs"
click node_errormodel "https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Models/ErrorViewModel.cs"
click node_views "https://github.com/hossain8078/github-actions-course-main/tree/main/03-app-dotnet/Views"

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_blank,node_manual,node_trigger,node_reusablecaller,node_reusablecalled toneBlue
class node_dotnet,node_webdeploy,node_docker,node_ghcr toneAmber
class node_kubernetes,node_runner,node_azureoidc toneMint
class node_dotnetapp,node_home,node_errormodel,node_views toneRose
class node_learner toneIndigo
```

## Components

### Workflow fundamentals

- [Blank workflow](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/010-blank-workflow.yml): `.github/workflows/010-blank-workflow.yml`
- [Manual inputs](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/020-manual-input-workflow.yml): `.github/workflows/020-manual-input-workflow.yml`
- [Azure DevOps trigger](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/0100-trigger-azure-devops-pipeline.yaml): `.github/workflows/0100-trigger-azure-devops-pipeline.yaml`
- [Reusable caller](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/080-resusable-workflow-caller.yml): `.github/workflows/080-resusable-workflow-caller.yml`
- [Reusable workflow](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/080-reusable-workflow-called.yml): `.github/workflows/080-reusable-workflow-called.yml`

### Build and deploy

- [.NET workflow](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/030-dotnet-workflow.yml): `.github/workflows/030-dotnet-workflow.yml`
- [Azure web deploy](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/031-build-deploy-webapp-to-azure.yml): `.github/workflows/031-build-deploy-webapp-to-azure.yml`
- [Docker build](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/050-docker-build-workflow.yml): `.github/workflows/050-docker-build-workflow.yml`
- [GHCR workflow](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/052-docker-ghcr-workflow.yml): `.github/workflows/052-docker-ghcr-workflow.yml`

### Cloud and runners

- [Kubernetes workflow](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/060-kubernetes-workflow.md): `.github/workflows/060-kubernetes-workflow.md`
- [Self-hosted runner](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/070-self-hosted-runner.yml): `.github/workflows/070-self-hosted-runner.yml`
- [Azure OIDC](https://github.com/hossain8078/github-actions-course-main/blob/main/.github/workflows/090-oidc-azure.yml): `.github/workflows/090-oidc-azure.yml`

### ASP.NET sample

- [MVC application](https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Program.cs): `03-app-dotnet/Program.cs`
- [Home controller](https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Controllers/HomeController.cs): `03-app-dotnet/Controllers/HomeController.cs`
- [Error view model](https://github.com/hossain8078/github-actions-course-main/blob/main/03-app-dotnet/Models/ErrorViewModel.cs): `03-app-dotnet/Models/ErrorViewModel.cs`
- [MVC views](https://github.com/hossain8078/github-actions-course-main/tree/main/03-app-dotnet/Views): `03-app-dotnet/Views`

### Other components

- **Course learner**

## Connections

- Course learner → Blank workflow: explores (evidence: `README.md`)
- Course learner → Manual inputs: explores (evidence: `README.md`)
- Course learner → Azure DevOps trigger: explores (evidence: `README.md`)
- Course learner → Reusable caller: explores (evidence: `README.md`)
- Course learner → Reusable workflow: explores (evidence: `README.md`)
- Course learner → .NET workflow: explores (evidence: `README.md`)
- Course learner → Azure web deploy: explores (evidence: `README.md`)
- Course learner → Docker build: explores (evidence: `README.md`)
- Course learner → GHCR workflow: explores (evidence: `README.md`)
- Course learner → Kubernetes workflow: explores (evidence: `README.md`)
- Course learner → Self-hosted runner: explores (evidence: `README.md`)
- Course learner → Azure OIDC: explores (evidence: `README.md`)
- MVC application → Home controller: routes requests (evidence: `03-app-dotnet/Program.cs`)
- Home controller → Error view model: creates (evidence: `03-app-dotnet/Controllers/HomeController.cs`)
- Home controller → MVC views: returns views (evidence: `03-app-dotnet/Controllers/HomeController.cs`)
