Commit 83f9dd4
authored
🤖 ci: migrate integration tests to self-hosted runner (#545)
## Summary
Consolidates integration test workflows and migrates them to use the
self-hosted runner (mux-ci-1) for faster, more reliable execution.
## Changes
### Merged Integration Test Jobs
- **Before**: Separate `integration-test` and `ollama-test` jobs
- **After**: Single `integration-test` job that runs all tests including
Ollama
### Self-Hosted Runner Migration
- Changed `runs-on` from `depot-ubuntu-24.04-32` to conditional:
- `self-hosted` for coder org
- `ubuntu-latest` fallback for forks
- Runner details: mux-ci-1 (62GB RAM, Ubuntu 24.04.3)
- All required dependencies pre-installed: Node.js, Bun, Make, Git,
Xvfb, Ollama, Docker
### Dynamic Ollama Detection (Fixed Brittle Check)
- **Before**: Hardcoded runner name check (`runner.name != 'mux-ci-1'`)
❌
- **After**: Dynamic detection via systemctl + API check ✅
- Checks if Ollama is already running before attempting installation
- Works with any self-hosted runner that has Ollama pre-installed
### Unified Test Execution
- All integration tests now run with `TEST_OLLAMA=1` by default
- Single coverage report instead of separate reports
- Simpler workflow configuration (28 lines removed)
## Benefits
1. **⚡ Faster execution**: Dedicated hardware with no cold starts
2. **📦 Cached models**: Ollama models (13GB gpt-oss:20b) persisted on
runner
3. **🔧 Simplified config**: One job instead of two duplicate
configurations
4. **💪 More resources**: 62GB RAM vs shared CI resources
5. **🎯 Better reliability**: No throttling or resource contention
6. **🔄 Fork compatible**: Automatically falls back to ubuntu-latest for
non-coder repos
## Runner Configuration
The self-hosted runner has been fully configured with:
| Component | Version | Status |
|-----------|---------|--------|
| GitHub Actions Runner | 2.329.0 | ✅ Running |
| Docker | 28.5.2 | ✅ Configured (runner in docker group) |
| Ollama | 0.12.10 | ✅ Running (systemd service) |
| Node.js | v20.19.5 | ✅ Installed |
| Bun | 1.3.2 | ✅ Installed |
| Xvfb | - | ✅ Installed (headless X11) |
### Ollama Model Cache
- Model: `gpt-oss:20b` (13 GB)
- Status: Fully downloaded and cached
- API: http://localhost:11434
## Review Feedback Addressed
- ✅ Removed brittle hardcoded runner name check
- ✅ Implemented dynamic Ollama detection via systemctl and API
- ✅ Installed Docker on runner
- ✅ Configured runner user with docker group access
- ✅ Restarted runner service to apply group changes
_Generated with `cmux`_1 parent 4d18e18 commit 83f9dd4
1 file changed
+25
-36
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
16 | 20 | | |
17 | 21 | | |
18 | 22 | | |
| |||
90 | 94 | | |
91 | 95 | | |
92 | 96 | | |
93 | | - | |
| 97 | + | |
94 | 98 | | |
95 | 99 | | |
96 | 100 | | |
| |||
99 | 103 | | |
100 | 104 | | |
101 | 105 | | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
131 | 116 | | |
132 | 117 | | |
| 118 | + | |
| 119 | + | |
133 | 120 | | |
134 | 121 | | |
135 | | - | |
| 122 | + | |
136 | 123 | | |
137 | 124 | | |
138 | 125 | | |
| |||
143 | 130 | | |
144 | 131 | | |
145 | 132 | | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
150 | 137 | | |
| 138 | + | |
| 139 | + | |
151 | 140 | | |
152 | 141 | | |
153 | 142 | | |
154 | 143 | | |
155 | 144 | | |
156 | 145 | | |
157 | 146 | | |
158 | | - | |
| 147 | + | |
159 | 148 | | |
160 | 149 | | |
161 | 150 | | |
| |||
0 commit comments