@@ -81,7 +81,65 @@ Before deploying this solution, ensure you have:
81
81
82
82
---
83
83
84
- ## 🚀 Quick Start Guide
84
+ ## � Project Structure
85
+
86
+ ```
87
+ gha-self-hosted/
88
+ ├── 📁 .github/workflows/ # GitHub Actions deployment workflows
89
+ │ ├── build_deploy_controller_function.yml
90
+ │ ├── build_deploy_images.yml
91
+ │ ├── create_azure_remote_backend.yml
92
+ │ ├── deploy_azure_infra.yml
93
+ │ ├── deploy_receiver_function.yml
94
+ │ └── test_deploy_controller.yml
95
+ ├── 📁 create-azure-infra/ # Main Terraform infrastructure
96
+ │ ├── main.tf # Azure resources definition
97
+ │ ├── variables.tf # Input variables
98
+ │ ├── outputs.tf # Output values
99
+ │ ├── data.tf # Data sources
100
+ │ ├── provider.tf # Provider configuration
101
+ │ ├── dev.tfvars # Environment-specific values
102
+ │ └── dev-backend.config # Terraform backend configuration
103
+ ├── 📁 create-remote-state/ # Terraform backend setup
104
+ │ ├── main.tf # Remote state infrastructure
105
+ │ └── variables.tf # Backend variables
106
+ ├── 📁 github-runner-receiver-function/ # HTTP trigger function
107
+ │ ├── function_app.py # Webhook receiver logic
108
+ │ ├── requirements.txt # Python dependencies
109
+ │ ├── host.json # Function configuration
110
+ │ ├── local.settings.json # Local development settings
111
+ │ └── .funcignore # Function ignore file
112
+ ├── 📁 github-runner-controller-function/ # Queue trigger function
113
+ │ ├── function_app.py # Container provisioning logic
114
+ │ ├── requirements.txt # Python dependencies
115
+ │ ├── host.json # Function configuration
116
+ │ ├── local.settings.json # Local development settings
117
+ │ └── .funcignore # Function ignore file
118
+ ├── 📁 github-runner-cleanup-function/ # Timer trigger function
119
+ │ ├── function_app.py # Cleanup logic
120
+ │ ├── requirements.txt # Python dependencies
121
+ │ ├── host.json # Function configuration
122
+ │ ├── local.settings.json # Local development settings
123
+ │ └── .funcignore # Function ignore file
124
+ ├── 📁 github-runner-images/ # Docker container definitions
125
+ │ ├── docker-compose.yml # Multi-stage build configuration
126
+ │ ├── test.http # API testing file
127
+ │ └── context/
128
+ │ ├── Dockerfile.base # Base Ubuntu image with tools
129
+ │ ├── Dockerfile.runner # GitHub Actions runner image
130
+ │ ├── Dockerfile.test # Test container image
131
+ │ └── script/
132
+ │ ├── app.sh # Runner registration script
133
+ │ ├── generate_jwt.py # GitHub App JWT generation
134
+ │ └── requirements.txt # Python dependencies for scripts
135
+ ├── 📄 design_diagram.png # Architecture diagram
136
+ ├── 📄 README.md # This file
137
+ └── 📄 .gitignore # Git ignore rules
138
+ ```
139
+
140
+ ---
141
+
142
+ ## �🚀 Deployment Steps
85
143
86
144
### Step 1: Clone and Setup
87
145
0 commit comments