@@ -145013,21 +145013,23 @@ const config = __nccwpck_require__(4570);
145013145013
145014145014// User data scripts are run as the root user
145015145015function buildUserDataScript(githubRegistrationToken, label) {
145016+ let userData;
145016145017 if (config.input.runnerHomeDir) {
145017145018 // If runner home directory is specified, we expect the actions-runner software (and dependencies)
145018145019 // to be pre-installed in the AMI, so we simply cd into that directory and then start the runner
145019- return [
145020+ userData = [
145020145021 '#!/bin/bash',
145022+ 'exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1',
145021145023 `cd "${config.input.runnerHomeDir}"`,
145022145024 `echo "${config.input.preRunnerScript}" > pre-runner-script.sh`,
145023145025 'source pre-runner-script.sh',
145024145026 'export RUNNER_ALLOW_RUNASROOT=1',
145025145027 `./config.sh --url https://github.com/${config.githubContext.owner}/${config.githubContext.repo} --token ${githubRegistrationToken} --labels ${label}`,
145026- './run.sh',
145027145028 ];
145028145029 } else {
145029- return [
145030+ userData = [
145030145031 '#!/bin/bash',
145032+ 'exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1',
145031145033 'mkdir actions-runner && cd actions-runner',
145032145034 `echo "${config.input.preRunnerScript}" > pre-runner-script.sh`,
145033145035 'source pre-runner-script.sh',
@@ -145036,9 +145038,18 @@ function buildUserDataScript(githubRegistrationToken, label) {
145036145038 'tar xzf ./actions-runner-linux-${RUNNER_ARCH}-2.313.0.tar.gz',
145037145039 'export RUNNER_ALLOW_RUNASROOT=1',
145038145040 `./config.sh --url https://github.com/${config.githubContext.owner}/${config.githubContext.repo} --token ${githubRegistrationToken} --labels ${label}`,
145039- './run.sh',
145040145041 ];
145041145042 }
145043+ if (config.input.runAsUser) {
145044+ userData.push(`chown -R ${config.input.runAsUser} .`);
145045+ }
145046+ if (config.input.runAsService) {
145047+ userData.push(`./svc.sh install ${config.input.runAsUser || ''}`);
145048+ userData.push('./svc.sh start');
145049+ } else {
145050+ userData.push(`${config.input.runAsUser ? `su ${config.input.runAsUser} -c` : ''} ./run.sh`);
145051+ }
145052+ return userData;
145042145053}
145043145054
145044145055function buildMarketOptions() {
@@ -145160,6 +145171,8 @@ class Config {
145160145171 startupRetryIntervalSeconds: core.getInput('startup-retry-interval-seconds'),
145161145172 startupTimeoutMinutes: core.getInput('startup-timeout-minutes'),
145162145173 subnetId: core.getInput('subnet-id'),
145174+ runAsService: core.getInput('run-runner-as-service') === 'true',
145175+ runAsUser: core.getInput('run-runner-as-user')
145163145176 };
145164145177
145165145178 const tags = JSON.parse(core.getInput('aws-resource-tags'));
0 commit comments