GitHub Actions (DevZero Workspace)
Running Github Actions using the runner binary on a DevZero Workspace (similar to AWS EC2).
Pre-built recipe templates are available here.
Intended Audience
This page is for platform engineers looking to solve one or multiple of the following:
- Growing costs related to GitHub Actions use (either GitHub-hosted, or self-hosted).
- Challenges around supporting/maintaining self-hosted runners.
- Managing the lifecycle of the runners (ensuring they're up-to-date)
- Supporting various shapes of runner pools/groups (by CPU, memory, preinstalled toolset etc.)
- Cloud infrastructure costs of operating self-hosted runners
- Strong security isolation between concurrently running jobs on a given node.
- Shortening test run durations when using GitHub-hosted runners.
Using DevZero's Actions Runner Controller
Using a self-hosted runner
Self-Hosted runners are more like persistent VMs that you individually register with GitHub. See GitHub's docs for more background.
- Launch a new workspace on DevZero
- Visit your GitHub organization/repo settings page.
- Go to Actions > Runners.
- For organization-wide runners: https://github.com/organizations/ORGANIZATION/settings/actions/runners
- For repository-wide runners: https://github.com/ORGANIZATION/REPO/settings/actions/runners
- Click on "New runner" and select "New self-hosted runner".
- Select "Linux" and set "x64" as architecture.
- Follow the instructions from GitHub provided on the page, which are similar to:
Download
Configure
The $TOKEN_FROM_GITHUB will be in the UI when you create the new runner.
You may use the default settings or customize values as you'd like when going through the prompts
The token from GitHub wll expire in about an hour and is unique for your instance. You can also get the registration token non-interactively by sending a http request using curl:
Install and Start
- Verify that the runner was added to your repo/org and is either in "Idle" or "Online" state.
- Run a GitHub Action on the self-hosted runner to verify that it passes successfully, set
runs-on: self-hosted
:
Video Walkthrough
Here's a five minute video to see the process from end to end.