Skip to content

Commit 99471fa

Browse files
committed
Update README.md: remove reusable workflow, show template pattern
Changes: - Updated Quick Start: 15-20 min (realistic), copy template approach - Removed JSON/reusable workflow examples - Simplified system overview diagram - Updated Key Files section to show template-package-test.yml - Updated Contributing guide with template copy instructions - Removed outdated reusable workflow references The guide now shows a single, clear pattern: copy the template and customize.
1 parent ab93488 commit 99471fa

File tree

1 file changed

+74
-69
lines changed

1 file changed

+74
-69
lines changed

tests/README.md

Lines changed: 74 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -25,72 +25,73 @@ For advanced users and maintainers:
2525

2626
---
2727

28-
## 🚀 Quick Start (5 Minutes)
28+
## 🚀 Quick Start (15-20 Minutes)
2929

3030
### 1. **Understand the System**
3131
- Tests run on native ARM64 GitHub runners (`ubuntu-24.04-arm`)
3232
- Results stored as JSON badges in `data/test-results/`
3333
- Badges auto-display on the Hugo dashboard
3434

35-
### 2. **Add Your First Package**
35+
### 2. **Copy the Template**
3636

37-
Create `.github/workflows/test-your-package.yml`:
37+
Start with our template file:
3838

39+
```bash
40+
cp .github/workflows/template-package-test.yml .github/workflows/test-redis.yml
41+
```
42+
43+
### 3. **Customize for Your Package**
44+
45+
Edit `test-redis.yml` and replace placeholders:
46+
- Change `<PACKAGE>``Redis` (display name)
47+
- Change `<package>``redis` (lowercase, matches filename)
48+
- Update install commands (apt, binary download, etc.)
49+
- Update version detection command
50+
- Add/modify test steps as needed
51+
52+
Example install section:
3953
```yaml
40-
name: Test Your Package on Arm64
41-
42-
on:
43-
workflow_dispatch:
44-
schedule:
45-
- cron: '0 2 * * *' # Daily at 2 AM UTC
46-
47-
jobs:
48-
test-your-package:
49-
uses: ./.github/workflows/reusable-package-test.yml
50-
with:
51-
package_name: "your-package"
52-
package_display_name: "Your Package"
53-
package_version: "1.2.3"
54-
install_commands: |
55-
sudo apt-get update
56-
sudo apt-get install -y your-package
57-
version_command: "your-package --version"
58-
test_commands: |
59-
[
60-
{
61-
"name": "Binary Check",
62-
"command": "which your-package"
63-
},
64-
{
65-
"name": "Version Check",
66-
"command": "your-package --version"
67-
},
68-
{
69-
"name": "Functional Test",
70-
"command": "your-package --test"
71-
}
72-
]
54+
- name: Install Redis
55+
run: |
56+
sudo apt-get update
57+
sudo apt-get install -y redis-server
7358
```
7459
75-
### 3. **Run and Verify**
60+
### 4. **Add to Orchestrator**
61+
62+
Edit `.github/workflows/test-all-packages.yml` and add:
63+
64+
```yaml
65+
test-redis:
66+
uses: ./.github/workflows/test-redis.yml
67+
```
68+
69+
### 5. **Run and Verify**
70+
7671
```bash
77-
# Trigger the workflow
78-
gh workflow run test-your-package.yml
72+
# Test locally with act (optional)
73+
act workflow_dispatch -j test-redis
74+
75+
# Or trigger via GitHub
76+
gh workflow run test-redis.yml
7977
8078
# Check the results
81-
cat data/test-results/your-package.json
79+
cat data/test-results/redis.json
8280
```
8381

84-
### 4. **See the Badge**
85-
The badge will automatically appear on your package page in the Hugo dashboard!
82+
### 6. **See the Badge**
83+
84+
The badge will automatically appear on the Redis package page in the Hugo dashboard!
85+
86+
**💡 Tip:** Look at `test-nginx.yml` or `test-envoy.yml` for real working examples.
8687

8788
---
8889

8990
## 📊 System Overview
9091

9192
```
9293
┌─────────────────────────────────────────────────────────┐
93-
│ test-all-packages.yml (Parent Orchestrator) │
94+
│ test-all-packages.yml (Orchestrator)
9495
│ • Triggers all package tests in parallel │
9596
│ • Runs daily at 2 AM UTC │
9697
│ • Aggregates results │
@@ -101,32 +102,31 @@ The badge will automatically appear on your package page in the Hugo dashboard!
101102
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
102103
│ test-nginx │ │ test-envoy │ │ test-redis │
103104
│ .yml │ │ .yml │ │ .yml │
105+
│ │ │ │ │ │
106+
│ 1. Install │ │ 1. Install │ │ 1. Install │
107+
│ 2. Version │ │ 2. Version │ │ 2. Version │
108+
│ 3. Test │ │ 3. Test │ │ 3. Test │
109+
│ 4. JSON │ │ 4. JSON │ │ 4. JSON │
110+
│ 5. Commit │ │ 5. Commit │ │ 5. Commit │
104111
└──────────────┘ └──────────────┘ └──────────────┘
105112
│ │ │
106-
└──────────────────┼──────────────────┘
107-
108-
┌─────────────────────────────────────────┐
109-
│ reusable-package-test.yml │
110-
│ • Generic test template │
111-
│ • Install → Version → Test → Badge │
112-
│ • Auto-conflict resolution │
113-
└─────────────────────────────────────────┘
114-
115-
116-
┌─────────────────────────────────────────┐
117-
│ data/test-results/package.json │
118-
│ • JSON schema v1.0 │
119-
│ • Auto-committed [skip ci] │
120-
└─────────────────────────────────────────┘
113+
▼ ▼ ▼
114+
┌─────────────────────────────────────────────────────────┐
115+
│ data/test-results/*.json │
116+
│ • JSON schema v1.0 │
117+
│ • Auto-committed [skip ci]
118+
└─────────────────────────────────────────────────────────┘
121119
122120
123-
─────────────────────────────────────────┐
124-
│ Hugo Dashboard Badge Display
125-
│ • Integrated in row-sub.html │
126-
│ • Green/Red color coding
127-
─────────────────────────────────────────┘
121+
┌─────────────────────────────────────────────────────────┐
122+
│ Hugo Dashboard Badge Display
123+
│ • Integrated in row-sub.html
124+
│ • Green/Red color coding
125+
└─────────────────────────────────────────────────────────┘
128126
```
129127
128+
**Pattern:** All workflows follow the same structure - copy `template-package-test.yml` and customize.
129+
130130
---
131131
132132
## 🎯 Current Status
@@ -142,8 +142,12 @@ The badge will automatically appear on your package page in the Hugo dashboard!
142142
143143
## 🔧 Key Files
144144
145-
- **`.github/workflows/reusable-package-test.yml`** - The reusable workflow template
146-
- **`.github/workflows/test-all-packages.yml`** - Parent orchestrator
145+
## 🔧 Key Files
146+
147+
- **`.github/workflows/template-package-test.yml`** - Template for new package tests
148+
- **`.github/workflows/test-nginx.yml`** - nginx example (5 tests)
149+
- **`.github/workflows/test-envoy.yml`** - Envoy example (4 tests)
150+
- **`.github/workflows/test-all-packages.yml`** - Orchestrator
147151
- **`data/test-results/*.json`** - Test result JSON files
148152
- **`themes/.../row-sub.html`** - Badge display template
149153
@@ -161,10 +165,11 @@ The badge will automatically appear on your package page in the Hugo dashboard!
161165
## 🤝 Contributing
162166
163167
When adding new packages:
164-
1. Follow the pattern in `test-nginx.yml` or `test-envoy.yml`
165-
2. Use the reusable workflow template for consistency
166-
3. Test locally before committing
167-
4. Update this README's status table
168+
1. Copy `template-package-test.yml` to `test-<package>.yml`
169+
2. Customize install, version, and test steps
170+
3. Add to `test-all-packages.yml`
171+
4. Test locally before committing
172+
5. Update this README's status table
168173
169174
---
170175

0 commit comments

Comments
 (0)