- JIT (Just-In-Time) runner support via new
use-jitinput (default:false). JIT runners use GitHub'sgenerate-jitconfigAPI, skipconfig.sh, and auto-deregister after completing one job. - New
runner-group-idinput for specifying the runner group when using JIT mode (default:1). - Validation:
use-jitandrun-runner-as-servicecannot be used together (JIT is single-use). - New
runner-debuginput (default:false) for verbose debug logging. When enabled, injects detailed echo statements into the setup script and polls EC2 serial console output during runner registration. Requiresec2:GetConsoleOutputIAM permission. - New
availability-zones-configinput for multi-AZ failover. The action tries each configuration in sequence until an instance is successfully launched. - New
metadata-optionsinput for configuring EC2 instance metadata (e.g. IMDSv2). - New
packagesinput for installing packages via cloud-init during boot. - New
regionoutput for tracking which AWS region the instance was launched in. - EC2 console output polling via
GetConsoleOutputCommandfor remote debugging. - Test suite expanded to 25 tests covering JIT, debug mode, cloud-boothook, runuser, tolerant chown, stale config cleanup, and package installation.
- Switched user-data format from
#cloud-configwithruncmdto#cloud-boothook. This fixes compatibility with Amazon Linux 2023 and other AMIs wherecloud_final_modulesmay be empty or misconfigured. - Replaced
su <user> -cwithrunuser -u <user> --to avoid password prompts in non-interactive cloud-init contexts. - Made
chowntolerant of permission errors (|| true) to preventset -efrom killing the script when_diag/files are owned by root. - Setup script now removes stale runner config files (
.runner,.credentials,.credentials_rsaparams) beforeconfig.shto handle AMIs created from previously configured runner instances. - Setup script logs are written to
/tmp/runner-setup.loginstead of/var/log/user-data.logand/dev/console(which may not be accessible). - Updated README with full documentation for all new inputs, IAM requirements for debug mode, and advanced usage sections (JIT, Multi-AZ, Debug).