41 lines
991 B
Bash
Executable File
41 lines
991 B
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Ephemeral runner startup script.
|
|
#
|
|
# Expects the following environment variables:
|
|
#
|
|
# - repo=<owner>/<name>
|
|
# - access_token=<ghp_***>
|
|
#
|
|
|
|
set -e -u
|
|
|
|
# Check the cached registration token.
|
|
token_file=registration-token.json
|
|
set +e
|
|
expires_at=$(jq --raw-output .expires_at "$token_file" 2>/dev/null)
|
|
status=$?
|
|
set -e
|
|
if [[ $status -ne 0 || $(date +%s) -ge $(date -d "$expires_at" +%s) ]]; then
|
|
# Refresh the cached registration token.
|
|
curl \
|
|
-X POST \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-H "Authorization: token $access_token" \
|
|
"https://api.github.com/repos/$repo/actions/runners/registration-token" \
|
|
-o "$token_file"
|
|
fi
|
|
|
|
# (Re-)register the runner.
|
|
registration_token=$(jq --raw-output .token "$token_file")
|
|
./config.sh remove --token "$registration_token" || true
|
|
./config.sh \
|
|
--url "https://github.com/$repo" \
|
|
--token "$registration_token" \
|
|
--labels z15 \
|
|
--ephemeral
|
|
|
|
# Run one job.
|
|
./run.sh
|