Skip to content

Commit 04c5c53

Browse files
kpturneresteve
authored andcommitted
Add ability to specify user
1 parent caa5421 commit 04c5c53

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
@@ -74,6 +74,9 @@ inputs:
7474
description: >-
7575
Start the runner as a service rather than using ./run.sh as root.
7676
required: false
77+
run-runner-as-user:
78+
description: >-
79+
Specify user under whom the runner service should run
7780
outputs:
7881
label:
7982
description: >-

src/aws.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ function buildUserDataScript(githubRegistrationToken, label) {
1010
// to be pre-installed in the AMI, so we simply cd into that directory and then start the runner
1111
userData = [
1212
'#!/bin/bash',
13+
'exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1',
1314
`cd "${config.input.runnerHomeDir}"`,
1415
`echo "${config.input.preRunnerScript}" > pre-runner-script.sh`,
1516
'source pre-runner-script.sh',
@@ -19,6 +20,7 @@ function buildUserDataScript(githubRegistrationToken, label) {
1920
} else {
2021
userData = [
2122
'#!/bin/bash',
23+
'exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1',
2224
'mkdir actions-runner && cd actions-runner',
2325
`echo "${config.input.preRunnerScript}" > pre-runner-script.sh`,
2426
'source pre-runner-script.sh',
@@ -29,11 +31,14 @@ function buildUserDataScript(githubRegistrationToken, label) {
2931
`./config.sh --url https://github.com/${config.githubContext.owner}/${config.githubContext.repo} --token ${githubRegistrationToken} --labels ${label}`,
3032
];
3133
}
34+
if (config.input.runAsUser) {
35+
userData.push(`chown -R ${config.input.runAsUser} ${config.input.runnerHomeDir}`);
36+
}
3237
if (config.input.runAsService) {
33-
userData.push('./svc.sh install');
38+
userData.push(`./svc.sh install ${config.input.runAsUser || ''}`);
3439
userData.push('./svc.sh start');
3540
} else {
36-
userData.push('./run.sh');
41+
userData.push(`${config.input.runAsUser ? `su ${config.input.runAsUser} -c` : ''} ./run.sh`);
3742
}
3843
return userData;
3944
}

src/config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ class Config {
1515
iamRoleName: core.getInput('iam-role-name'),
1616
runnerHomeDir: core.getInput('runner-home-dir'),
1717
preRunnerScript: core.getInput('pre-runner-script'),
18-
runAsService: core.getInput('run-runner-as-service')
18+
runAsService: core.getInput('run-runner-as-service') === 'true',
19+
runAsUser: core.getInput('run-runner-as-user')
1920
};
2021

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

0 commit comments

Comments
 (0)