You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
Ephemeral GCE GitHub self-hosted runner
v0.4
Ephemeral GCE GitHub self-hosted runner.
jobs:
create-runner:
runs-on: ubuntu-latest
outputs:
label: ${{ steps.create-runner.outputs.label }}
steps:
- id: create-runner
uses: related-sciences/[email protected]
with:
token: ${{ secrets.GH_SA_TOKEN }}
project_id: ${{ secrets.GCP_PROJECT_ID }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
image_project: ubuntu-os-cloud
image_family: ubuntu-1604-lts
test:
needs: create-runner
runs-on: ${{ needs.create-runner.outputs.label }}
steps:
- run: echo "This runs on the GCE VM"
- uses: related-sciences/[email protected]
with:
command: stop
if: always()
create-runner
creates the GCE VM and registers the runner with unique labeltest
uses the runner, and destroys it as the last step
See inputs and descriptions here.
The GCE runner image should have at least:
gcloud
git
at
- (optionally) GitHub Actions Runner (see
actions_preinstalled
parameter)
- Test Workflow: Test workflow.
From GitHub's documentation:
We recommend that you only use self-hosted runners with private repositories. This is because forks of your repository can potentially run dangerous code on your self-hosted runner machine by creating a pull request that executes the code in a workflow.
If you need EC2/AWS self-hosted runner, check out machulav/ec2-github-runner.