Add self-hosted runner management workflow for automated test execution #186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR implements a comprehensive GitHub Actions workflow that automates the lifecycle management of self-hosted runners on lab hosts, addressing the need to dynamically provision runners, execute build/test matrices, and clean up resources afterwards.
Problem Statement
Previously, there was no automated way to:
Solution
Added a complete self-hosted runner management system (
self-hosted-runner.yml) that:1. Dynamic Runner Provisioning
runner-<run_id>) to prevent conflicts2. Build Matrix Execution
labnet.yamlbased on selected host3. Automatic Cleanup
Key Features
Usage Example
Integration with Existing Infrastructure
labnet.yamlconfiguration structuredaily.yml,pull_requests.yml)global-coordinatorrunnerImplementation Details
The workflow consists of 4 jobs:
labnet.yamlto create device test matrix for selected hostif: false)Note on Test Matrix Job
The
test-matrixjob is intentionally disabled by default (if: false) because it requires runners to be physically deployed on lab hosts. This allows the workflow to be merged and tested incrementally. To enable full functionality:if: falsetoif: truein the test-matrix job configurationFiles Added
.github/workflows/self-hosted-runner.yml- Main workflow (368 lines)docs/self-hosted-runners.md- User documentation with architecture diagram (262 lines)docs/IMPLEMENTATION_SUMMARY.md- Technical implementation details (298 lines)README.md- Added self-hosted runner management section (20 lines)Benefits
Future Enhancements
Potential improvements documented in implementation summary:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.