This example is based on the default setup, but shows how runners can be used with the ephemeral flag enabled. Once enabled, ephemeral runners will be used for one job only. Each job requires a fresh instance. This feature should be used in combination with the workflow_job
event. See GitHub webhook endpoint configuration(link needed here). It is also suggested to use a pre-build AMI to minimize runner launch times.
Steps for the full setup, such as creating a GitHub app can be found in the root module's README. First download the Lambda releases from GitHub. Alternatively you can build the lambdas locally with Node or Docker, there is a simple build script in <root>/.ci/build.sh
. In the main.tf
you can simply remove the location of the lambda zip files, the default location will work in this case.
Ensure you have set the version in
lambdas-download/main.tf
for running the example. The version needs to be set to a GitHub release version, see https://github.com/philips-labs/terraform-aws-github-runner/releases
cd lambdas-download
terraform init
terraform apply
cd ..
Before running Terraform, ensure the GitHub app is configured. See the configuration details for more details.
terraform init
terraform apply
You can receive the webhook details by running:
terraform output -raw webhook_secret
Be-aware some shells will print some end of line character %
.