Skip to content

Commit d10f28a

Browse files
committed
emojis
1 parent 9e427bb commit d10f28a

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

README.md

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,19 @@
33
[![Badge: GitHub](https://img.shields.io/badge/GitHub-181717.svg?logo=github&logoColor=white)](#readme)
44
[![Badge: Google Cloud](https://img.shields.io/badge/Google%20Cloud-%234285F4.svg?logo=google-cloud&logoColor=white)](#readme)
55
[![Badge: Linux](https://img.shields.io/badge/Linux-FCC624.svg?logo=linux&logoColor=black)](#readme)
6-
[![Badge: License](https://img.shields.io/github/license/cyclenerd/hcloud-github-runner)](https://github.com/Cyclenerd/google-cloud-github-runner/blob/master/LICENSE)
6+
[![Badge: Terraform](https://img.shields.io/badge/Terraform-%235835CC.svg?logo=terraform&logoColor=white)](#readme)
7+
[![Badge: Python](https://img.shields.io/badge/Python-3670A0?logo=python&logoColor=ffdd54)](#readme)
8+
[![CI/CD Status](https://github.com/Cyclenerd/google-cloud-github-runner/actions/workflows/ci.yml/badge.svg)](https://github.com/Cyclenerd/google-cloud-github-runner/actions/workflows/ci.yml)
9+
[![Badge: License](https://img.shields.io/github/license/Cyclenerd/google-cloud-github-runner)](https://github.com/Cyclenerd/google-cloud-github-runner/blob/master/LICENSE)
10+
711

812
This application is **exclusively built for Google Cloud Platform (GCP)**, leveraging native services like **Google Compute Engine (GCE) Instance Templates** to manage **ephemeral** just-in-time self-hosted GitHub Actions Runners. Unlike generic solutions that merely "support" GCP, this project offers a deep, cloud-native integration designed specifically for GCP.
913

1014
For the developer, it functions as a **drop-in replacement**: just add `gcp-` to your GitHub Actions workflow YAML file (e.g., replace `runs-on: ubuntu-latest` with `runs-on: gcp-ubuntu-latest`).
1115

1216
The architecture prioritizes **simplicity and auditability**, avoiding complex abstractions. All services are configured **regionally**, giving you full control over data sovereignty. This ensures that strictly regional requirements—such as keeping all infrastructure and data within Germany—are easily met.
1317

14-
## Features
18+
## Features
1519

1620
* **Native Hardware Support**: Easily switch between **x86/64** (Intel, AMD) and **ARM** (Ampere Altra, Google Axion) architectures.
1721
* **Flexible Instance Sizes**: Choose the exact CPU and RAM needed for your workload using different GCE machine types.
@@ -23,19 +27,25 @@ The architecture prioritizes **simplicity and auditability**, avoiding complex a
2327
* **Secure Configuration**: Automatically stores credentials in Google Secret Manager.
2428
* **Cost Effective**: Runners are only active when jobs are queued.
2529

26-
## Video Tutorial
30+
## 📺 Video Tutorial
2731

2832
[![Tutorial Video on YouTube](img/youtube.jpeg)](https://www.youtube.com/watch?v=TBCL2Z7ryzA)
2933

3034
Click the image to watch the 3-minute video tutorial.
3135

32-
## Prerequisites
36+
## 🚀 Quick Start (10 Minutes)
3337

34-
All requirements are pre-installed in [Google Cloud Shell](https://shell.cloud.google.com/), making it the recommended environment for deployment.
35-
*Click "Trust repo" during the first run in Cloud Shell.*
38+
The fastest way to get started is using **Google Cloud Shell**.
39+
40+
1. **Open in Cloud Shell**:
3641

37-
[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.png)](https://shell.cloud.google.com/cloudshell/open?shellonly=true&ephemeral=false&cloudshell_git_repo=https://github.com/Cyclenerd/google-cloud-github-runner&cloudshell_git_branch=master&cloudshell_tutorial=CLOUD_SHELL_TUTORIAL.md)
42+
[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.png)](https://shell.cloud.google.com/cloudshell/open?shellonly=true&ephemeral=false&cloudshell_git_repo=https://github.com/Cyclenerd/google-cloud-github-runner&cloudshell_git_branch=master&cloudshell_tutorial=CLOUD_SHELL_TUTORIAL.md)
43+
2. **Trust the Repo**: Click "Trust repo" when prompted to enable the tutorial features.
44+
3. **Follow the Tutorial**: A step-by-step guide will open directly in your terminal.
3845

46+
## 📋 Prerequisites
47+
48+
All requirements are pre-installed in [Google Cloud Shell](https://shell.cloud.google.com/), making it the recommended environment for deployment.
3949

4050
Alternatively, you can install the tools locally on your machine.
4151

@@ -47,7 +57,7 @@ Alternatively, you can install the tools locally on your machine.
4757
* **Terraform**: [Download and install](https://developer.hashicorp.com/terraform/downloads), than use for easy Google Cloud services deployment.
4858
* **Python 3.14+**: Only needed for local development and changes to the code.
4959

50-
## Cost Control and Predictability
60+
## ⚠️ Cost Control and Predictability
5161

5262
> [!WARNING]
5363
> **This project will incur Google Cloud costs.** This application creates and manages Google Compute Engine instances, which generate billable charges. Key cost considerations:
@@ -94,7 +104,7 @@ You can estimate costs using the [Google Cloud Pricing Calculator](https://cloud
94104
* **Private Networking:** Runners operate within your Google Cloud VPC, allowing secure access to private internal resources or VPN-connected services.
95105
* **Flexible Storage:** Easily provision high-capacity disks for builds with large dependencies or artifacts, overcoming the storage limitations of GitHub-managed runners.
96106

97-
## Deployment to Google Cloud
107+
## 🛠️ Deployment to Google Cloud
98108

99109
Deploy the entire stack using Terraform:
100110

@@ -113,7 +123,7 @@ terraform apply
113123

114124
For detailed deployment instructions and configuration options, see [gcp/README.md](gcp/README.md).
115125

116-
## Configuration & Setup
126+
## ⚙️ Configuration & Setup
117127

118128
Complete the setup via the provided web interface:
119129

@@ -139,7 +149,7 @@ Complete the setup via the provided web interface:
139149
- run: echo "Hello from Google Cloud!"
140150
```
141151
142-
## Architecture
152+
## 🏗️ Architecture
143153
144154
```mermaid
145155
graph TD
@@ -195,7 +205,7 @@ graph TD
195205
5. **Webhook: Job Completed**: Instance deregisters with GitHub and is deleted.
196206
6. **Delete Runner Instance (VM)**: App deletes the GCE instance upon `workflow_job.completed`.
197207

198-
## Environment Variables
208+
## 🔐 Environment Variables
199209

200210
| Variable | Description | Required |
201211
|---------------------------|--------------------------------|--------------------------------------------|
@@ -213,15 +223,15 @@ graph TD
213223

214224
*\*One of `GITHUB_PRIVATE_KEY` or `GITHUB_PRIVATE_KEY_PATH` must be set.*
215225

216-
## API Endpoints
226+
## 📡 API Endpoints
217227

218228
* `GET /setup/` - Setup interface (requires HTTP Basic Auth: username `cloud`, password is your Project ID)
219229
* `GET /setup/callback` - OAuth callback handler (requires HTTP Basic Auth)
220230
* `GET /setup/complete` - Post-installation handler (requires HTTP Basic Auth)
221231
* `POST /setup/trigger-restart` - Restart application (requires HTTP Basic Auth)
222232
* `POST /webhook` - Main GitHub webhook receiver (requires valid GitHub webhook signature)
223233

224-
## Local Development
234+
## 💻 Local Development
225235

226236
To run the application locally for development or testing:
227237

@@ -268,7 +278,7 @@ To run the application locally for development or testing:
268278
cloudflared tunnel run --token [TOKEN]
269279
```
270280

271-
## License
281+
## 📄 License
272282

273283
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
274284

@@ -281,6 +291,6 @@ The favicon was generated using the following graphics from Twitter Twemoji:
281291
* **Graphics Source:** [https://github.com/twitter/twemoji/blob/master/assets/svg/1f431.svg](https://github.com/twitter/twemoji/blob/master/assets/svg/1f431.svg)
282292
* **Graphics License:** CC-BY 4.0 ([https://creativecommons.org/licenses/by/4.0/](https://creativecommons.org/licenses/by/4.0/))
283293

284-
## Disclaimer
294+
## ⚖️ Disclaimer
285295

286296
This project is an independent Open Source initiative and is not affiliated with, endorsed by, or associated with GitHub or Google Cloud. All trademarks and registered trademarks are the property of their respective owners.

0 commit comments

Comments
 (0)