Skip to content

Commit 05b2bfd

Browse files
committed
reformat / de-obfuscate some vars
1 parent d4c1714 commit 05b2bfd

File tree

1 file changed

+46
-37
lines changed

1 file changed

+46
-37
lines changed

src/ec2_gha/scripts/runner-setup.sh

Lines changed: 46 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ fi
4646
export homedir
4747
4848
# Set common paths
49-
B=/usr/local/bin
50-
V=/var/run/github-runner
49+
BIN_DIR=/usr/local/bin
50+
RUNNER_STATE_DIR=/var/run/github-runner
51+
mkdir -p $RUNNER_STATE_DIR
5152
5253
# Fetch shared functions from GitHub
5354
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Fetching shared functions from GitHub (SHA: ${action_sha})" | tee -a /var/log/runner-setup.log
@@ -59,7 +60,7 @@ if ! curl -sSL "$FUNCTIONS_URL" -o /tmp/shared-functions.sh && ! wget -q "$FUNCT
5960
fi
6061
6162
# Write shared functions that will be used by multiple scripts
62-
cat > $B/runner-common.sh << EOSF
63+
cat > $BIN_DIR/runner-common.sh << EOSF
6364
# Auto-generated shared functions and variables
6465
# Set homedir for scripts that source this file
6566
homedir="$homedir"
@@ -69,34 +70,34 @@ export homedir debug
6970
EOSF
7071
7172
# Append the downloaded shared functions
72-
cat /tmp/shared-functions.sh >> $B/runner-common.sh
73+
cat /tmp/shared-functions.sh >> $BIN_DIR/runner-common.sh
7374
74-
chmod +x $B/runner-common.sh
75-
source $B/runner-common.sh
75+
chmod +x $BIN_DIR/runner-common.sh
76+
source $BIN_DIR/runner-common.sh
7677
7778
logger "EC2-GHA: Starting userdata script"
7879
trap 'logger "EC2-GHA: Script failed at line $LINENO with exit code $?"' ERR
7980
trap 'terminate_instance "Setup script failed with error on line $LINENO"' ERR
8081
# Handle watchdog termination signal
81-
trap 'if [ -f $V-watchdog-terminate ]; then terminate_instance "No runners registered within timeout"; else terminate_instance "Script terminated"; fi' TERM
82+
trap 'if [ -f $RUNNER_STATE_DIR/watchdog-terminate ]; then terminate_instance "No runners registered within timeout"; else terminate_instance "Script terminated"; fi' TERM
8283
8384
# Set up registration timeout failsafe - terminate if runner doesn't register in time
8485
REGISTRATION_TIMEOUT="$runner_registration_timeout"
8586
if ! [[ "$REGISTRATION_TIMEOUT" =~ ^[0-9]+$ ]]; then
8687
REGISTRATION_TIMEOUT=300
8788
fi
8889
# Create a marker file for watchdog termination request
89-
touch $V-watchdog-active
90+
touch $RUNNER_STATE_DIR/watchdog-active
9091
(
9192
sleep $REGISTRATION_TIMEOUT
92-
if [ ! -f $V-registered ]; then
93-
touch $V-watchdog-terminate
93+
if [ ! -f $RUNNER_STATE_DIR/registered ]; then
94+
touch $RUNNER_STATE_DIR/watchdog-terminate
9495
kill -TERM $$ 2>/dev/null || true
9596
fi
96-
rm -f $V-watchdog-active
97+
rm -f $RUNNER_STATE_DIR/watchdog-active
9798
) &
9899
REGISTRATION_WATCHDOG_PID=$!
99-
echo $REGISTRATION_WATCHDOG_PID > $V-watchdog.pid
100+
echo $REGISTRATION_WATCHDOG_PID > $RUNNER_STATE_DIR/watchdog.pid
100101
101102
# Run any custom user data script provided by the user
102103
if [ -n "$userdata" ]; then
@@ -151,21 +152,29 @@ if [ "$cloudwatch_logs_group" != "" ]; then
151152
rm amazon-cloudwatch-agent.rpm
152153
fi
153154
154-
# Build CloudWatch config with factored strings
155-
G=',"log_group_name":"'$cloudwatch_logs_group'","log_stream_name":"{instance_id}/'
156-
Z='","timezone":"UTC"}'
157-
H="$homedir"
155+
# Build CloudWatch config
158156
cat > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json << EOF
159-
{"agent":{"run_as_user":"cwagent"},"logs":{"logs_collected":{"files":{"collect_list":[
160-
{"file_path":"/var/log/runner-setup.log${G}runner-setup$Z"},
161-
{"file_path":"/var/log/runner-debug.log${G}runner-debug$Z"},
162-
{"file_path":"/tmp/job-started-hook.log${G}job-started$Z"},
163-
{"file_path":"/tmp/job-completed-hook.log${G}job-completed$Z"},
164-
{"file_path":"/tmp/termination-check.log${G}termination$Z"},
165-
{"file_path":"/tmp/runner-*-config.log${G}runner-config$Z"},
166-
{"file_path":"$H/_diag/Runner_**.log${G}runner-diag$Z"},
167-
{"file_path":"$H/_diag/Worker_**.log${G}worker-diag$Z"}
168-
]}}}}
157+
{
158+
"agent": {
159+
"run_as_user": "cwagent"
160+
},
161+
"logs": {
162+
"logs_collected": {
163+
"files": {
164+
"collect_list": [
165+
{ "file_path": "/var/log/runner-setup.log" , "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/runner-setup" , "timezone": "UTC" },
166+
{ "file_path": "/var/log/runner-debug.log" , "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/runner-debug" , "timezone": "UTC" },
167+
{ "file_path": "/tmp/job-started-hook.log" , "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/job-started" , "timezone": "UTC" },
168+
{ "file_path": "/tmp/job-completed-hook.log" , "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/job-completed", "timezone": "UTC" },
169+
{ "file_path": "/tmp/termination-check.log" , "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/termination" , "timezone": "UTC" },
170+
{ "file_path": "/tmp/runner-*-config.log" , "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/runner-config", "timezone": "UTC" },
171+
{ "file_path": "$homedir/_diag/Runner_**.log", "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/runner-diag" , "timezone": "UTC" },
172+
{ "file_path": "$homedir/_diag/Worker_**.log", "log_group_name": "$cloudwatch_logs_group", "log_stream_name": "{instance_id}/worker-diag" , "timezone": "UTC" }
173+
]
174+
}
175+
}
176+
}
177+
}
169178
EOF
170179
171180
if ! /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s; then
@@ -257,14 +266,14 @@ fetch_script "job-completed-hook.sh"
257266
fetch_script "check-runner-termination.sh"
258267
259268
# Replace log prefix placeholders with actual values
260-
sed -i "s/LOG_PREFIX_JOB_STARTED/${log_prefix_job_started}/g" $B/job-started-hook.sh
261-
sed -i "s/LOG_PREFIX_JOB_COMPLETED/${log_prefix_job_completed}/g" $B/job-completed-hook.sh
269+
sed -i "s/LOG_PREFIX_JOB_STARTED/${log_prefix_job_started}/g" $BIN_DIR/job-started-hook.sh
270+
sed -i "s/LOG_PREFIX_JOB_COMPLETED/${log_prefix_job_completed}/g" $BIN_DIR/job-completed-hook.sh
262271
263-
chmod +x $B/job-started-hook.sh $B/job-completed-hook.sh $B/check-runner-termination.sh
272+
chmod +x $BIN_DIR/job-started-hook.sh $BIN_DIR/job-completed-hook.sh $BIN_DIR/check-runner-termination.sh
264273
265274
# Set up job tracking directory
266-
mkdir -p $V-jobs
267-
touch $V-last-activity
275+
mkdir -p $RUNNER_STATE_DIR/jobs
276+
touch $RUNNER_STATE_DIR/last-activity
268277
269278
# Set up periodic termination check using systemd
270279
cat > /etc/systemd/system/runner-termination-check.service << EOF
@@ -276,7 +285,7 @@ Type=oneshot
276285
Environment="RUNNER_GRACE_PERIOD=$runner_grace_period"
277286
Environment="RUNNER_INITIAL_GRACE_PERIOD=$runner_initial_grace_period"
278287
Environment="RUNNER_POLL_INTERVAL=$runner_poll_interval"
279-
ExecStart=$B/check-runner-termination.sh
288+
ExecStart=$BIN_DIR/check-runner-termination.sh
280289
EOF
281290
282291
cat > /etc/systemd/system/runner-termination-check.timer << EOF
@@ -367,21 +376,21 @@ fi
367376
368377
if [ $succeeded -gt 0 ]; then
369378
log "$succeeded runner(s) registered and started successfully"
370-
touch $V-registered
379+
touch $RUNNER_STATE_DIR/registered
371380
else
372381
log_error "No runners registered successfully"
373382
terminate_instance "No runners registered successfully"
374383
fi
375384
376385
# Kill registration watchdog now that runners are registered
377-
if [ -f $V-watchdog.pid ]; then
378-
WATCHDOG_PID=$(cat $V-watchdog.pid)
386+
if [ -f $RUNNER_STATE_DIR/watchdog.pid ]; then
387+
WATCHDOG_PID=$(cat $RUNNER_STATE_DIR/watchdog.pid)
379388
kill $WATCHDOG_PID 2>/dev/null || true
380-
rm -f $V-watchdog.pid
389+
rm -f $RUNNER_STATE_DIR/watchdog.pid
381390
fi
382391
383392
# Final setup - ensure runner directories are accessible for debugging
384-
touch $V-started
393+
touch $RUNNER_STATE_DIR/started
385394
chmod o+x $homedir
386395
for RUNNER_DIR in $homedir/runner-*; do
387396
[ -d "$RUNNER_DIR/_diag" ] && chmod 755 "$RUNNER_DIR/_diag"

0 commit comments

Comments
 (0)