Skip to content

Commit 339e467

Browse files
kpturneresteve
authored andcommitted
Add ability to specify user
1 parent 8dd46f6 commit 339e467

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

action.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ inputs:
9191
description: >-
9292
Start the runner as a service rather than using ./run.sh as root.
9393
required: false
94+
run-runner-as-user:
95+
description: >-
96+
Specify user under whom the runner service should run
9497
outputs:
9598
label:
9699
description: >-

src/aws.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ function buildUserDataScript(githubRegistrationToken, label) {
1111
// to be pre-installed in the AMI, so we simply cd into that directory and then start the runner
1212
userData = [
1313
'#!/bin/bash',
14+
'exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1',
1415
`cd "${config.input.runnerHomeDir}"`,
1516
`echo "${config.input.preRunnerScript}" > pre-runner-script.sh`,
1617
'source pre-runner-script.sh',
@@ -20,6 +21,7 @@ function buildUserDataScript(githubRegistrationToken, label) {
2021
} else {
2122
userData = [
2223
'#!/bin/bash',
24+
'exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1',
2325
'mkdir actions-runner && cd actions-runner',
2426
`echo "${config.input.preRunnerScript}" > pre-runner-script.sh`,
2527
'source pre-runner-script.sh',
@@ -30,11 +32,14 @@ function buildUserDataScript(githubRegistrationToken, label) {
3032
`./config.sh --url https://github.com/${config.githubContext.owner}/${config.githubContext.repo} --token ${githubRegistrationToken} --labels ${label}`,
3133
];
3234
}
35+
if (config.input.runAsUser) {
36+
userData.push(`chown -R ${config.input.runAsUser} ${config.input.runnerHomeDir}`);
37+
}
3338
if (config.input.runAsService) {
34-
userData.push('./svc.sh install');
39+
userData.push(`./svc.sh install ${config.input.runAsUser || ''}`);
3540
userData.push('./svc.sh start');
3641
} else {
37-
userData.push('./run.sh');
42+
userData.push(`${config.input.runAsUser ? `su ${config.input.runAsUser} -c` : ''} ./run.sh`);
3843
}
3944
return userData;
4045
}

src/config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ class Config {
1919
startupRetryIntervalSeconds: core.getInput('startup-retry-interval-seconds'),
2020
startupTimeoutMinutes: core.getInput('startup-timeout-minutes'),
2121
subnetId: core.getInput('subnet-id'),
22-
runAsService: core.getInput('run-runner-as-service')
22+
runAsService: core.getInput('run-runner-as-service') === 'true',
23+
runAsUser: core.getInput('run-runner-as-user')
2324
};
2425

2526
const tags = JSON.parse(core.getInput('aws-resource-tags'));

0 commit comments

Comments
 (0)